-- [[ 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 local function fixIdentation() local indent = 2 vim.opt.tabstop = indent vim.opt.shiftwidth = indent vim.opt.softtabstop = indent vim.cmd("retab") 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", "|", ":vs", default("Open vsplit")) vim.keymap.set("n", "°", ":sp", default("Open split")) 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", "rw", [[:%s/\<\>//gI]], default("Search and replace current word") ) vim.keymap.set("n", "rR", ":s/", default("Search and replace inline")) vim.keymap.set("n", "rr", ":%s/", default("Search and replace globally")) 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({ "n", "v" }, "y", [["+y]], default("Yank to system clipboard")) vim.keymap.set({ "n", "v" }, "Y", [["+Y]], default("Yank line to system clipboard")) vim.keymap.set({ "n", "v" }, "p", [["+p]], default("Paste from system clipboard")) vim.keymap.set("v", "J", ":m '>+1gv=gv", default("Move selection down")) vim.keymap.set("v", "K", ":m '<-2gv=gv", default("Move selection up")) vim.keymap.set("n", "uI", fixIdentation, default("Fix identation"))