{ programs.nvf.settings.vim = { globals.mapleader = " "; binds = { whichKey = { enable = true; # TODO: registers register = { }; }; }; keymaps = [ # 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"; } # Kitty navigator { key = ""; mode = "n"; silent = true; action = "KittyNavigateLeft"; } { key = ""; mode = "n"; silent = true; action = "KittyNavigateDown"; } { key = ""; mode = "n"; silent = true; action = "KittyNavigateUp"; } { key = ""; mode = "n"; silent = true; action = "KittyNavigateRight"; } # Disable Arrow Keys in Normal Mode # { # key = ""; # mode = "n"; # silent = true; # action = "k"; # desc = "Disable Up Arrow"; # } # { # key = ""; # mode = "n"; # silent = true; # action = "j"; # desc = "Disable Down Arrow"; # } # { # key = ""; # mode = "n"; # silent = true; # action = "h"; # desc = "Disable Left Arrow"; # } # { # key = ""; # mode = "n"; # silent = true; # action = "l"; # desc = "Disable Right Arrow"; # } # 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"; } { key = "ma"; mode = "n"; silent = true; action = "close"; desc = "Close"; } { key = ""; mode = "n"; silent = true; action = "lua require('smart-splits').move_cursor_left()"; desc = "Move to left split"; } { key = ""; mode = "n"; silent = true; action = "lua require('smart-splits').move_cursor_down()"; desc = "Move to lower split"; } { key = ""; mode = "n"; silent = true; action = "lua require('smart-splits').move_cursor_up()"; desc = "Move to upper split"; } { key = ""; mode = "n"; silent = true; action = "lua require('smart-splits').move_cursor_right()"; desc = "Move to right split"; } { key = ""; mode = "n"; silent = true; action = "lua require('smart-splits').resize_left()"; desc = "Resize left"; } { key = ""; mode = "n"; silent = true; action = "lua require('smart-splits').resize_down()"; desc = "Resize down"; } { key = ""; mode = "n"; silent = true; action = "lua require('smart-splits').resize_up()"; desc = "Resize up"; } { key = ""; mode = "n"; silent = true; action = "lua require('smart-splits').resize_right()"; desc = "Resize right"; } { key = "w="; mode = "n"; silent = true; action = "="; desc = "Equalize Splits"; } { key = "we"; mode = "n"; silent = true; action = "lua require('smart-splits').swap_buf_right()"; desc = "Swap Buffer Right"; } { key = "wh"; mode = "n"; silent = true; action = "lua require('smart-splits').swap_buf_left()"; desc = "Swap Buffer Left"; } { key = ""; mode = "n"; silent = true; action = "zz"; desc = "Jump back and center"; } { key = ""; mode = "n"; silent = true; action = "zz"; desc = "Jump forward and center"; } ]; }; }