local map = vim.keymap.set map("v", "p", function() local val = vim.fn.getreg '"' vim.api.nvim_command [[normal! p]] vim.fn.setreg('"', val) end, { desc = "Special paste, paste without replacing copy register content" }) map("n", "bd", ":bd!", { desc = "Deletes the current buffer" }) map("n", "fz", function () vim.cmd [[normal zfaf]] end, { desc = "Fold the function" }) -- lists navigation map("n", "", ":cnextzz", { desc = "Goes to the next item in the quickfixlist and center to the screen" }) map("n", "", ":cprevzz", { desc = "Goes to the previous item in the quickfixlist and center to the screen" }) -- map("n", "i", ":lnextzz") -- map("n", "o", ":lprevzz") map("n", "cc", ":cclose", { desc = "Close the quick fix list" }) -- tabulation map("v", "<", "", ">gv", { desc = "Indent in and keeps the selection" }) -- symbols to add undo points local symbols = { ",", ".", "!", "?", "$", ">", "<" } for _, symbol in pairs(symbols) do map("i", symbol, symbol .. "u", { desc = string.format("Add symbol %s to the undo list and writes it", symbol) }) end -- search result focus map("n", "n", "nzzzv", { desc = "Goes to next result on the search and put the cursor in the middle of the screen" }) map("n", "N", "Nzzzv", { desc = "Goes to prev result on the search and put the cursor in the middle of the screen" }) -- join lines focus map("n", "J", "mzJ`z", { desc = "Join lines and keep in the same place the cursor" }) -- Terminal map("t", "", "") map("t", "h", "h") map("t", "j", "j") map("t", "k", "k") map("t", "l", "l") -- quick env file edit map("n", "ee", ":vsp .env", { desc = "Open .env file in a vertical split" }) -- quick save and exec map( "n", "x", require("alpha.utils").save_and_exec, { desc = "Save the current file and source it for .vim and .lua files" } ) map("n", "vn", vim.diagnostic.goto_next, { desc = "Goes to next diagnostic error" }) map("n", "vp", vim.diagnostic.goto_prev, { desc = "Goes to prev diagnostic error" })