-- explore the directory of the current file (using netrw) vim.keymap.set("n", "n", vim.cmd.Ex) -- move selected lines up or down vim.keymap.set("v", "J", ":m '>+1gv") vim.keymap.set("v", "K", ":m '<-2gv") -- vertically center cursor with half-page jumps iterating search results vim.keymap.set("n", "", "zz") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "n", "nzzzv") vim.keymap.set("n", "N", "Nzzzv") -- maintain cursor position after paragraph formatting vim.keymap.set("n", "=ap", "ma=ap'a") -- shortcuts for deleting into the void register vim.keymap.set({ "n", "v" }, "d", "\"_d") vim.keymap.set("x", "p", [["_dP]]) -- replace selected text, keep main register -- shortcuts for using + register (system clipboard) vim.keymap.set({ "n", "v" }, "y", [["+y]]) vim.keymap.set("n", "Y", [["+Y]]) -- search-and-replace shortcuts vim.keymap.set("n", "rw", [[:%s/\<\>//gI]]) vim.keymap.set("n", "ra", [[:%s//g]]) -- toggle expandtab and show message vim.keymap.set("n", "tab", function() if vim.opt.expandtab:get() then vim.opt.expandtab = false print("using actual tabs") else vim.opt.expandtab = true print("using spaces in place of tabs") end end) -- quicker switching between panes/splits vim.keymap.set("n", "", [[h]]) vim.keymap.set("n", "", [[j]]) vim.keymap.set("n", "", [[k]]) vim.keymap.set("n", "", [[l]]) -- TODO: learn about quickfix (:help quickfix), then maybe use these -- vim.keymap.set("n", "", "cnextzz") -- vim.keymap.set("n", "", "cprevzz") -- vim.keymap.set("n", "k", "lnextzz") -- vim.keymap.set("n", "j", "lprevzz")