local map = vim.keymap.set -- Leader vim.g.mapleader = " " vim.g.maplocalleader = ";" -- Move text easilly map("v", "J", ":m '>+1gv=gv", { desc = "Move selected text up" }) map("v", "K", ":m '<-2gv=gv", { desc = "Move selected text down" }) -- better find next and previous map("n", "n", "nzzzv", { desc = "Keep cursor in middle with search" }) map("n", "N", "Nzzzv", { desc = "Keep cursor in middle with search" }) map("n", "J", "mzJ`z", { desc = "Move up next line with space in between" }) -- greatest remap ever map("x", "p", [["_dP]], { desc = "Paste while keeping the registry" }) -- moving vim.keymap.set("i", "", "I", { noremap = true }) vim.keymap.set("i", "", "A", { noremap = true }) vim.keymap.set("i", "", "D", { noremap = true }) -- buffers vim.keymap.set("n", "gb", "buffers:buffer", { noremap = true }) vim.keymap.set("n", "q", "q!", { noremap = true }) vim.keymap.set("n", "Q", "qa!", { noremap = true }) -- close all except focused buffer vim.keymap.set("n", "1", "%bd|e#", { noremap = true }) -- next tab vim.keymap.set("n", "+", "tabe .", { noremap = true }) -- better indenting map("v", "<", "", ">gv") -- allow for use of system clipboard fast map({ "n", "v" }, "y", [["+y]]) map("n", "Y", [["+Y]]) map({ "n", "v" }, "P", [["+p]]) map({ "n", "v" }, "d", [["_d]]) -- templates vim.keymap.set("n", "rt", ":-1r " .. vim.fn.stdpath("config") .. "/templates", { noremap = true }) -- hide all local s = {hidden_all = 0} vim.keymap.set("n", "", function () s.hidden_all = 1 - s.hidden_all local opt = s.hidden_all == 0 vim.opt.showmode = opt vim.opt.ruler = opt vim.opt.nu = opt vim.opt.rnu = opt vim.opt.showcmd = opt vim.opt.laststatus = opt and 2 or 0 vim.opt.signcolumn = opt and "yes" or "no" end, { noremap = true }) -- write vim.keymap.set("n", "w", "write", { noremap = true }) vim.keymap.set("n", "W", "write!", { noremap = true }) vim.keymap.set("n", "e", "edit", { noremap = true }) vim.keymap.set("n", "s", function () vim.cmd.source() print("sourced.") end, { noremap = true }) -- Lazy vim.keymap.set("n", "P", "Lazy", { noremap = true }) -- spelling vim.keymap.set("n", "s", "setlocal spell!", { noremap = true }) vim.keymap.set("n", "g", "z=1", { noremap = true })