local opts = { noremap = true, silent = true } local term_opts = { silent = true } function keymap(mode, lhs, rhs, opts) local options = { noremap = true } if opts then options = vim.tbl_extend("force", options, opts) end vim.api.nvim_set_keymap(mode, lhs, rhs, options) end -- Navigate buffers keymap("n", "", ":bnext", opts) keymap("n", "", ":bprevious", opts) -- Terminal -- Better window navigation keymap("n", "", "h", opts) keymap("n", "", "j", opts) keymap("n", "", "k", opts) keymap("n", "", "l", opts) -- Nvimtree keymap('n', 'n', ":NvimTreeToggle", {silent = true, noremap = true, desc = "Toggle [N]vimtree"}) -- UndoTree keymap('n', 'u', ":UndotreeToggle", { desc = "Toggle [U]ndo tree" }) -- Move line keymap('v', 'J', ":m '>+1gv=gv", {noremap = true}) keymap('v', 'K', ":m '<-2gv=gv", {noremap = true}) -- Search cursor in the middle keymap('n', 'n', "nzzzv") keymap('n', 'N', "Nzzzv") -- replace without copy current selected keymap('x', 'p', "\"_dp") -- yank to system clipboard keymap('n', 'y', "\"+y", { desc = "[Y]ank to clipboard" }) keymap('v', 'y', "\"+y", { desc = "[Y]ank to clipboard" }) keymap('n', 'Y', "\"+Y", { desc = "[Y]ank to clipboard" }) -- Quickfix keymap('n', "", "cnextzz") keymap('n', "", "cprevzz") keymap('n', "k", "lnextzz") keymap('n', "j", "lprevzz") -- replace selected word in the file keymap("n", "R", [[:%s/\<\>//gI]], { desc = "[R]eplace words in the file" }) -- Make file executable keymap("n", "x", "!chmod +x %", { silent = true, desc = "Make [X]ecutable file" }) -- Do nothing keymap("n", "Q", "")