-- -- Keymaps! Alot of stuff "borrowed" from thePrimeagen -- local map = vim.keymap.set local cmd = vim.cmd vim.g.mapleader = " " -- Make half page jumps stay in the center of screen map("n", "", "zz", { silent = true, desc = "jump half a page up" }) map("n", "", "zz", { silent = true, desc = "jump half a page down" }) map("n", "", "zz", { silent = true, desc = "jump half a page up" }) map("n", "", "zz", { silent = true, desc = "jump half a page down" }) -- Make jump to next search item stay in the center of screen. map("n", "n", "nzzzv", { silent = true, desc = "jump to next search match" }) map("n", "N", "Nzzzv", { silent = true, desc = "jump to previous search match" }) -- Ctrl+s saves the current buffer in normal/insert mode. map({ "n", "i" }, "", cmd.w, { desc = "save current buffer" }) -- Move text map("n", "", ":m -2v=", { silent = true, desc = "move current line one line up" }) map("n", "", ":m +1v=", { silent = true, desc = "move current line one line down" }) map("v", "", ":m '<-2gv=gv", { silent = true, desc = "move current selection one line up" }) map("v", "", ":m '>+1gv=gv", { silent = true, desc = "move current selection one line down" }) -- copy/paste map("x", "p", [["_dP]], { silent = true, desc = "Paste over selected text without losing content in \"-register" }) map({ "n", "v" }, "y", [["+y]], { desc = "Yank to system clipboard register" }) map({ "n", "v" }, "p", [["+p]], { desc = "Paste from system clipboard register" }) -- File operations map("n", "Fc", ":CreateFile ", { silent = true, desc = "Create new file" }) map("n", "Fx", "!chmod +x %", { silent = true, desc = "Set execute flag on current file" }) -- buffers map("n", "bn", cmd.bn, { silent = true, desc = "Move to next buffer" }) map("n", "bb", cmd.bp, { silent = true, desc = "Move to previous buffer" }) map("n", "bd", cmd.bd, { silent = true, desc = "Close current buffer" }) map("n", "bc", "BufferLineCloseOthers", { silent = true, desc = "Close all other buffers" }) map("n", "bD", "%bd", { silent = true, desc = "Close all buffers" }) -- Indent map('n', "", "^=$") map('x', "", "=", { desc = "auto indent selection" }) map("i", "", "", { desc = "delete indent" }) -- fix paste -- map('n', "p", "p=$") -- Crazy search+replace map("n", "rw", [[:%s/\<\>//gI]], { desc = "search+replace word under cursor" }) map({ "x" }, "fhx", [[:s/\(\x\{2\}\)/0x\1, /g]], { desc = "Format hex" }) map({ "x" }, "fha", [[:s/0x\(\x\{1\}\X\)/0x0\1/g]], { desc = "Format each hex number to be 2 characters long" }) map({ "x" }, "fhn", [[:s/\(\(0x\x\{1,2\}, \)\{8\}\)/\1\r/g]], { desc = "Format hex with 8 bytes per row" }) -- map({"x"}, "hb", [[:'<,'>s/\(\x\{2\}\)/0x\1, /g]], { desc = "Format a hex string to byte array"}) -- diagnostics map("n", "do", vim.diagnostic.open_float, { desc = "Open diagnostics" }) map("n", "dn", vim.diagnostic.get_next, { desc = "Goto next" }) map("n", "dp", vim.diagnostic.get_prev, { desc = "Goto previous" }) -- TMux map("n", "m", ":terminal tmuxsi", { desc = "Open tmux manager" }) map("n", "Q", "")