dots/configs/nvim/lua/aleidk/keymaps.lua
2025-09-05 09:46:51 -04:00

41 lines
2.5 KiB
Lua

-- stylua: ignore start
-- QoL normalization's
vim.keymap.set("n", "Q", "<nop>", {})
vim.keymap.set({ "n", "v" }, "<Space>", "<Nop>", { 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", "<C-d>", "<C-d>zz", { desc = "Keep cursor centered while junping", silent = true })
-- vim.keymap.set("n", "<C-u>", "<C-u>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<CR>", { desc = "Create vsplit", silent = true })
vim.keymap.set("n", "°", ":sp<CR>", { desc = "Create split", silent = true })
vim.keymap.set("v", "p", [["_dP]], { desc = "Paste without lossing yanked text", silent = true })
vim.keymap.set("n", "<Leader>uh", ":nohl<CR>", { desc = "Remove search highlight", silent = true })
-- Buffer manipulation
vim.keymap.set("n", "<leader>bc", "<Cmd>bd<CR>", { desc = "Close buffer", silent = true })
vim.keymap.set("n", "<leader>bh", "<Cmd>bp<CR>", { desc = "Prev buffer", silent = true })
vim.keymap.set("n", "<leader>bl", "<Cmd>bn<CR>", { desc = "Next buffer", silent = true })
vim.keymap.set("n", "<leader>bA", "<Cmd>bufdo bd<CR>", { desc = "Close all buffers", silent = true })
vim.keymap.set("n", "<C-h>", "<C-w>h", { desc = "Move to left window", silent = true })
vim.keymap.set("n", "<C-j>", "<C-w>j", { desc = "Move to bottom window", silent = true })
vim.keymap.set("n", "<C-k>", "<C-w>k", { desc = "Move to top window", silent = true })
vim.keymap.set("n", "<C-l>", "<C-w>l", { desc = "Move to right window", silent = true })
-- LSP
vim.keymap.set("n", "<leader>lr", function() vim.lsp.buf.rename() end, { desc = "Rename symbol", silent = true })
vim.keymap.set("n", "<leader>lf", vim.lsp.buf.format, { desc = "Format document with LSP", silent = true })
vim.keymap.set("n", "<leader>lj", function() vim.diagnostic.jump({ count = 1 }) end,
{ desc = "Go to next diagnostic", silent = true })
vim.keymap.set("n", "<leader>lk", function() vim.diagnostic.jump({ count = -1 }) end,
{ desc = "Go to next diagnostic", silent = true })