From 7fa8779c8e217a5329342c2b105233961afa9f79 Mon Sep 17 00:00:00 2001 From: Martin Larsson Date: Sat, 11 Jan 2025 13:11:52 +0100 Subject: [PATCH] Re-add "hjkl" navigation, change leap to m, marks are set with m instead. --- home/.config/nvim/lua/keymaps.lua | 99 ++++++++++++++-------------- home/.config/nvim/lua/plugs/leap.lua | 6 +- 2 files changed, 53 insertions(+), 52 deletions(-) diff --git a/home/.config/nvim/lua/keymaps.lua b/home/.config/nvim/lua/keymaps.lua index a892af2..85e8d7e 100644 --- a/home/.config/nvim/lua/keymaps.lua +++ b/home/.config/nvim/lua/keymaps.lua @@ -3,21 +3,22 @@ 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 + } +} + require("utils").add_keymaps({ n = { - -- Disable hjkl, using Colemak - ["h"] = { - cmd = "", - }, - ["j"] = { - cmd = "", - }, - ["k"] = { - cmd = "", - }, - ["l"] = { - cmd = "", - }, -- Navigation [""] = { cmd = "h", @@ -31,6 +32,18 @@ require("utils").add_keymaps({ [""] = { cmd = "l", }, + [""] = { + cmd = "h", + }, + [""] = { + cmd = "j", + }, + [""] = { + cmd = "k", + }, + [""] = { + cmd = "l", + }, -- Window [""] = { @@ -54,57 +67,45 @@ require("utils").add_keymaps({ -- 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 - [""] = { - cmd = "v:count || mode(1)[0:1] == \"no\" ? \"k\" : \"gk\"", - opts = { - expr = true - } - }, - [""] = { - cmd = "v:count || mode(1)[0:1] == \"no\" ? \"j\" : \"gj\"", - opts = { - expr = true - } - }, + [""] = 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", + }, }, i = {}, v = { - [""] = { - cmd = "v:count || mode(1)[0:1] == \"no\" ? \"k\" : \"gk\"", - opts = { - expr = true - } - }, - [""] = { - cmd = "v:count || mode(1)[0:1] == \"no\" ? \"j\" : \"gj\"", - opts = { - expr = true - } - }, + [""] = move_up, + [""] = move_down, + ["j"] = move_down, + ["k"] = move_up, [""] = { cmd = ">gv", }, [""] = { cmd = "m for setting marks. + ["m"] = { + cmd = "m", + }, }, x = { - [""] = { - cmd = "v:count || mode(1)[0:1] == \"no\" ? \"k\" : \"gk\"", - opts = { - expr = true - } - }, - [""] = { - cmd = "v:count || mode(1)[0:1] == \"no\" ? \"j\" : \"gj\"", - opts = { - expr = true - } - }, + [""] = move_up, + [""] = move_down, + ["j"] = move_down, + ["k"] = move_up, ["p"] = { cmd = "p:let @+=@0:let @\"=@0", opts = { diff --git a/home/.config/nvim/lua/plugs/leap.lua b/home/.config/nvim/lua/plugs/leap.lua index 7ce933e..abfef61 100644 --- a/home/.config/nvim/lua/plugs/leap.lua +++ b/home/.config/nvim/lua/plugs/leap.lua @@ -69,21 +69,21 @@ return { utils.add_keymaps({ n = { - ["l"] = { + ["m"] = { cmd = function() leap_across_windows() end, }, }, v = { - ["l"] = { + ["m"] = { cmd = function() leap_in_current_buffer() end, } }, o = { - ["l"] = { + ["m"] = { cmd = function() leap_in_current_buffer() end,