-- =========================================================================== -- Key Mapping -- =========================================================================== -- Function to cut down config boilerplate local key = function(mode, key_sequence, action, params) params = params or {} vim.keymap.set(mode, key_sequence, action, params) end -- Remap space as leader key key("", "", "", { silent = true }) vim.g.mapleader = " " vim.g.maplocalleader = " " -- Keep selection when changing indentation key("v", "<", "", ">gv") -- Clear search register key("n", "", ":noh", { silent = true }) -- Shuffle lines around key("n", "", ":m .+1==") key("n", "", ":m .-2==") key("v", "", ":m '>+1gv=gv") key("v", "", ":m '<-2gv=gv") -- Better window navigation key("n", "", "h") key("n", "", "j") key("n", "", "k") key("n", "", "l") -- File commands key("n", "q", ":quit") key("n", "Q", ":quitall") key("n", "fs", ":write") key("n", "fd", ":lcd %:p:h", { silent = true }) key("n", "fu", ":lcd ..", { silent = true }) key("n", "", ":b#", { silent = true }) key("n", "tt", [[exe 'edit $NOTES_PATH/journal/'.strftime("%Y-%m-%d_%a").'.md']]) key("n", "jj", ":!journal:e") -- Window commands key("n", "wv", ":vsplit") key("n", "wh", ":split") key("n", "wm", ":only") -- Keep cursor in place key("n", "n", "nzz") key("n", "N", "Nzz") key("n", "J", "mzJ`z") --- Mark and jump back to it -- Add undo breakpoints key("i", ",", ",u") key("i", ".", ".u") key("i", "!", "!u") key("i", "?", "?u") -- Resize with arrows key("n", "", ":resize +2", { silent = true }) key("n", "", ":resize -2", { silent = true }) key("n", "", ":vertical resize -2", { silent = true }) key("n", "", ":vertical resize +2", { silent = true }) -- Quickfix key("n", "]q", ":cnext") key("n", "[q", ":cprevious") key("n", "co", ":copen") key("n", "cq", ":cclose") -- Other key("n", "", ":noh", { silent = true }) --- Clear search in VimWiki key("n", "Y", "y$") --- Copy to end of line key("v", "", "y:%s/+//gc") --- Substitute selected key("v", "D", "y'>gp") --- Duplicate selected key("x", "p", '"_dP') --- Paste but keep register