nix-config/programs/nixvim/keymappings.nix

56 lines
1.4 KiB
Nix
Raw Normal View History

2025-10-03 20:20:39 -07:00
{ lib, ... }:
{
programs.nixvim = {
keymaps =
let
normal =
lib.mapAttrsToList
(
key: action: {
mode = "n";
inherit action key;
}
)
{
"<Space>" = "<NOP>";
"<esc>" = ":noh<CR>";
"Y" = "y$";
"<C-c>" = ":b#<CR>";
"<C-x>" = ":close<CR>";
"<leader>s" = ":w<CR>";
"<C-s>" = ":w<CR>";
"<leader>h" = "<C-w>h";
"<leader>l" = "<C-w>l";
"L" = "$";
"H" = "^";
"<C-Up>" = ":resize -2<CR>";
"<C-Down>" = ":resize +2<CR>";
"<C-Left>" = ":vertical resize +2<CR>";
"<C-Right>" = ":vertical resize -2<CR>";
"<M-k>" = ":move-2<CR>";
"<M-j>" = ":move+<CR>";
};
visual =
lib.mapAttrsToList
(
key: action: {
mode = "v";
inherit action key;
}
)
{
2025-10-04 14:32:15 -07:00
# Removed gv to allow dot-repeat
">" = ">";
"<" = "<";
# TAB keeps gv for convenience
2025-10-03 20:20:39 -07:00
"<TAB>" = ">gv";
"<S-TAB>" = "<gv";
"K" = ":m '<-2<CR>gv=gv";
"J" = ":m '>+1<CR>gv=gv";
};
in
normal ++ visual;
};
}