local opts = { noremap = true, silent = true } local term_opts = { silent = true } -- Shorten function name local keymap = vim.api.nvim_set_keymap --Remap space as leader key -- keymap("", "", "", opts) vim.g.mapleader = "," vim.g.maplocalleader = "," -- Modes -- normal_mode = "n", -- insert_mode = "i", -- visual_mode = "v", -- visual_block_mode = "x", -- term_mode = "t", -- command_mode = "c", -- Normal -- -- Better window navigation keymap("n", "", "h", opts) keymap("n", "", "j", opts) keymap("n", "", "k", opts) keymap("n", "", "l", opts) -- Resize with arrows keymap("n", "", ":resize +2", opts) keymap("n", "", ":resize -2", opts) keymap("n", "", ":vertical resize +2", opts) keymap("n", "", ":vertical resize -2", opts) -- Navigate buffers keymap("n", "", ":bnext", opts) keymap("n", "", ":bprevious", opts) -- Insert -- -- Press jk fast to enter normal mode keymap("i", "jk", "", opts) -- Spellcheck in insert_mode keymap("i", "", "u[s1z=`]au", opts) -- Visual -- -- Stay in indent mode keymap("v", "<", "", ">gv", opts) -- Move text up and down keymap("v", "", ":m .+1==", opts) keymap("v", "", ":m .-2==", opts) keymap("v", "p", '"_dP', opts) -- Visual Block -- -- Move text up and down keymap("x", "J", ":move '>+1gv-gv", opts) keymap("x", "K", ":move '<-2gv-gv", opts) keymap("x", "", ":move '>+1gv-gv", opts) keymap("x", "", ":move '<-2gv-gv", opts) -- Terminal -- -- Better terminal navigation keymap("t", "", "h", term_opts) keymap("t", "", "j", term_opts) keymap("t", "", "k", term_opts) keymap("t", "", "l", term_opts) keymap("t", "", ":ToggleTermSendVisualSelection", term_opts) -- Open corresponding .pdf/.html or preview keymap("n","p", ":!opout %", opts) -- Nvimtree keymap("n", "e", ":NvimTreeToggle", opts) keymap("n", "v", ":edit $MYVIMRC", opts) -- keymap("n", "ff", "lua require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({ previewer = false }))", opts) keymap("n", "ff", ":Telescope find_files(require('telescope.themes').get_dropdown({ previewer = false }))", opts) keymap("n", "ft", ":Telescope live_grep", opts) keymap("n", "fb", ":Telescope buffers", opts) -- Magma keymap("n", "r", "nvim_exec('MagmaEvalutateOperator',v:true)", opts) keymap("n", "rr", ":MagmaEvalutateLine", opts) keymap("x", "r", ":MagmaEvalutateVisual", opts) keymap("n", "rc", ":MagmaReevalutateCell", opts) keymap("n", "rd", ":MagmaDelete", opts) keymap("n", "ro", ":MagmaShowOutput", opts) -- LSP -- keymap("n", "la", "lua vim.lsp.buf.code_action()", opts) keymap("n", "ld", "Telescope lsp_document_diagnostics", opts) keymap("n", "lf", "lua vim.lsp.buf.formatting_sync()", opts) keymap("n", "lF", "LspToggleAutoFormat", opts) keymap("n", "li", "LspInfo", opts) keymap("n", "lI", "LspInstallInfo", opts) keymap("n", "lw", "Telescope lsp_workspace_diagnostics", opts) keymap("n", "lj", "lua vim.lsp.diagnostic.goto_next()", opts) keymap("n", "lk", "lua vim.lsp.diagnostic.goto_prev()", opts) keymap("n", "lr", "lua vim.lsp.buf.rename()", opts) --Nabla keymap("n", "P", ":lua require('nabla').popup()", opts) --Pandoc keymap("n", "", ":lua require('pandoc').equation.show()", opts) keymap("n", "", ":lua require('pandoc').render.init()", opts) keymap("n", "", ":lua require('pandoc').render.build({ input = vim.api.nvim_get_buf_name(0), args = {{'--standalone'},{'toc'},{'--filter','pandoc-crossref'},{'--pdf-engine','xelatex'}}, output = 'pandoc.pdf' })", opts) --Jaq keymap("n", "", ":silent only | Jaq", opts) --Zen Mode keymap("n", "zm", ":ZenMode", opts)