| 1 | local opts = { noremap = true, silent = true } |
| 2 | local map = vim.api.nvim_set_keymap |
| 3 | |
| 4 | -- format |
| 5 | -- Fast saving |
| 6 | map("n", "++", "<cmd>write!<CR>", opts) |
| 7 | |
| 8 | -- Some useful quickfix shortcuts for quickfix |
| 9 | map("n", "<C-n>", "<cmd>cnext<CR>zz", opts) |
| 10 | map("n", "<C-m>", "<cmd>cprev<CR>zz", opts) |
| 11 | map("n", "<leader>a", "<cmd>cclose<CR>", opts) |
| 12 | |
| 13 | -- Exit on jj and jk |
| 14 | map("n", "j", "gj", opts) |
| 15 | map("n", "k", "gk", opts) |
| 16 | |
| 17 | -- Exit on jj and jk |
| 18 | map("i", "jj", "<ESC>", opts) |
| 19 | map("i", "jk", "<ESC>", opts) |
| 20 | |
| 21 | -- Remove search highlight |
| 22 | map("n", "<leader>h", "<cmd>nohlsearch<CR>", opts) |
| 23 | |
| 24 | -- Grab text between curly braces |
| 25 | map("n", "YY", "va{Vy", opts) |
| 26 | |
| 27 | -- goodies |
| 28 | map("n", "n", "nzzzv", opts) |
| 29 | map("n", "N", "Nzzzv", opts) |
| 30 | map("n", "J", "mzJ`z", opts) |
| 31 | map("n", "<C-d>", "<C-d>zz", opts) |
| 32 | map("n", "<C-u>", "<C-u>zz", opts) |
| 33 | |
| 34 | -- Navigate buffers |
| 35 | map("n", "<S-l>", ":bnext<CR>", opts) |
| 36 | map("n", "<S-h>", ":bprevious<CR>", opts) |
| 37 | |
| 38 | -- If I visually select words and paste from clipboard, don't replace my |
| 39 | -- clipboard with the selected word, instead keep my old word in the |
| 40 | -- clipboard |
| 41 | map("x", "p", '"_dP', opts) |
| 42 | |
| 43 | -- Better split switching |
| 44 | -- map("n", "<C-h>", "<C-w>h", opts) |
| 45 | -- map("n", "<C-j>", "<C-w>j", opts) |
| 46 | -- map("n", "<C-k>", "<C-w>k", opts) |
| 47 | -- map("n", "<C-l>", "<C-w>l", opts) |
| 48 | |
| 49 | -- Visual -- |
| 50 | -- Stay in indent mode |
| 51 | map("v", "<", "<gv", opts) |
| 52 | map("v", ">", ">gv", opts) |
| 53 | |
| 54 | -- Visually select lines, and move them up/down |
| 55 | map("v", "J", ":m '>+1<CR>gv=gv", opts) |
| 56 | map("v", "K", ":m '<-2<CR>gv=gv", opts) |
| 57 | |
| 58 | map("n", "<leader>c", ":bd<cr>", opts) |
| 59 | |
| 60 | map("n", "<leader>dd", "<cmd>lua vim.diagnostic.open_float({ border = 'rounded' })<CR>", opts) |