keymappings.lua 3.4 KB

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