-- [[ Basic Keymaps ]] function MAP(mode, l, r, desc) vim.keymap.set(mode, l, r, { desc = desc, silent = true }) end local function default(desc) return { silent = true, desc = desc, } end -- Keymaps for better default experience -- See `:help vim.keymap.set()` vim.keymap.set({ "n", "v" }, "", "", { silent = true }) -- Remap for dealing with word wrap vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) vim.keymap.set("n", "J", "mzJ`z", default("Keep cursor in column while joining lines")) vim.keymap.set("n", "", "zz", default("Keep cursor centered while junping")) vim.keymap.set("n", "", "zz", default("Keep cursor centered while junping")) vim.keymap.set("n", "n", "nzzzv", default("Keep cursor centered while searching")) vim.keymap.set("n", "N", "Nzzzv", default("Keep cursor centered while searching")) vim.keymap.set("n", "Q", "", {}) vim.keymap.set("n", "lj", function() vim.diagnostic.goto_next() end, default("Go to next diagnostic")) vim.keymap.set("n", "lk", function() vim.diagnostic.goto_prev() end, default("Go to prev diagnostic")) vim.keymap.set( "n", "r", [[:%s/\<\>//gI]], default("Search and replace current word") ) vim.keymap.set("n", "R", ":%s/", default("Search and replace in the whole file")) vim.keymap.set("v", "r", ":s/", default("Search and replace in selection")) vim.keymap.set("v", "p", [["_dP]], default("Paste whitout lossing yanked text")) vim.keymap.set("v", "J", ":m '>+1gv=gv", default("Move selection down")) vim.keymap.set("v", "K", ":m '<-2gv=gv", default("Move selection up"))