keymappings.lua 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. -- better window movement
  2. vim.api.nvim_set_keymap("n", "<C-h>", "<C-w>h", { silent = true })
  3. vim.api.nvim_set_keymap("n", "<C-j>", "<C-w>j", { silent = true })
  4. vim.api.nvim_set_keymap("n", "<C-k>", "<C-w>k", { silent = true })
  5. vim.api.nvim_set_keymap("n", "<C-l>", "<C-w>l", { silent = true })
  6. -- Terminal window navigation
  7. vim.api.nvim_set_keymap("t", "<C-h>", "<C-\\><C-N><C-w>h", {silent = true, noremap = true})
  8. vim.api.nvim_set_keymap("t", "<C-j>", "<C-\\><C-N><C-w>j", {silent = true, noremap = true})
  9. vim.api.nvim_set_keymap("t", "<C-k>", "<C-\\><C-N><C-w>k", {silent = true, noremap = true})
  10. vim.api.nvim_set_keymap("t", "<C-l>", "<C-\\><C-N><C-w>l", {silent = true, noremap = true})
  11. vim.api.nvim_set_keymap("i", "<C-h>", "<C-\\><C-N><C-w>h", {silent = true, noremap = true})
  12. vim.api.nvim_set_keymap("i", "<C-j>", "<C-\\><C-N><C-w>j", {silent = true, noremap = true})
  13. vim.api.nvim_set_keymap("i", "<C-k>", "<C-\\><C-N><C-w>k", {silent = true, noremap = true})
  14. vim.api.nvim_set_keymap("i", "<C-l>", "<C-\\><C-N><C-w>l", {silent = true, noremap = true})
  15. vim.api.nvim_set_keymap("t", "<Esc>", "<C-\\><C-n>", {silent = true, noremap = true})
  16. -- TODO fix this
  17. -- resize with arrows
  18. if vim.fn.has("mac") == 1 then
  19. vim.api.nvim_set_keymap("n", "<A-Up>", ":resize -2<CR>", { silent = true })
  20. vim.api.nvim_set_keymap("n", "<A-Down>", ":resize +2<CR>", { silent = true })
  21. vim.api.nvim_set_keymap("n", "<A-Left>", ":vertical resize -2<CR>", { silent = true })
  22. vim.api.nvim_set_keymap("n", "<A-Right>", ":vertical resize +2<CR>", { silent = true })
  23. else
  24. vim.api.nvim_set_keymap("n", "<C-Up>", ":resize -2<CR>", { silent = true })
  25. vim.api.nvim_set_keymap("n", "<C-Down>", ":resize +2<CR>", { silent = true })
  26. vim.api.nvim_set_keymap("n", "<C-Left>", ":vertical resize -2<CR>", { silent = true })
  27. vim.api.nvim_set_keymap("n", "<C-Right>", ":vertical resize +2<CR>", { silent = true })
  28. end
  29. -- better indenting
  30. vim.api.nvim_set_keymap("v", "<", "<gv", { noremap = true, silent = true })
  31. vim.api.nvim_set_keymap("v", ">", ">gv", { noremap = true, silent = true })
  32. -- I hate escape
  33. vim.api.nvim_set_keymap("i", "jk", "<ESC>", { noremap = true, silent = true })
  34. vim.api.nvim_set_keymap("i", "kj", "<ESC>", { noremap = true, silent = true })
  35. vim.api.nvim_set_keymap("i", "jj", "<ESC>", { noremap = true, silent = true })
  36. -- Tab switch buffer
  37. vim.api.nvim_set_keymap("n", "<TAB>", ":bnext<CR>", { noremap = true, silent = true })
  38. vim.api.nvim_set_keymap("n", "<S-TAB>", ":bprevious<CR>", { noremap = true, silent = true })
  39. -- Move selected line / block of text in visual mode
  40. vim.api.nvim_set_keymap("x", "K", ":move '<-2<CR>gv-gv", { noremap = true, silent = true })
  41. vim.api.nvim_set_keymap("x", "J", ":move '>+1<CR>gv-gv", { noremap = true, silent = true })
  42. -- Move current line / block with Alt-j/k ala vscode.
  43. vim.api.nvim_set_keymap("n", "<A-j>", ":m .+1<CR>==", { noremap = true, silent = true })
  44. vim.api.nvim_set_keymap("n", "<A-k>", ":m .-2<CR>==", { noremap = true, silent = true })
  45. vim.api.nvim_set_keymap("i", "<A-j>", "<Esc>:m .+1<CR>==gi", { noremap = true, silent = true })
  46. vim.api.nvim_set_keymap("i", "<A-k>", "<Esc>:m .-2<CR>==gi", { noremap = true, silent = true })
  47. vim.api.nvim_set_keymap("x", "<A-j>", ":m '>+1<CR>gv-gv", { noremap = true, silent = true })
  48. vim.api.nvim_set_keymap("x", "<A-k>", ":m '<-2<CR>gv-gv", { noremap = true, silent = true })
  49. -- QuickFix
  50. vim.api.nvim_set_keymap("n", "]q", ":cnext<CR>", { noremap = true, silent = true })
  51. vim.api.nvim_set_keymap("n", "[q", ":cprev<CR>", { noremap = true, silent = true })
  52. -- Better nav for omnicomplete
  53. vim.cmd 'inoremap <expr> <c-j> ("\\<C-n>")'
  54. vim.cmd 'inoremap <expr> <c-k> ("\\<C-p>")'
  55. vim.cmd 'vnoremap p "0p'
  56. vim.cmd 'vnoremap P "0P'
  57. -- vim.api.nvim_set_keymap('v', 'p', '"0p', {silent = true})
  58. -- vim.api.nvim_set_keymap('v', 'P', '"0P', {silent = true})
  59. -- vim.cmd('inoremap <expr> <TAB> (\"\\<C-n>\")')
  60. -- vim.cmd('inoremap <expr> <S-TAB> (\"\\<C-p>\")')
  61. -- vim.api.nvim_set_keymap('i', '<C-TAB>', 'compe#complete()', {noremap = true, silent = true, expr = true})
  62. -- vim.cmd([[
  63. -- map p <Plug>(miniyank-autoput)
  64. -- map P <Plug>(miniyank-autoPut)
  65. -- map <leader>n <Plug>(miniyank-cycle)
  66. -- map <leader>N <Plug>(miniyank-cycleback)
  67. -- ]])
  68. -- Toggle the QuickFix window
  69. vim.api.nvim_set_keymap("", "<C-q>", ":call QuickFixToggle()<CR>", { noremap = true, silent = true })