From 8a3e2f6e9a3d4de3e1a303bf38591506d0237c99 Mon Sep 17 00:00:00 2001 From: Daniel Carrillo Date: Sun, 5 Nov 2023 19:31:25 +0100 Subject: [PATCH] [neovim] Clean up keymaps and add a description for them --- .config/nvim/lazy-lock.json | 8 +- .config/nvim/lua/core/keymaps.lua | 283 +++++++++++++++++++++++------- 2 files changed, 227 insertions(+), 64 deletions(-) diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 6182947..d6ed6a7 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -16,11 +16,11 @@ "git-blame.nvim": { "branch": "master", "commit": "1792125237260dc2a03ba57d31c39179e6049f07" }, "github-nvim-theme": { "branch": "main", "commit": "48f95f763e1a98e508260a20e448c3ff2d91213a" }, "gitsigns.nvim": { "branch": "main", "commit": "bb808fc7376ed7bac0fbe8f47b83d4bf01738167" }, - "go.nvim": { "branch": "master", "commit": "47dd8f4f88670dfc2fb18d5d315a0ec9e72fc263" }, + "go.nvim": { "branch": "master", "commit": "57a3c3e7480031b4c04c11c948ac347f70995f73" }, "guihua.lua": { "branch": "master", "commit": "54bcc1026588e352a16014165b8abcb6eb6d3418" }, "indent-blankline.nvim": { "branch": "master", "commit": "29be0919b91fb59eca9e90690d76014233392bef" }, "karen-yank.nvim": { "branch": "main", "commit": "817f50c9464ce557c8f7f8f4d4c8d2f7b81fc40c" }, - "lazy.nvim": { "branch": "main", "commit": "16603c6917435d8446f7357cb61095138a417085" }, + "lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" }, "leap.nvim": { "branch": "main", "commit": "b6ae80f8fc9993638608fc1a51c6ab0eeb12618c" }, "lspsaga.nvim": { "branch": "main", "commit": "7ebd0cc5923c81516c1c050fc9aea70bec23fd02" }, "lualine-lsp-progress": { "branch": "master", "commit": "56842d097245a08d77912edf5f2a69ba29f275d7" }, @@ -41,8 +41,8 @@ "nvim-dap": { "branch": "master", "commit": "debd7c2f80eaf20c5f5df25db8d8c1b9b18f4421" }, "nvim-dap-ui": { "branch": "master", "commit": "34160a7ce6072ef332f350ae1d4a6a501daf0159" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "57f1dbd0458dd84a286b27768c142e1567f3ce3b" }, - "nvim-lspconfig": { "branch": "master", "commit": "d0467b9574b48429debf83f8248d8cee79562586" }, - "nvim-treesitter": { "branch": "master", "commit": "c5a7533113b2deb7db899d387b877389cc8b6113" }, + "nvim-lspconfig": { "branch": "master", "commit": "b44737605807023d32e6310b87ba69f4dbf10e0e" }, + "nvim-treesitter": { "branch": "master", "commit": "bef2c24e23d0da62a8542b1f08b1ac87ec43e93f" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "92e688f013c69f90c9bbd596019ec10235bc51de" }, "nvim-ufo": { "branch": "main", "commit": "ebbab711d909d5f675e38ad489765bd22bd2c6b3" }, "nvim-web-devicons": { "branch": "master", "commit": "5de460ca7595806044eced31e3c36c159a493857" }, diff --git a/.config/nvim/lua/core/keymaps.lua b/.config/nvim/lua/core/keymaps.lua index 1495d46..dec5e7c 100644 --- a/.config/nvim/lua/core/keymaps.lua +++ b/.config/nvim/lua/core/keymaps.lua @@ -1,7 +1,7 @@ -- Shorten function name local keymap = vim.keymap.set -- Silent keymap option -local opts = { silent = true } +local opts = { noremap = true, silent = true } --Remap space as leader key keymap("", "", "", opts) @@ -17,96 +17,259 @@ vim.g.mapleader = " " -- Kitty navigation vim.g.kitty_navigator_no_mappings = 1 -keymap("n", "", ":KittyNavigateLeft") -keymap("n", "", ":KittyNavigateDown") -keymap("n", "", ":KittyNavigateUp") -keymap("n", "", ":KittyNavigateRight") - --- Better window navigation -keymap("n", "", "h", opts) -keymap("n", "", "j", opts) -keymap("n", "", "k", opts) -keymap("n", "", "l", opts) +keymap("n", "", ":KittyNavigateLeft", vim.tbl_extend("force", opts, { desc = "Navigate left" })) +keymap("n", "", ":KittyNavigateDown", vim.tbl_extend("force", opts, { desc = "Navigate down" })) +keymap("n", "", ":KittyNavigateUp", vim.tbl_extend("force", opts, { desc = "Navigate up" })) +keymap("n", "", ":KittyNavigateRight", vim.tbl_extend("force", opts, { desc = "Navigate right" })) -- Resize with arrows -keymap("n", "", ":resize -2", opts) -keymap("n", "", ":resize +2", opts) -keymap("n", "", ":vertical resize -2", opts) -keymap("n", "", ":vertical resize +2", opts) +keymap("n", "", ":resize -2", vim.tbl_extend("force", opts, { desc = "Window horizontal resize -2" })) +keymap("n", "", ":resize +2", vim.tbl_extend("force", opts, { desc = "Window horizontal resize +2" })) +keymap( + "n", + "", + ":vertical resize -2", + vim.tbl_extend("force", opts, { desc = "Window vertical resize -2" }) +) +keymap( + "n", + "", + ":vertical resize +2", + vim.tbl_extend("force", opts, { desc = "Window vertical resize +2" }) +) -- Navigate buffers -keymap("n", "", ":bnext", opts) -keymap("n", "", ":bnext", opts) -keymap("n", "", ":bprevious", opts) -keymap("n", "", ":bprevious", opts) +keymap( + "n", + "", + ":bnext", + vim.tbl_extend("force", opts, { desc = "Navigate to the next buffer on the right" }) +) +keymap( + "n", + "", + ":bprevious", + vim.tbl_extend("force", opts, { desc = "Navigate to the previous buffer on the left" }) +) -- Clear highlights -keymap("n", "h", "nohlsearch", opts) +keymap("n", "h", "nohlsearch", vim.tbl_extend("force", opts, { desc = "Clear search highlights" })) -- Close buffers -keymap("n", "", "Bdelete!", opts) +keymap("n", "", "Bdelete!", vim.tbl_extend("force", opts, { desc = "Close buffer" })) -- LSP / Diagnostics -keymap("n", "xx", "TroubleToggle", opts) -keymap("n", "xw", "TroubleToggle workspace_diagnostics", opts) -keymap("n", "xd", "TroubleToggle document_diagnostics", opts) -keymap("n", "xl", "TroubleToggle loclist", opts) -keymap("n", "xq", "TroubleToggle quickfix", opts) -keymap("n", "K", "Lspsaga hover_doc", opts) -keymap("n", "E", "Lspsaga show_line_diagnostics", opts) -keymap("n", "gd", "Lspsaga finder", opts) -keymap("n", "ld", "Lspsaga goto_definition", opts) -keymap("n", "la", "Lspsaga code_action", opts) -keymap("n", "lj", "Lspsaga diagnostic_jump_next", opts) -keymap("n", "lk", "Lspsaga diagnostic_jump_prev", opts) -keymap("n", "lr", "Lspsaga rename", opts) -keymap("n", "lp", "Lspsaga peek_definition", opts) -keymap("n", "lf", "lua vim.lsp.buf.format{ async=true }", opts) -keymap("n", "ls", "lua vim.lsp.buf.signature_help()", opts) +keymap( + "n", + "xx", + "TroubleToggle", + vim.tbl_extend("force", opts, { desc = "Toggle trouble diganostics" }) +) +keymap( + "n", + "xw", + "TroubleToggle workspace_diagnostics", + vim.tbl_extend("force", opts, { desc = "Toggle trouble workspace diganostics" }) +) +keymap( + "n", + "xd", + "TroubleToggle document_diagnostics", + vim.tbl_extend("force", opts, { desc = "Toggle trouble document diganostics" }) +) +keymap( + "n", + "K", + "Lspsaga hover_doc", + vim.tbl_extend("force", opts, { desc = "Show a hover window with the documentation" }) +) +keymap( + "n", + "E", + "Lspsaga show_line_diagnostics", + vim.tbl_extend("force", opts, { desc = "Show a hover window with the diagnostics of the error" }) +) +keymap( + "n", + "gd", + "Lspsaga finder", + vim.tbl_extend("force", opts, { desc = "Show a hover window with the usage of the directive under the cursor" }) +) +keymap( + "n", + "ld", + "Lspsaga goto_definition", + vim.tbl_extend("force", opts, { desc = "Navigate to the definition of the directive under the cursor" }) +) +keymap( + "n", + "la", + "Lspsaga code_action", + vim.tbl_extend("force", opts, { desc = "Show available code actions for the line under the cursor" }) +) +keymap( + "n", + "lj", + "Lspsaga diagnostic_jump_next", + vim.tbl_extend("force", opts, { desc = "Navigate to the next diagnostic in the buffer" }) +) +keymap( + "n", + "lk", + "Lspsaga diagnostic_jump_prev", + vim.tbl_extend("force", opts, { desc = "Navigate to the previous diagnostic in the buffer" }) +) +keymap("n", "lr", "Lspsaga rename", vim.tbl_extend("force", opts, { desc = "Open a dialog to rename a code element" })) +keymap( + "n", + "lp", + "Lspsaga peek_definition", + vim.tbl_extend("force", opts, { desc = "Peek the definition of the directive under the cursor" }) +) +keymap( + "n", + "lf", + "lua vim.lsp.buf.format{ async=true }", + vim.tbl_extend("force", opts, { desc = "Format the current buffer or selection" }) +) -- Better paste -keymap("v", "p", "P", opts) +keymap("v", "p", "P", vim.tbl_extend("force", opts, { desc = "Paste" })) -- Press jk fast to enter -keymap("i", "jk", "", opts) +keymap("i", "jk", "", vim.tbl_extend("force", opts, { desc = "Enter in insert mode" })) -- Stay in indent mode keymap("v", "<", "", ">gv", opts) -- NeoTree -keymap("n", "e", ":Neotree toggle", opts) -keymap("n", "gg", ":Neotree float git_status", opts) +keymap("n", "e", ":Neotree toggle", vim.tbl_extend("force", opts, { desc = "Toggle Neotree" })) +keymap( + "n", + "gg", + ":Neotree float git_status", + vim.tbl_extend("force", opts, { desc = "Open a float window with the git status" }) +) -- Telescope -keymap("n", "ff", ":Telescope find_files", opts) -keymap("n", "", ":Telescope find_files", opts) -keymap("n", "fg", ":Telescope live_grep", opts) -keymap("n", "fb", ":Telescope buffers", opts) -keymap("n", "fc", ":Telescope commands", opts) +keymap( + "n", + "ff", + ":Telescope find_files", + vim.tbl_extend("force", opts, { desc = "Open a Telescope prompt to search for files" }) +) +keymap( + "n", + "", + ":Telescope find_files", + vim.tbl_extend("force", opts, { desc = "Open a Telescope prompt to search for files" }) +) +keymap( + "n", + "fg", + ":Telescope live_grep", + vim.tbl_extend("force", opts, { desc = "Open a Telescope prompt to search for text in all files" }) +) +keymap( + "n", + "fk", + ":Telescope keymaps", + vim.tbl_extend("force", opts, { desc = "Open a Telescope prompt to show all keymaps" }) +) +keymap( + "n", + "fc", + ":Telescope commands", + vim.tbl_extend("force", opts, { desc = "Open a Telescope prompt to show all commands" }) +) -- Comment -keymap("n", "/", "lua require'Comment.api'.toggle.linewise.current()", opts) -keymap("x", "/", "lua require'Comment.api'.toggle.linewise(vim.fn.visualmode())", opts) +keymap( + "n", + "/", + "lua require'Comment.api'.toggle.linewise.current()", + vim.tbl_extend("force", opts, { desc = "Comment/Uncomment code lines" }) +) +keymap( + "x", + "/", + "lua require'Comment.api'.toggle.linewise(vim.fn.visualmode())", + vim.tbl_extend( + "force", + opts, + { desc = "Comment/Uncomment code lines on visual block mode" } + ) +) -- Gitdiff -keymap("n", "df", ":DiffviewFileHistory %", opts) -keymap("n", "dc", ":DiffviewClose", opts) +keymap( + "n", + "df", + ":DiffviewFileHistory %", + vim.tbl_extend("force", opts, { desc = "Open diff view file history for the current buffer" }) +) +keymap("n", "dc", ":DiffviewClose", vim.tbl_extend("force", opts, { desc = "Close diff view" })) -- Projects -keymap("n", "fp", ":Telescope neovim-project discover", opts) +keymap( + "n", + "fp", + ":Telescope neovim-project discover", + vim.tbl_extend("force", opts, { desc = "Open a Telescope prompt to search for projects" }) +) -- Base64 -keymap("v", "64e", ":lua require'b64'.encode()", opts) -keymap("v", "64d", ":lua require'b64'.decode()", opts) +keymap( + "v", + "64e", + ":lua require'b64'.encode()", + vim.tbl_extend("force", opts, { desc = "Encode the visual selected text to base64" }) +) +keymap( + "v", + "64d", + ":lua require'b64'.decode()", + vim.tbl_extend("force", opts, { desc = "Decode the visual selected text from base64" }) +) -- Illuminate -keymap("n", "", "lua require'illuminate'.next_reference{wrap=true}", { noremap = true }) -keymap("n", "", "lua require'illuminate'.next_reference{reverse=true,wrap=true}", { noremap = true }) +keymap( + "n", + "", + "lua require'illuminate'.next_reference{wrap=true}", + vim.tbl_extend("force", opts, { desc = "Navigate to the next selected text by illuminate" }) +) +keymap( + "n", + "", + "lua require'illuminate'.next_reference{reverse=true,wrap=true}", + vim.tbl_extend("force", opts, { desc = "Navigate to the previous selected text by illuminate" }) +) -- Folding -keymap("n", "zR", "lua require'ufo'.openAllFolds()", { desc = "Open all folds" }) -keymap("n", "zM", "lua require'ufo'.closeAllFolds()", { desc = "Close all folds" }) -keymap("n", "zr", "lua require'ufo'.openFoldsExceptKinds()", { desc = "Fold less" }) -keymap("n", "zm", "lua require'ufo'.closeFoldsWith()", { desc = "Fold more" }) -keymap("n", "zp", "lua require'ufo'.peekFoldedLinesUnderCursor()", { desc = "Peek fold" }) +keymap( + "n", + "zR", + "lua require'ufo'.openAllFolds()", + vim.tbl_extend("force", opts, { desc = "Open all folds" }) +) +keymap( + "n", + "zM", + "lua require'ufo'.closeAllFolds()", + vim.tbl_extend("force", opts, { desc = "Close all folds" }) +) +keymap( + "n", + "zr", + "lua require'ufo'.openFoldsExceptKinds()", + vim.tbl_extend("force", opts, { desc = "Fold less" }) +) +keymap("n", "zm", "lua require'ufo'.closeFoldsWith()", vim.tbl_extend("force", opts, { desc = "Fold more" })) +keymap( + "n", + "zp", + "lua require'ufo'.peekFoldedLinesUnderCursor()", + vim.tbl_extend("force", opts, { desc = "Peek fold" }) +)