-- [[ Basic Keymaps ]] function MAP(mode, l, r, desc) vim.keymap.set(mode, l, r, { desc = desc, silent = true }) end function ReloadModule(module) package.loaded[module] = nil require(module) end local function default(desc) return { silent = true, desc = desc, } end local function fixIndentation() 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 }) -- vim.keymap.set("n", "", "w", default("Keep cursor centered while junping")) -- 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 without 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")) vim.keymap.set("n", "uI", fixIndentation, default("Fix indentation")) vim.keymap.set("n", "uO", function() ReloadModule('aleidk.options') end, default("Reload the options configuration")) vim.keymap.set("n", "uh", ":nohl", default("Remove search highlight")) vim.keymap.set("t", "", "", default("Exit insert mode on terminal")) vim.keymap.set("n", "bc", "bd", default("Close buffer")) vim.keymap.set("n", "bh", "bp", default("Prev buffer")) vim.keymap.set("n", "bl", "bn", default("Next buffer")) vim.keymap.set("n", "bA", "bufdo bd", default("Close all buffers"))