dotfiles/nvim/lua/config/keybindings.lua

36 lines
1.4 KiB
Lua

local keymap = vim.keymap
-- Search
keymap.set("n", "<leader>nh", ":nohl<CR>", { desc = "Clear search highlights" })
-- Window splits
keymap.set("n", "<leader>sv", "<C-w>v", { desc = "Split vertically" })
keymap.set("n", "<leader>sh", "<C-w>s", { desc = "Split horizontally" })
keymap.set("n", "<leader>se", "<C-w>=", { desc = "Equalise splits" })
keymap.set("n", "<leader>sx", ":close<CR>", { desc = "Close split" })
keymap.set("n", "<leader>mm", ":MaximizerToggle<CR>", { desc = "Toggle fullscreen" })
-- Window navigation
keymap.set("n", "<C-h>", "<C-W>h", { desc = "Move left" })
keymap.set("n", "<C-j>", "<C-W>j", { desc = "Move down" })
keymap.set("n", "<C-k>", "<C-W>k", { desc = "Move up" })
keymap.set("n", "<C-l>", "<C-W>l", { desc = "Move right" })
-- Toggle virtual diagnostics
keymap.set("n", "<leader>lh", function()
local config = vim.diagnostic.config()
vim.diagnostic.config({ virtual_text = not config.virtual_text })
end, { desc = "Toggle virtual diagnostics" })
-- Toggle spellcheck
keymap.set("n", "<leader>sp", function()
vim.opt.spell = not vim.opt.spell:get()
vim.opt.spelllang = "en_gb"
end, { desc = "Toggle spell check" })
-- Toggle in-file Git diff (mini.diff)
keymap.set("n", "<leader>dif", function()
MiniDiff.toggle_overlay()
end, { desc = "Toggle in-file Git diff" })
-- 0.12: gc{motion}/gcc/gbc for commenting is built-in, no plugin needed