Re-add keybindings

This commit is contained in:
iFargle 2024-02-08 20:56:57 +09:00
parent b00c8a0501
commit e1f88771f8

View file

@ -11,6 +11,38 @@
globals.mapleader = " ";
globals.maplocalleader = " ";
keymaps = let
map = mode: key: action: { mode = mode; key = key; action = action; };
nmap = key: action: map [ "n" ] key action;
nvmap = key: action: map [ "n" "v" ] key action;
imap = key: action: map [ "i" ] key action;
desc = d: { options.desc = d; };
silent = { options.silent = true; };
expr = { options.expr = true; };
in [
# Unmap keys that aren't useful, or that we want to use for different things
(nvmap "<Space>" "<Nop>" // silent)
(nvmap "<Cr>" "<Nop>" // silent)
(nvmap "s" "<Nop>" // silent)
# Leave insert mode by pressing j and k simultaneously
(imap "jk" "<Esc>")
(imap "kj" "<Esc>")
# Redo
(nmap "R" "<C-r>")
# Copy and paste
(nvmap "<leader>y" "\"+y" // desc "Cop[y] to clipboard")
(nvmap "<leader>p" "\"+p" // desc "[P]aste from clipboard")
# Jump to start/end of line
(nvmap "H" "0")
(nvmap "L" "$")
# Navigate up and down word wrapped text as if it were not word wrapped
(nmap "k" "v:count == 0 ? 'gk' : 'k'" // silent // expr)
(nmap "j" "v:count == 0 ? 'gj' : 'j'" // silent // expr)
# Center cursor when jumping foward or back
(nmap "<C-o>" "<C-o>zz")
(nmap "<C-i>" "<C-i>zz")
];
options = {
number = true;
shiftwidth = 2;