nixos-infra/users/rus07tam/modules/nvf/keymaps.nix
Rustam Efimov 30ce0dafc2
Some checks failed
Nix CI / build (push) Failing after 31s
initial commit
2026-04-01 08:50:01 +03:00

269 lines
5.5 KiB
Nix

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