74 lines
3.3 KiB
Lua
74 lines
3.3 KiB
Lua
-- [[ Basic Keymaps ]]
|
|
-- See `:help vim.keymap.set()`
|
|
|
|
-- Clear highlights on search when pressing <Esc> in normal mode
|
|
-- See `:help hlsearch`
|
|
vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>")
|
|
|
|
-- Diagnostic keymaps
|
|
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Go to previous [D]iagnostic message" })
|
|
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Go to next [D]iagnostic message" })
|
|
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Show diagnostic [E]rror messages" })
|
|
vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Open diagnostic [Q]uickfix list" })
|
|
|
|
-- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier
|
|
-- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which
|
|
-- is not what someone will guess without a bit more experience.
|
|
--
|
|
-- NOTE: This won't work in all terminal emulators/tmux/etc. Try your own mapping
|
|
-- or just use <C-\><C-n> to exit terminal mode
|
|
vim.keymap.set("t", "<Esc><Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" })
|
|
vim.keymap.set("i", "jk", "<Esc>", { desc = "Exit insert mode" })
|
|
|
|
-- TIP: Disable arrow keys in normal mode
|
|
vim.keymap.set("n", "<left>", '<cmd>echo "Use h to move!!"<CR>')
|
|
vim.keymap.set("n", "<right>", '<cmd>echo "Use l to move!!"<CR>')
|
|
vim.keymap.set("n", "<up>", '<cmd>echo "Use k to move!!"<CR>')
|
|
vim.keymap.set("n", "<down>", '<cmd>echo "Use j to move!!"<CR>')
|
|
|
|
-- latex keys
|
|
vim.keymap.set("n", "<leader>ll", "<plug>(vimtex-compile)", { desc = "Compile LaTeX" })
|
|
vim.keymap.set("n", "<leader>lv", "<plug>(vimtex-view)", { desc = "View PDF" })
|
|
vim.keymap.set("n", "<leader>lc", "<plug>(vimtex-clean)", { desc = "Clean auxiliary files" })
|
|
|
|
-- QuickFix List
|
|
vim.keymap.set("n", "<M-n>", "<cmd>cnext<CR>")
|
|
vim.keymap.set("n", "<M-p>", "<cmd>cprev<CR>")
|
|
vim.keymap.set("n", "<M-o>", "<cmd>copen<CR>")
|
|
vim.keymap.set("n", "<M-c>", "<cmd>cclose<CR>")
|
|
|
|
-- buffers
|
|
vim.api.nvim_set_keymap("n", "bh", ":bfirst<enter>", { noremap = false })
|
|
vim.api.nvim_set_keymap("n", "bj", ":bnext<enter>", { noremap = false })
|
|
vim.api.nvim_set_keymap("n", "bk", ":bprev<enter>", { noremap = false })
|
|
vim.api.nvim_set_keymap("n", "bl", ":blast<enter>", { noremap = false })
|
|
vim.api.nvim_set_keymap("n", "bd", ":bdelete<enter>", { noremap = false })
|
|
|
|
-- Todo search
|
|
vim.keymap.set("n", "<leader>st", "<cmd>TodoQuickFix<CR>")
|
|
|
|
-- greatest remap ever
|
|
vim.keymap.set("x", "<leader>p", [["_dP]])
|
|
|
|
-- Keybinds to make split navigation easier.
|
|
-- Use CTRL+<hjkl> to switch between windows
|
|
-- See `:help wincmd` for a list of all window commands
|
|
vim.keymap.set("n", "<C-h>", "<C-w><C-h>", { desc = "Move focus to the left window" })
|
|
vim.keymap.set("n", "<C-l>", "<C-w><C-l>", { desc = "Move focus to the right window" })
|
|
vim.keymap.set("n", "<C-j>", "<C-w><C-j>", { desc = "Move focus to the lower window" })
|
|
vim.keymap.set("n", "<C-k>", "<C-w><C-k>", { desc = "Move focus to the upper window" })
|
|
|
|
-- [[ Basic Autocommands ]]
|
|
-- See `:help lua-guide-autocommands`
|
|
|
|
-- Highlight when yanking (copying) text
|
|
-- Try it with `yap` in normal mode
|
|
-- See `:help vim.highlight.on_yank()`
|
|
vim.api.nvim_create_autocmd("TextYankPost", {
|
|
desc = "Highlight when yanking (copying) text",
|
|
group = vim.api.nvim_create_augroup("kickstart-highlight-yank", { clear = true }),
|
|
callback = function()
|
|
vim.highlight.on_yank()
|
|
end,
|
|
})
|