-- General Operations vim.keymap.set("n", "w", "write", { desc = "Save file" }) vim.keymap.set("n", "q", "quitall", { desc = "Exit Neovim" }) -- marp configuration vim.keymap.set("n", "MT", "MarpToggle", { noremap = true, silent = true }) vim.keymap.set("n", "MS", "MarpStatus", { noremap = true, silent = true }) -- Window Navigation vim.keymap.set("n", "h", "wincmd h", { desc = "Move to left split" }) vim.keymap.set("n", "l", "wincmd l", { desc = "Move to right split" }) vim.keymap.set("n", "j", "wincmd j", { desc = "Move to lower split" }) vim.keymap.set("n", "k", "wincmd k", { desc = "Move to upper split" }) -- Search & Navigation (Mini Pick & Files) vim.keymap.set("n", "e", "lua MiniFiles.open()", { desc = "Open File Explorer" }) vim.keymap.set("n", "", "Pick buffers", { desc = "Search open buffers" }) vim.keymap.set("n", "ff", "Pick files", { desc = "Search all files" }) vim.keymap.set("n", "fh", "Pick help", { desc = "Search help tags" }) -- Diagnostics Navigation vim.keymap.set("n", "fd", "Pick diagnostic", { desc = "Search all diagnostics" }) vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Next diagnostic" }) vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Previous diagnostic" }) vim.keymap.set("n", "]e", function() vim.diagnostic.goto_next({ severity = vim.diagnostic.severity.ERROR }) end, { desc = "Next error" }) vim.keymap.set("n", "[e", function() vim.diagnostic.goto_prev({ severity = vim.diagnostic.severity.ERROR }) end, { desc = "Previous error" }) -- Dynamic LSP Keymaps (Loaded only when LSP attaches to a buffer) vim.api.nvim_create_autocmd("LspAttach", { callback = function(event) local opts = { buffer = event.buf } vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) vim.keymap.set("n", "ca", vim.lsp.buf.code_action, opts) vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) end, })