My simple neovim config
at main 1.4 kB view raw
1-- Map leader config 2vim.cmd.timeoutlen = 0 3local function map(mode, l, r, opts) 4 opts = opts or {} 5 if type(mode) == "table" then 6 for _, m in ipairs(mode) do 7 vim.keymap.set(m, l, r, opts) 8 end 9 else 10 vim.keymap.set(mode, l, r, opts) 11 end 12end 13map({ "n", "v" }, "<leader>p", '"+p', { desc = "Paste from clipboard" }) 14map({ "n", "v" }, "<leader>y", '"+y', { desc = "Yank to clipboard" }) 15map("t", "<ESC>", "<C-\\><C-n>", { desc = "Exit terminal" }) 16map("n", "<leader>zz", "<cmd>ZenMode<CR>", { desc = "Toggle ZendMode" }) 17 18-- Register LSP mappings 19vim.api.nvim_create_autocmd("LspAttach", { 20 group = vim.api.nvim_create_augroup("UserLspConfig", {}), 21 callback = function(args) 22 map("n", "<leader>ca", vim.lsp.buf.code_action, { desc = "Code Action" }) 23 map("n", "<leader>R", vim.lsp.buf.rename, { desc = "Rename" }) 24 map("n", "<leader>fl", require("telescope.builtin").lsp_document_symbols, { desc = "LSP Document Symbols" }) 25 map("n", "gd", vim.lsp.buf.definition, { desc = "Goto Definition" }) 26 map("n", "<leader>gr", require("telescope.builtin").lsp_references, { desc = "References" }) 27 map("n", "<leader>gi", require("telescope.builtin").lsp_implementations, { desc = "Implementations" }) 28 map("n", "K", vim.lsp.buf.hover, { desc = "Hover (LSP)" }) 29 end, 30})