-- set leader key to space vim.g.mapleader = " " local keymap = vim.keymap -- for conciseness -- clear search highlights keymap.set("n", "nh", ":nohl", { desc = "Clear search highlights" }) -- delete single character without copying into register keymap.set("n", "x", '"_x') -- increment/decrement numbers keymap.set("n", "+", "", { desc = "Increment number" }) -- increment keymap.set("n", "-", "", { desc = "Decrement number" }) -- decrement -- window management keymap.set("n", "sv", "v", { desc = "Split window vertically" }) -- split window vertically keymap.set("n", "sh", "s", { desc = "Split window horizontally" }) -- split window horizontally keymap.set("n", "se", "=", { desc = "Make splits equal size" }) -- make split windows equal width & height keymap.set("n", "sx", "close", { desc = "Close current split" }) -- close current split window keymap.set("n", "tn", "tabnew", { desc = "Open new tab" }) -- open new tab keymap.set("n", "tq", "tabclose", { desc = "Close current tab" }) -- close current tab keymap.set("n", "tl", "tabn", { desc = "Go to next tab" }) -- go to next tab keymap.set("n", "th", "tabp", { desc = "Go to previous tab" }) -- go to previous tab keymap.set("n", "tf", "tabnew %", { desc = "Open current buffer in new tab" }) -- move current buffer to new -- --buffers -- keymap.set("n", "L", "bn", { desc = "Go to next buffer" }) keymap.set("n", "H", "bp", { desc = "Go to previous buffer" }) keymap.set("n", "bn", "bn", { desc = "Go to next buffer" }) keymap.set("n", "bp", "bp", { desc = "Go to previous buffer" }) keymap.set("n", "bq", "bd", { desc = "Close current buffer" }) keymap.set("n", "bf", "Telescope buffers", { desc = "Open telescope buffers" }) -- make space unactionable keymap.set({ "n", "v" }, "", "", { silent = true }) keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) -- [[ Highlight on yank ]] -- See `:help vim.highlight.on_yank()` local highlight_group = vim.api.nvim_create_augroup("YankHighlight", { clear = true }) vim.api.nvim_create_autocmd("TextYankPost", { callback = function() vim.highlight.on_yank() end, group = highlight_group, pattern = "*", }) --moving highlighted ( in v command ) with Capital K J keymap.set("v", "J", ":m '>+1gv=gv") keymap.set("v", "K", ":m '<-2gv=gv") -- pageup and down remain in center keymap.set("n", "", "zz") keymap.set("n", "", "zz") keymap.set("n", "", "zz") keymap.set("n", "", "zz") -- pacte and del without adding to vim regester keymap.set("x", "d", [["_dP]], { desc = "delete without add to regester" }) keymap.set({ "n", "v" }, "d", [["_d]], { desc = "delete without add to regester" }) -- use leader y for system clipborad keymap.set({ "n", "v" }, "y", [["+y]], { desc = "yank to + regester " }) keymap.set("n", "Y", [["+Y]], { desc = "Yank to + regester without " }) -- for pacte keymap.set({ "n", "v" }, "p", [["+p]], { desc = "pacte without add to regester" }) keymap.set("n", "P", [["+P]], { desc = "pacte without add to regester" })