diff --git a/lua/absolute/remap.lua b/lua/absolute/remap.lua new file mode 100644 index 0000000..92c9c7d --- /dev/null +++ b/lua/absolute/remap.lua @@ -0,0 +1,124 @@ +local opts = { + noremap = true, + silent = true, +} + +opts.desc = "Show Keymap" +vim.keymap.set("n", "?", "Telescope keymaps", opts) -- toggle file explorer + +opts.desc = "Select All" +vim.keymap.set("n", "", "gg0vG$", opts) -- select all + +-- Move selected line / block of text in visual mode up +opts.desc = "Move selected line / block of text in visual mode up" +vim.keymap.set("v", "J", ":m '>+1gv=gv", opts) + +-- Move selected line / block of text in visual mode down +opts.desc = "Move selected line / block of text in visual mode down" +vim.keymap.set("v", "K", ":m '<-2gv=gv", opts) + +-- Join current line with the line below it +opts.desc = "Join current line with the line below it" +vim.keymap.set("n", "J", "mzJ`z", opts) + +-- Move half page down +opts.desc = "Move half page down" +vim.keymap.set("n", "", "zz", opts) + +-- Move half page up +opts.desc = "Move half page up" +vim.keymap.set("n", "", "zz", opts) + +-- Navigate to next search result, center screen and expand folded text +opts.desc = "Navigate to next search result, center screen and expand folded text" +vim.keymap.set("n", "n", "nzzzv", opts) + +-- Navigate to previous search result, center screen and expand folded text, +opts.desc = "Navigate to previous search result, center screen and expand folded text" +vim.keymap.set("n", "N", "Nzzzv", opts) + +-- Delete selected text and paste from register +opts.desc = "Delete selected text and paste from register" +vim.keymap.set("x", "p", [["_dP]], opts) + +-- Copy selected text into system clipboard +opts.desc = "Copy selected text into system clipboard" +vim.keymap.set({ "n", "v" }, "y", [["+y]], opts) + +-- Copy current line into system clipboard +opts.desc = "Copy current line into system clipboard" +vim.keymap.set("n", "Y", [["+Y]], opts) + +-- Delete (blackhole) +opts.desc = "Delete current line (blackhole)" +vim.keymap.set({ "n", "v" }, "d", [["_d]], opts) + +-- Disable Q - Nothing Good Ever Happens +-- Q is normally used to enable Ex mode. We dont want that +opts.desc = "Disable Q - Nothing Good Ever Happens" +vim.keymap.set("n", "Q", "", opts) + +-- Navigation Quick Fixes +-- +opts.desc = "Jump up and center screen" +vim.keymap.set("n", "", "cnextzz", opts) + +opts.desc = "Jump down and center screen" +vim.keymap.set("n", "", "cprevzz", opts) + +opts.desc = "Jump to next location and center screen" +vim.keymap.set("n", "k", "lnextzz", opts) + +opts.desc = "Jump to previous location and center screen" +vim.keymap.set("n", "j", "lprevzz", opts) + +-- Search Regex Keymap +opts.desc = "Regex Replace" +vim.keymap.set("n", "sr", [[:%s/\<\>//gI]], opts) + +opts.desc = "Replace selected text" +vim.keymap.set("v", "ss", [[:s/\<\>//gI]], opts) + +-- -- Source File Keymap +-- opts.desc = "Source File" +-- vim.keymap.set("n", "", function() +-- -- Only source these file extensions +-- local allowed_extensions = [[ +-- ".vim", +-- ".lua", +-- ".vimrc", +-- ".gvimrc", +-- ".nvim", +-- ".nvimrc", +-- ".sh" +-- ]] +-- +-- -- Get the file extension +-- local file_extension = vim.fn.expand("%:e") +-- +-- -- Check if the file extension is allowed +-- if string.find(allowed_extensions, file_extension) then +-- vim.cmd("so %") +-- vim.notify("Sourced file", vim.log.levels.INFO) +-- else +-- vim.notify("Filetype not supported", vim.log.levels.ERROR) +-- end +-- end, opts) + +-- Optimize Window Resize + +-- Resize Window Right +opts.desc = "Resize Window Right" +vim.keymap.set("n", "l", "10>", opts) + +-- Resize Window Left +opts.desc = "Resize Window Left" +vim.keymap.set("n", "h", "10<", opts) + +-- Resize Window Up +opts.desc = "Resize Window Up" +vim.keymap.set("n", "k", "10-", opts) + +-- Resize Window Down +opts.desc = "Resize Window Down" +vim.keymap.set("n", "j", "10+", opts)