local g = vim.g g.mapleader = " " g.maplocalleader = " " local move_up = { cmd = "v:count || mode(1)[0:1] == \"no\" ? \"k\" : \"gk\"", opts = { expr = true } } local move_down = { cmd = "v:count || mode(1)[0:1] == \"no\" ? \"j\" : \"gj\"", opts = { expr = true } } local utils = require("utils") utils.add_keymaps({ n = { -- Using lspsaga for hover doc ["K"] = { cmd = "", }, -- Using lspsaga finder with gr which does references ["grr"] = { cmd = "", }, ["gra"] = { cmd = "", }, ["grn"] = { cmd = "", }, ["gri"] = { cmd = "", }, -- Navigation [""] = { cmd = "h", }, [""] = { cmd = "j", }, [""] = { cmd = "k", }, [""] = { cmd = "l", }, [""] = { cmd = "h", }, [""] = { cmd = "j", }, [""] = { cmd = "k", }, [""] = { cmd = "l", }, -- Window [""] = { cmd = "q", }, -- Disable current highlights [""] = { cmd = " noh ", }, -- Copies the entire file [""] = { cmd = ":%y+", opts = { silent = true } }, -- Allow moving the cursor through wrapped lines with and -- http://www.reddit.com/r/vim/comments/2k4cbr/problem_with_gj_and_gk/ -- empty mode is same as using :map -- also don't use g[j|k] when in operator pending mode, so it doesn't alter d, y or c behaviour [""] = move_up, [""] = move_down, ["j"] = move_down, ["k"] = move_up, -- Maps to remove [""] = { cmd = "", }, -- Marks are less frequently used than leaping, also, less relevant with arrow and fzf navigation. -- Prioritize regular m for leaping, and m for setting marks. ["m"] = { cmd = "m", }, ["[d"] = { cmd = function() vim.diagnostic.jump({ count = -1, float = false }) end }, ["]d"] = { cmd = function() vim.diagnostic.jump({ count = 1, float = false }) end }, }, i = {}, v = { [""] = move_up, [""] = move_down, ["j"] = move_down, ["k"] = move_up, [""] = { cmd = ">gv", }, [""] = { cmd = "m for setting marks. ["m"] = { cmd = "m", }, }, x = { [""] = move_up, [""] = move_down, ["j"] = move_down, ["k"] = move_up, ["p"] = { cmd = "p:let @+=@0:let @\"=@0", opts = { silent = true }, }, }, t = { [""] = { cmd = "", }, }, })