keymaps.lua 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. local keymap = vim.keymap.set
  2. local opts = { silent = true }
  3. -- Move text buffer in visual mode
  4. keymap("v", "K", ":m '<-2<CR>gv=gv")
  5. keymap("v", "J", ":m '>+1<CR>gv=gv")
  6. -- Write and quit easier
  7. keymap("n", "<Leader>w", ":w<CR>")
  8. keymap("n", "<Leader>z", ":wq<CR>")
  9. keymap("n", "<Leader>q", ":qa<CR>")
  10. keymap("n", "<Leader>e", ":q<CR>")
  11. -- Windows commands
  12. keymap("n", "<leader>pv", ":wincmd v | :Ex | :vertical resize 30<CR>")
  13. keymap("n", "<leader>ps", ":Rg<CR>")
  14. keymap("n", "<leader>rh", ":vertical resize +5<CR>")
  15. keymap("n", "<leader>rl", ":vertical resize -5<CR>")
  16. -- General compile buttons
  17. keymap("", "<F3>", ":w<CR>:!compile \"%\" && pkill -HUP mupdf<CR>")
  18. keymap("", "<F2>", ":w<CR>:!latexmk -pdf \"%\" && pkill -HUP mupdf<CR>")
  19. keymap("", "<F4>", ":noh<CR>")
  20. keymap("", "<F5>", ":set spell!<CR>")
  21. keymap("", "<F6>", ":w<CR>:!glosscompile \"%\" && pkill -HUP mupdf<CR>")
  22. -- Jumper
  23. keymap("v", "<Space><Space>", "<Esc>/<++><Enter>\"_c4l")
  24. keymap("", "<Space><Space>", "<Esc>/<++><Enter>\"_c4l")
  25. -- Copy from / to clipboard
  26. keymap("v", "<leader>y", "\"+y")
  27. keymap("v", "<leader>Y", "\"+Y")
  28. keymap("n", "<leader>p", "\"+p")
  29. keymap("n", "<leader>P", "\"+P")
  30. -- Diagnostic navigation
  31. keymap("n", "[g", vim.diagnostic.goto_prev, opts)
  32. keymap("n", "]g", vim.diagnostic.goto_next, opts)
  33. keymap("n", "gl", vim.diagnostic.open_float, opts)
  34. -- LSP gotos
  35. keymap("n", "gd", vim.lsp.buf.definition, opts)
  36. keymap("n", "gy", vim.lsp.buf.type_definition, opts)
  37. keymap("n", "gi", vim.lsp.buf.implementation, opts)
  38. keymap("n", "gr", vim.lsp.buf.references, opts)
  39. keymap("n", "<leader>rn", vim.lsp.buf.rename, opts)
  40. -- LSP code actions
  41. keymap({ "n", "x" }, "<leader>a", vim.lsp.buf.code_action, opts)
  42. -- Switch to last opened file
  43. keymap("n", "<leader>b", "<c-^><cr>")
  44. -- NvimTree Toggle
  45. keymap("n", "<Leader>f", ":NvimTreeToggle<CR>", opts)
  46. -- Tab navigation
  47. for i = 1, 9 do
  48. keymap("", "<leader>" .. i, i .. "gt")
  49. end
  50. keymap("", "<leader>0", ":tablast<cr>")
  51. -- Auto center searches
  52. keymap("n", "n", "nzzzv")
  53. keymap("n", "N", "Nzzzv")
  54. -- Tagbar
  55. keymap("n", "<leader>g", ":TagbarToggle<CR>")
  56. -- Source vim config
  57. keymap("n", "<Leader>sv", ":source $XDG_CONFIG_HOME/nvim/init.lua<CR>")
  58. -- Telescope
  59. keymap("n", "<leader>l", ":Telescope live_grep<CR>")
  60. keymap("n", "<leader>t", ":Telescope git_files<CR>")
  61. keymap("n", "<leader>z", ":Telescope find_files<CR>")
  62. keymap("n", "<C-s>", ":Telescope grep_string<CR>")
  63. -- Markdown preview
  64. keymap("n", "<leader>mg", "<Plug>MarkdownPreview")
  65. keymap("n", "<leader>ms", "<Plug>MarkdownPreviewStop")
  66. keymap("n", "<leader>mt", "<Plug>MarkdownPreviewToggle")
  67. -- WhiteSpace
  68. keymap("n", "<leader>cw", ":StripWhitespace<CR>")
  69. keymap("n", "]w", ":NextTrailingWhitespace<CR>")
  70. keymap("n", "[w", ":PrevTrailingWhitespace<CR>")
  71. -- Smart window movement
  72. local utils = require("utils")
  73. keymap("n", "<C-h>", function() utils.win_move('h') end, opts)
  74. keymap("n", "<C-j>", function() utils.win_move('j') end, opts)
  75. keymap("n", "<C-k>", function() utils.win_move('k') end, opts)
  76. keymap("n", "<C-l>", function() utils.win_move('l') end, opts)