diff --git a/.config/nvim/lua/keymaps/language.lua b/.config/nvim/lua/keymaps/language.lua new file mode 100644 index 0000000..0f8ad64 --- /dev/null +++ b/.config/nvim/lua/keymaps/language.lua @@ -0,0 +1,28 @@ +local M = {} + + +-- Markdown + +local function set_markdown_keymaps(bufnr) + local markdown_opt = { noremap = true, silent = true, buffer = bufnr } + for _, map in ipairs(M.markdown) do + local opts = vim.tbl_extend("force", markdown_opt, map.opts or {}) + vim.keymap.set(map.mode, map.keys, map.cmd, opts) + end +end + + +M.markdown = { + { mode = "v", keys = "`", cmd = "c`pi`" , desc = "Wrap selection in ` for inline code" }, + { mode = "v", keys = "*", cmd = "c**pi**" , desc = "Wrap selection in ** for bold" }, + { mode = "v", keys = "_", cmd = "c*pi*" , desc = "Wrap selection in * for italic" }, +} + +vim.api.nvim_create_autocmd("FileType", { + pattern = "markdown", + callback = function() + set_markdown_keymaps(0) + end, +}) + +return M