keymappings.lua 3.8 KB

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