local set = vim.opt local opt = { noremap = true } local opts = { noremap = true, silent = true } local term_opts = { silent = true } -- shorten function name local keymap = vim.api.nvim_set_keymap -- Modes -- normal_mode = 'n', -- insert_mode = 'i', -- visual_mode = 'v', -- visual_block_mode = 'x', -- term_mode = 't', -- command_mode = 'c', ------------------------------------------------------------------------------- -- set space as leader key vim.g.mapleader = " " -- Set space as the leader key vim.g.maplocalleader = " " -- Optional: set local leader key to space as well -- switch colon to semicolon keymap("n", ";", ":", opt) keymap("n", ":", ";", opt) -- no arrows, move the vim way keymap("n", "", "", opts) keymap("n", "", "", opts) keymap("n", "", "", opts) keymap("n", "", "", opts) keymap("i", "", "", opts) keymap("i", "", "", opts) keymap("i", "", "", opts) keymap("i", "", "", opts) -- lazy write / quit keymap("n", "w", ":w", opts) keymap("n", "q", ":q", opts) keymap("n", "wq", ":wq", opts) keymap("n", "W", ":w!", opts) keymap("n", "Q", ":q!", opts) keymap("n", "WQ", ":wq!", opts) -- navigate properly when lines are wrapped keymap("n", "j", "gj", opts) keymap("n", "k", "gk", opts) -- toggle relativenumber keymap("n", "r", ":set invrnu", opts) -- easy folding -- toggle fold under cursor no jumping around keymap("n", "z", "za0", opts) -- maintaining visual mode after shifting > and < keymap("v", ">", ">gv", opts) keymap("v", "<", "", ":move '>+1gv-gv", opts) -- keymap("x", "", ":move '<-2gv-gv", opts) -- navigate buffers keymap("n", "", ":bnext", opts) keymap("n", "", ":bprevious", opts) -- scrolling command-line history keymap("c", "", "", opts) keymap("c", "", "", opts) -- open the current file in the default program keymap("n", "x", [[:!xdg-open %]], opts) -- -- no ex mode for me -- keymap("n", "Q", "", opts) -- prevent accidentally record functionality keymap("n", "q", "", opts) keymap("n", "qq", "q", opts) -- redirect change operations to blackhole avoid spoiling 'y' register content keymap("n", "c", '"_c', opts) keymap("n", "C", '"_C', opts) -- toggle cursorcolumn keymap("n", "c", ":set cursorcolumn!", opts) -- toggle netrw keymap("n", "nd", ":Lexplore %:p:h", opts) keymap("n", "n", ":Lexplore", opts) -- clear highlighting from the search keymap("n", "", ":nohlsearch", opts) -- toggle spell checking keymap("n", "s", ":setlocal spell! spelllang=en_us,nl", opts) -- date time stamp keymap("n", "dt", [[i=strftime("%a %d %Y %H:%M")]], opts) -- double space over word to find and replace keymap("n", "", [[:%s/\<=expand("")\>/]], opt) -- search and replace all -- write file if you forgot to give it sudo permission keymap("c", "w!!", [[w !sudo tee %]], opt) -- diff since last save keymap("n", "df", [[:w !diff % -]], opt)