-- Keymaps for better default experience -- See `:help vim.keymap.set()` --vim.keymap.set({ 'n', 'v' }, '', '', { silent = true }) -- Remap for dealing with word wrap vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) vim.keymap.set("v", "J", ":m '>+1gv=gv") vim.keymap.set("v", "K", ":m '<-2gv=gv") -- save file -- vim.keymap.set({ "i", "x", "n", "s" }, "", "w", { desc = "Save file" }) -- vim.keymap.set({ "i", "x", "n", "s" }, "", ":qall", { desc = "Save file" }) -- better indenting vim.keymap.set("v", "<", "", ">gv") -- better jumps vim.keymap.set("n", "", "zz") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "", "zz") vim.keymap.set("i", "", "", { noremap = true, silent = true }) vim.keymap.set("i", "", "", { noremap = true, silent = true }) vim.keymap.set("i", "", "", { noremap = true, silent = true }) -- Paste over currently selected text without yanking it vim.keymap.set("v", "p", '"_dP') vim.keymap.set("n", "p", [["_dP]], { desc = "Paste over currently selected text without yanking it" }) vim.keymap.set("n", "Y", [["+Y]], { noremap = true, silent = true }) vim.keymap.set({ "n", "v" }, "y", [["+y]], { noremap = true, silent = true }) vim.keymap.set({"n", "v"}, "d", [["_d]], { noremap = true, silent = true }) -- new file vim.keymap.set("n", "bn", "enew", { desc = "New File" }) -- vim.keymap.set("n", "bd", "bdelete", { desc = "Unload Buffer" }) vim.keymap.set("n", "`", "e #", { desc = "Switch to Other Buffer" }) -- Clear search with vim.keymap.set('n', '', 'nohlsearch', { desc = "clear hlsearch" }) -- vim.keymap.set("n", "", "nohlsearch", { desc = "clear hlsearch" }) -- Diagnostic keymaps vim.keymap.set('n', 'cl', vim.diagnostic.setloclist, { desc = 'Send diagnostic to location list' }) vim.keymap.set("n", "cq", vim.diagnostic.setqflist, { desc = "Send diagnostic to Quickfix" }) -- vim.keymap.set("n", "gq", "copen", { desc = "Quickfix List" }) -- vim.keymap.set("n", "gl", "lopen", { desc = "Location List" }) vim.keymap.set('n', 'eb', ".w !bash -e", { desc = "Send line to bash" }) vim.keymap.set('n', 'eB', "%w !bash -e", { desc = "Send buffer to bash" }) vim.keymap.set('n', 'e.', ".!bash -e", { desc = "Execute current line" }) vim.keymap.set('n', 'e%', "% !bash -e", { desc = "Execute current buffer" }) vim.keymap.set('n', 'ex', "!chmod +x %", { desc = "Make file executable" }) vim.keymap.set('n', "eL", "source %", { desc = "Source current buffer" }) vim.keymap.set('n', "el", ".lua", { desc = "Source current line" }) vim.keymap.set('v', "el", "lua", { desc = "Source current line" }) vim.keymap.set("n", "ey", function() local file = vim.fn.expand "%" local line = vim.fn.line "." vim.fn.setreg("+", string.format("%s:%d", file, line)) vim.notify "Copied line reference to clipboard" end, { desc = "Copy line reference to clipboard" })