vim.g.mapleader = " " vim.g.maplocalleader = " " -- Keymaps for better default experience vim.keymap.set({ "n", "v" }, "", "", { silent = true }) -- Space + s saves the file vim.keymap.set("n", "s", ":write", { silent = true }) -- Move normally between wrapped lines vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) -- Shift + q - Quit vim.keymap.set("n", "Q", "q") -- vv - Makes vertical split vim.keymap.set("n", "vv", "v") -- ss - Makes horizontal split vim.keymap.set("n", "ss", "s") -- Quick jumping between splits vim.keymap.set("n", "", "j") vim.keymap.set("n", "", "k") vim.keymap.set("n", "", "h") vim.keymap.set("n", "", "l") -- Indenting in visual mode (tab/shift+tab) vim.keymap.set("v", "", ">gv") vim.keymap.set("v", "", " y y`]") vim.cmd("vnoremap p p`]") vim.cmd("nnoremap p p`]") -- Space + Space to clean search highlight vim.keymap.set("n", "h", ":noh", { silent = true }) -- Fixes pasting after visual selection. vim.keymap.set("v", "p", '"_dP') -- Select all vim.keymap.set("n", "", "ggG") -- Save with root permission (not working for now) --vim.api.nvim_create_user_command('W', 'w !sudo tee > /dev/null %', {}) -- Disable continuations vim.keymap.set("n", "o", "o^Da", opts) vim.keymap.set("n", "O", "O^Da", opts) -- Jumplist vim.keymap.set("n", "", "", opts) -- New tab vim.keymap.set("n", "te", ":tabedit") vim.keymap.set("n", "", ":tabnext", opts) vim.keymap.set("n", "", ":tabprev", opts) -- Resize window vim.keymap.set("n", "", "<") vim.keymap.set("n", "", ">") vim.keymap.set("n", "", "+") vim.keymap.set("n", "", "-") -- Diagnostics vim.keymap.set("n", "", function() vim.diagnostic.goto_next() end, opts) vim.keymap.set("n", "r", function() require("craftzdog.hsl").replaceHexWithHSL() end) vim.keymap.set("n", "i", function() require("craftzdog.lsp").toggleInlayHints() end)