return { "folke/which-key.nvim", event = "VeryLazy", init = function() vim.o.timeout = true vim.o.timeoutlen = 300 end, config = function() local wk = require("which-key") wk.setup({ window = { border = "single", }, }) local opts = { mode = "n", -- NORMAL mode prefix = "", buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings silent = true, -- use `silent` when creating keymaps noremap = true, -- use `noremap` when creating keymaps nowait = true, -- use `nowait` when creating keymaps } local vopts = { mode = "v", -- VISUAL mode prefix = "", buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings silent = true, -- use `silent` when creating keymaps noremap = true, -- use `noremap` when creating keymaps nowait = true, -- use `nowait` when creating keymaps } -- NOTE: Prefer using : over as the latter avoids going back in normal-mode. -- see https://neovim.io/doc/user/map.html#:map-cmd local vmappings = { s = { ":s///gI", "[s]ubstitute word" }, } local mappings = { c = { vim.cmd.bdelete, "[C]lose Buffer" }, t = { name = "[T]rouble" }, g = { name = "[G]it" }, l = { name = "[L]SP" }, p = { name = "Telescope", d = { name = "[D]evelopment" }, }, z = { name = "[Z]en" }, r = { name = "[R]ust" }, w = { name = "Vim[W]iki" }, L = { name = "[L]anguage settings", c = { "setlocal formatoptions-=cro", "Disable autocomment" }, C = { "setlocal formatoptions=cro", "Enable autocomment" }, s = { "setlocal spell!", "Toggle spellchecker" }, e = { "setlocal spell spelllang=en_us", "Enable English spellchecker" }, l = { "setlocal spell spelllang=lv_LV", "Enable Lavian spellchecker" }, I = { "setlocal autoindent", "Enable autoindent" }, i = { "setlocal noautoindent", "Disable autoindent" }, }, d = { name = "[D]AP", p = { name = "[P]ython" }, r = { name = "[R]ust" }, }, T = { name = "Vim[T]ex" }, P = { name = "Tem[p]lates", l = { name = "[L]aTeX", p = { function() vim.cmd.read("~/Templates/LaTeX/PhilPaper.tex") end, "PhilPaper.tex", }, l = { function() vim.cmd.read("~/Templates/LaTeX/Letter.tex") end, "Letter.tex", }, g = { function() vim.cmd.read("~/Templates/LaTeX/Glossary.tex") end, "Glossary.tex", }, h = { function() vim.cmd.read("~/Templates/LaTeX/HandOut.tex") end, "HandOut.tex", }, b = { function() vim.cmd.read("~/Templates/LaTeX/PhilBeamer.tex") end, "PhilBeamer.tex", }, s = { function() vim.cmd.read("~/Templates/LaTeX/SubFile.tex") end, "SubFile.tex", }, r = { function() vim.cmd.read("~/Templates/LaTeX/Root.tex") end, "Root.tex", }, m = { function() vim.cmd.read("~/Templates/LaTeX/MultipleAnswer.tex") end, "MultipleAnswer.tex", }, }, }, } wk.register(mappings, opts) wk.register(vmappings, vopts) end, }