{ programs.nvf.settings.vim = { globals.mapleader = " "; binds = { whichKey = { enable = true; register = { }; }; }; keymaps = [ # "hjkl" -> "jkl;" { mode = "n"; # Normal mode key = "j"; action = ""; desc = "Move Left"; } { mode = "n"; key = "k"; action = ""; desc = "Move Down"; } { mode = "n"; key = "l"; action = ""; desc = "Move Up"; } { mode = "n"; key = ";"; action = ""; desc = "Move Right"; } { mode = "v"; # Visual mode key = "j"; action = ""; desc = "Move Left"; } { mode = "v"; key = "k"; action = ""; desc = "Move Down"; } { mode = "v"; key = "l"; action = ""; desc = "Move Up"; } { mode = "v"; key = ";"; action = ""; desc = "Move Right"; } # General Mappings { key = "s"; mode = "n"; silent = true; action = "lua require('flash').jump()"; desc = "Flash"; } { key = "K"; mode = "n"; silent = true; action = "lua vim.lsp.buf.hover()"; desc = "LSP Hover"; } { key = ""; mode = "n"; silent = true; action = "bnext"; desc = "Next Buffer"; } { key = "rn"; mode = "n"; silent = true; action = "lua vim.lsp.buf.rename()"; desc = "Rename symbol"; } # Escape from Insert Mode { key = "jj"; mode = "i"; action = ""; desc = "Exit insert mode"; } # UI { key = "uw"; mode = "n"; silent = true; action = "set wrap!"; desc = "Toggle word wrapping"; } { key = "ul"; mode = "n"; silent = true; action = "set linebreak!"; desc = "Toggle linebreak"; } { key = "us"; mode = "n"; silent = true; action = "set spell!"; desc = "Toggle spellLazyGitcheck"; } { key = "uc"; mode = "n"; silent = true; action = "set cursorline!"; desc = "Toggle cursorline"; } { key = "un"; mode = "n"; silent = true; action = "set number!"; desc = "Toggle line numbers"; } { key = "ur"; mode = "n"; silent = true; action = "set relativenumber!"; desc = "Toggle relative line numbers"; } { key = "ut"; mode = "n"; silent = true; action = "set showtabline=2"; desc = "Show tabline"; } { key = "uT"; mode = "n"; silent = true; action = "set showtabline=0"; desc = "Hide tabline"; } # Windows { key = "ws"; mode = "n"; silent = true; action = "split"; desc = "Split"; } { key = "wv"; mode = "n"; silent = true; action = "vsplit"; desc = "VSplit"; } { key = "wd"; mode = "n"; silent = true; action = "close"; desc = "Close"; } # Disable Arrow Keys in Normal Mode { key = ""; mode = "n"; silent = true; action = ""; desc = "Disable Up Arrow"; } { key = ""; mode = "n"; silent = true; action = ""; desc = "Disable Down Arrow"; } { key = ""; mode = "n"; silent = true; action = ""; desc = "Disable Left Arrow"; } { key = ""; mode = "n"; silent = true; action = ""; desc = "Disable Right Arrow"; } # Disable Arrow Keys in Visual Mode { key = ""; mode = "v"; silent = true; action = ""; desc = "Disable Up Arrow"; } { key = ""; mode = "v"; silent = true; action = ""; desc = "Disable Down Arrow"; } { key = ""; mode = "v"; silent = true; action = ""; desc = "Disable Left Arrow"; } { key = ""; mode = "v"; silent = true; action = ""; desc = "Disable Right Arrow"; } # Disable Arrow Keys in Insert Mode { key = ""; mode = "i"; silent = true; action = ""; desc = "Disable Up Arrow"; } { key = ""; mode = "i"; silent = true; action = ""; desc = "Disable Down Arrow"; } { key = ""; mode = "i"; silent = true; action = ""; desc = "Disable Left Arrow"; } { key = ""; mode = "i"; silent = true; action = ""; desc = "Disable Right Arrow"; } ]; }; }