nvim_config/lua/mpx/core/keymaps.lua

73 lines
3.4 KiB
Lua

-- set leader key to space
vim.g.mapleader = " "
local keymap = vim.keymap -- for conciseness
-- clear search highlights
keymap.set("n", "<leader>nh", ":nohl<CR>", { desc = "Clear search highlights" })
-- delete single character without copying into register
keymap.set("n", "x", '"_x')
-- increment/decrement numbers
keymap.set("n", "<leader>+", "<C-a>", { desc = "Increment number" }) -- increment
keymap.set("n", "<leader>-", "<C-x>", { desc = "Decrement number" }) -- decrement
-- window management
keymap.set("n", "<leader>sv", "<C-w>v", { desc = "Split window vertically" }) -- split window vertically
keymap.set("n", "<leader>sh", "<C-w>s", { desc = "Split window horizontally" }) -- split window horizontally
keymap.set("n", "<leader>se", "<C-w>=", { desc = "Make splits equal size" }) -- make split windows equal width & height
keymap.set("n", "<leader>sx", "<cmd>close<CR>", { desc = "Close current split" }) -- close current split window
keymap.set("n", "<leader>tn", "<cmd>tabnew<CR>", { desc = "Open new tab" }) -- open new tab
keymap.set("n", "<leader>tq", "<cmd>tabclose<CR>", { desc = "Close current tab" }) -- close current tab
keymap.set("n", "<leader>tl", "<cmd>tabn<CR>", { desc = "Go to next tab" }) -- go to next tab
keymap.set("n", "<leader>th", "<cmd>tabp<CR>", { desc = "Go to previous tab" }) -- go to previous tab
keymap.set("n", "<leader>tf", "<cmd>tabnew %<CR>", { desc = "Open current buffer in new tab" }) -- move current buffer to new
--
--buffers
--
keymap.set("n", "L", "<cmd>bn<CR>", { desc = "Go to next buffer" })
keymap.set("n", "H", "<cmd>bp<CR>", { desc = "Go to previous buffer" })
keymap.set("n", "<leader>bn", "<cmd>bn<CR>", { desc = "Go to next buffer" })
keymap.set("n", "<leader>bp", "<cmd>bp<CR>", { desc = "Go to previous buffer" })
keymap.set("n", "<leader>bq", "<cmd>bd<CR>", { desc = "Close current buffer" })
keymap.set("n", "<leader>bf", "<cmd>Telescope buffers<CR>", { desc = "Open telescope buffers" })
-- make space unactionable
keymap.set({ "n", "v" }, "<Space>", "<Nop>", { 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 '>+1<CR>gv=gv")
keymap.set("v", "K", ":m '<-2<CR>gv=gv")
-- pageup and down remain in center
keymap.set("n", "<C-d>", "<C-d>zz")
keymap.set("n", "<C-u>", "<C-u>zz")
keymap.set("n", "<PageDown>", "<C-d>zz")
keymap.set("n", "<PageUp>", "<C-u>zz")
-- pacte and del without adding to vim regester
keymap.set("x", "<leader>d", [["_dP]], { desc = "delete without add to regester" })
keymap.set({ "n", "v" }, "<leader>d", [["_d]], { desc = "delete without add to regester" })
-- use leader y for system clipborad
keymap.set({ "n", "v" }, "<leader>y", [["+y]], { desc = "yank to + regester " })
keymap.set("n", "<leader>Y", [["+Y]], { desc = "Yank to + regester without " })
-- for pacte
keymap.set({ "n", "v" }, "<leader>p", [["+p]], { desc = "pacte without add to regester" })
keymap.set("n", "<leader>P", [["+P]], { desc = "pacte without add to regester" })