-- Move to window using the movement keys vim.keymap.set("n", "", "h") vim.keymap.set("n", "", "j") vim.keymap.set("n", "", "k") vim.keymap.set("n", "", "l") -- Resize window using arrow keys vim.keymap.set("n", "", "resize +2") vim.keymap.set("n", "", "resize -2") vim.keymap.set("n", "", "vertical resize -2") vim.keymap.set("n", "", "vertical resize +2") -- Move Lines vim.keymap.set("n", "", ":m .+1==") vim.keymap.set("v", "", ":m '>+1gv=gv") vim.keymap.set("i", "", ":m .+1==gi") vim.keymap.set("n", "", ":m .-2==") vim.keymap.set("v", "", ":m '<-2gv=gv") vim.keymap.set("i", "", ":m .-2==gi") -- Switch buffers with vim.keymap.set("n", "", "bprevious") vim.keymap.set("n", "", "bnext") -- Easier pasting vim.keymap.set("n", "[p", ":pu!") vim.keymap.set("n", "]p", ":pu") -- Clear search with vim.keymap.set({ "i", "n" }, "", "noh") vim.keymap.set("n", "gw", "*N") vim.keymap.set("x", "gw", "*N") -- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n vim.keymap.set("n", "n", "'Nn'[v:searchforward]", { expr = true }) vim.keymap.set("x", "n", "'Nn'[v:searchforward]", { expr = true }) vim.keymap.set("o", "n", "'Nn'[v:searchforward]", { expr = true }) vim.keymap.set("n", "N", "'nN'[v:searchforward]", { expr = true }) vim.keymap.set("x", "N", "'nN'[v:searchforward]", { expr = true }) vim.keymap.set("o", "N", "'nN'[v:searchforward]", { expr = true }) -- Add undo break-points vim.keymap.set("i", ",", ",u") vim.keymap.set("i", ".", ".u") vim.keymap.set("i", ";", ";u") -- save in insert mode vim.keymap.set("i", "", ":w") vim.keymap.set("n", "", ":w") -- better indenting vim.keymap.set("v", "<", "", ">gv") -- makes * and # work on visual mode too. vim.cmd([[ function! g:VSetSearch(cmdtype) let temp = @s norm! gv"sy let @/ = '\V' . substitute(escape(@s, a:cmdtype.'\'), '\n', '\\n', 'g') let @s = temp endfunction xnoremap * :call g:VSetSearch('/')/=@/ xnoremap # :call g:VSetSearch('?')?=@/ ]])