-- stylua: ignore start -- QoL normalization's vim.keymap.set("n", "Q", "", {}) vim.keymap.set({ "n", "v" }, "", "", { desc = "Prevent cursor movement", silent = true }) vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { desc = "Move cursor regardless of word wrap", expr = true, silent = true }) vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { desc = "Move cursor regardless of word wrap", expr = true, silent = true }) vim.keymap.set("n", "J", "mzJ`z", { desc = "Keep cursor in column while joining lines", silent = true }) -- vim.keymap.set("n", "", "zz", { desc = "Keep cursor centered while junping", silent = true }) -- vim.keymap.set("n", "", "zz", { desc = "Keep cursor centered while junping", silent = true }) -- vim.keymap.set("n", "n", "nzzzv", { desc = "Keep cursor centered while searching", silent = true }) -- vim.keymap.set("n", "N", "Nzzzv", { desc = "Keep cursor centered while searching", silent = true }) -- Utils vim.keymap.set("n", "|", ":vs", { desc = "Create vsplit", silent = true }) vim.keymap.set("n", "°", ":sp", { desc = "Create split", silent = true }) vim.keymap.set("v", "p", [["_dP]], { desc = "Paste without lossing yanked text", silent = true }) vim.keymap.set("n", "uh", ":nohl", { desc = "Remove search highlight", silent = true }) -- Buffer manipulation vim.keymap.set("n", "bc", "bd", { desc = "Close buffer", silent = true }) vim.keymap.set("n", "bh", "bp", { desc = "Prev buffer", silent = true }) vim.keymap.set("n", "bl", "bn", { desc = "Next buffer", silent = true }) vim.keymap.set("n", "bA", "bufdo bd", { desc = "Close all buffers", silent = true }) vim.keymap.set("n", "", "h", { desc = "Move to left window", silent = true }) vim.keymap.set("n", "", "j", { desc = "Move to bottom window", silent = true }) vim.keymap.set("n", "", "k", { desc = "Move to top window", silent = true }) vim.keymap.set("n", "", "l", { desc = "Move to right window", silent = true }) -- LSP vim.keymap.set("n", "lr", function() vim.lsp.buf.rename() end, { desc = "Rename symbol", silent = true }) vim.keymap.set("n", "lf", vim.lsp.buf.format, { desc = "Format document with LSP", silent = true }) vim.keymap.set("n", "lj", function() vim.diagnostic.jump({ count = 1 }) end, { desc = "Go to next diagnostic", silent = true }) vim.keymap.set("n", "lk", function() vim.diagnostic.jump({ count = -1 }) end, { desc = "Go to next diagnostic", silent = true })