keymaps.lua 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. local keymap = vim.keymap.set
  2. local opts = { silent = true }
  3. vim.g.mapleader = " "
  4. -- Move text buffer in visual mode
  5. keymap("v", "K", ":m '<-2<CR>gv=gv")
  6. keymap("v", "J", ":m '>+1<CR>gv=gv")
  7. -- Write and quit easier
  8. keymap("n", "<Leader>w", ":w<CR>")
  9. keymap("n", "<Leader>z", ":wq<CR>")
  10. keymap("n", "<Leader>q", ":qa<CR>")
  11. keymap("n", "<Leader>e", ":q<CR>")
  12. -- Windows commands
  13. keymap("n", "<leader>pv", ":wincmd v | :Ex | :vertical resize 30<CR>")
  14. keymap("n", "<leader>ps", ":Rg<CR>")
  15. keymap("n", "<leader>rh", ":vertical resize +5<CR>")
  16. keymap("n", "<leader>rl", ":vertical resize -5<CR>")
  17. -- General compile buttons
  18. keymap("", "<F3>", ":w<CR>:!compile \"%\" && pkill -HUP mupdf<CR>")
  19. keymap("", "<F2>", ":w<CR>:!latexmk -pdf \"%\" && pkill -HUP mupdf<CR>")
  20. keymap("", "<F4>", ":noh<CR>")
  21. keymap("", "<F5>", ":set spell!<CR>")
  22. keymap("", "<F6>", ":w<CR>:!glosscompile \"%\" && pkill -HUP mupdf<CR>")
  23. -- Jumper
  24. keymap("v", "<Space><Space>", "<Esc>/<++><Enter>\"_c4l")
  25. keymap("", "<Space><Space>", "<Esc>/<++><Enter>\"_c4l")
  26. -- Copy from / to clipboard
  27. keymap("v", "<leader>y", "\"+y")
  28. keymap("v", "<leader>Y", "\"+Y")
  29. keymap("n", "<leader>p", "\"+p")
  30. keymap("n", "<leader>P", "\"+P")
  31. -- Diagnostic navigation
  32. keymap("n", "[g", vim.diagnostic.goto_prev, opts)
  33. keymap("n", "]g", vim.diagnostic.goto_next, opts)
  34. keymap("n", "<leader>d", vim.diagnostic.open_float, opts)
  35. -- LSP gotos
  36. keymap("n", "gd", vim.lsp.buf.definition, opts)
  37. keymap("n", "gy", vim.lsp.buf.type_definition, opts)
  38. keymap("n", "gi", vim.lsp.buf.implementation, opts)
  39. keymap("n", "gr", vim.lsp.buf.references, opts)
  40. keymap("n", "<leader>rn", vim.lsp.buf.rename, opts)
  41. -- LSP code actions
  42. keymap({ "n", "x" }, "<leader>a", vim.lsp.buf.code_action, opts)
  43. -- Switch to last opened file
  44. keymap("n", "<leader>b", "<c-^><cr>")
  45. -- Fern
  46. keymap("", "<Leader>f", ":Fern . -drawer -reveal=% -toggle -width=35<CR><C-w>=", opts)
  47. -- Tab navigation
  48. for i = 1, 9 do
  49. keymap("", "<leader>" .. i, i .. "gt")
  50. end
  51. keymap("", "<leader>0", ":tablast<cr>")
  52. -- Auto center searches
  53. keymap("n", "n", "nzzzv")
  54. keymap("n", "N", "Nzzzv")
  55. -- Tagbar
  56. keymap("n", "<leader>g", ":TagbarToggle<CR>")
  57. -- Source vim config
  58. keymap("n", "<Leader>sv", ":source $XDG_CONFIG_HOME/nvim/init.vim<CR>")
  59. -- Telescope
  60. keymap("n", "<leader>l", ":Telescope live_grep<CR>")
  61. keymap("n", "<leader>t", ":Telescope git_files<CR>")
  62. keymap("n", "<leader>z", ":Telescope find_files<CR>")
  63. keymap("n", "<C-s>", ":Telescope grep_string<CR>")
  64. -- Markdown preview
  65. keymap("n", "<leader>mg", "<Plug>MarkdownPreview")
  66. keymap("n", "<leader>ms", "<Plug>MarkdownPreviewStop")
  67. keymap("n", "<leader>mt", "<Plug>MarkdownPreviewToggle")
  68. -- WhiteSpace
  69. keymap("n", "<leader>cw", ":StripWhitespace<CR>")
  70. keymap("n", "]w", ":NextTrailingWhitespace<CR>")
  71. keymap("n", "[w", ":PrevTrailingWhitespace<CR>")
  72. -- Smart window movement
  73. local utils = require("utils")
  74. keymap("n", "<C-h>", function() utils.win_move('h') end, opts)
  75. keymap("n", "<C-j>", function() utils.win_move('j') end, opts)
  76. keymap("n", "<C-k>", function() utils.win_move('k') end, opts)
  77. keymap("n", "<C-l>", function() utils.win_move('l') end, opts)
  78. -- Vimspector
  79. keymap("n", "<leader>da", ":call vimspector#Launch()<CR>")
  80. keymap("n", "<leader>dc", ":call GotoWindow(g:vimspector_session_windows.code)<CR>")
  81. keymap("n", "<leader>dv", ":call GotoWindow(g:vimspector_session_windows.variables)<CR>")
  82. keymap("n", "<leader>dw", ":call vimspector#ClearBreakpoints()<CR>")
  83. keymap("n", "<leader>ds", ":call GotoWindow(g:vimspector_session_windows.stack_trace)<CR>")
  84. keymap("n", "<leader>do", ":call GotoWindow(g:vimspector_session_windows.output)<CR>")
  85. keymap("n", "<leader>di", ":call AddToWatch()<CR>")
  86. keymap("n", "<leader>dx", ":call vimspector#Reset()<CR>")
  87. keymap("n", "<leader>dX", ":call vimspector#ClearBreakpoints()<CR>")
  88. keymap("n", "<S-k>", ":call vimspector#StepOut()<CR>")
  89. keymap("n", "<S-l>", ":call vimspector#StepInto()<CR>")
  90. keymap("n", "<S-j>", ":call vimspector#StepOver()<CR>")
  91. keymap("n", "<leader>d_", ":call vimspector#Restart()<CR>")
  92. keymap("n", "<leader>dn", ":call vimspector#Continue()<CR>")
  93. keymap("n", "<leader>drc", ":call vimspector#RunToCursor()<CR>")
  94. keymap("n", "<leader>dh", ":call vimspector#ToggleBreakpoint()<CR>")
  95. keymap("n", "<leader>de", ":call vimspector#ToggleConditionalBreakpoint()<CR>")