vim.g.mapleader = " " vim.cmd("command! W w") vim.api.nvim_create_user_command("Mdtf", function(opts) vim.cmd(string.format("%d,%d!column -t -s '|' -o '|'", opts.line1, opts.line2)) end, { range = true, }) vim.keymap.set("v", "mt", ":!column -t -s '|' -o '|'", { desc = "Format markdown table" }) -- Macros vim.keymap.set("t", "", "") -- tnoremap vim.keymap.set("n", "c", ":w:!cargorun") -- vim.keymap.set("n", "pv", vim.cmd.Ex) vim.keymap.set("n", "pv", "Oil", { desc = "Open parent directory" }) vim.keymap.set("n", "-", "Oil", { desc = "Open parent directory" }) vim.keymap.set("n", "x", "!chmod +x %", { silent = true }) vim.keymap.set("v", "J", ":m '>+1gv=gv") vim.keymap.set("v", "K", ":m '<-2gv=gv") vim.keymap.set("n", "J", "mzJ`z") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "n", "nzzzv") vim.keymap.set("n", "N", "Nzzzv") -- greatest remap ever vim.keymap.set("x", "P", "\"_dP") vim.keymap.set("x", "p", "\"_dp") -- next greatest remap ever : asbjornHaland -- to void register (system) vim.keymap.set("n", "y", "\"+y") vim.keymap.set("v", "y", "\"+y") vim.keymap.set("n", "Y", "\"+Y") vim.keymap.set("v", "d", "\"_d") vim.keymap.set("v", "dd", "\"_d") vim.keymap.set("n", "", "\"\"i"); -- This is going to get me cancelled vim.keymap.set("i", "", "") vim.keymap.set("n", "Q", "") vim.keymap.set("n", "", "silent !tmux display-popup -E \"tmuxss -i\"") vim.keymap.set("n", "f", function() vim.lsp.buf.format() end) vim.keymap.set("n", "", "cprevzz") vim.keymap.set("n", "", "cnextzz") -- vim.keymap.set("n", "k", "lnextzz") -- vim.keymap.set("n", "j", "lprevzz") vim.keymap.set("n", "s", ":%s/\\<\\>//gI") for _, mode in ipairs({ "n", "v", "i" }) do vim.keymap.set(mode, "", function() end) vim.keymap.set(mode, "<2-RightMouse>", function() end) vim.keymap.set(mode, "<3-RightMouse>", function() end) vim.keymap.set(mode, "<4-RightMouse>", function() end) end vim.keymap.set("n", "", "tabnext +") vim.keymap.set("n", "", "tabnext -") vim.keymap.set("n", "", "tabnew") -- vim.keymap.del("n", "d") -- vim.keymap.del("n", "") vim.keymap.set("n", "", "tabclose") vim.keymap.set("n", "l", "source %") vim.keymap.set("n", "l", ":.lua") vim.keymap.set("v", "l", ":lua") local function swap_words() local start = vim.fn.getpos("'<")[2] local finish = vim.fn.getpos("'>")[2] local w1 = vim.fn.input("Word 1: ") local w2 = vim.fn.input("Word 2: ") if w1 == "" or w2 == "" then return end local lines = vim.api.nvim_buf_get_lines(0, start - 1, finish, false) for i, line in ipairs(lines) do line = line:gsub(vim.pesc(w1), "__TMP__") line = line:gsub(vim.pesc(w2), w1) line = line:gsub("__TMP__", w2) lines[i] = line end vim.api.nvim_buf_set_lines(0, start - 1, finish, false, lines) end vim.keymap.set("v", "ws", swap_words, { desc = "Swap two words in selection" }) vim.keymap.set("n", "ws", swap_words, { desc = "Swap two words in selection" }) -- @source https://github.com/benlubas/.dotfiles/blob/main/nvim%2Fafter%2Fftplugin%2Fqf.lua local del_qf_item = function() local items = vim.fn.getqflist() local line = vim.fn.line('.') table.remove(items, line) vim.fn.setqflist(items, "r") vim.api.nvim_win_set_cursor(0, { line, 0 }) end -- this is super basic. I might improve it at some point, but it's good enough for how little I use -- the QF list vim.keymap.set("n", "dd", del_qf_item, { silent = true, buffer = true, desc = "Remove entry from QF" }) vim.keymap.set("v", "D", del_qf_item, { silent = true, buffer = true, desc = "Remove entry from QF" }) vim.keymap.set("n", "", "copen");