local set = vim.keymap.set -- Execute Lua in the current file, line or range. set("n", "x", "source %") set("n", "x", ":.lua") set("v", "x", ":lua") -- Yank from the current column to the end of the line set("n", "Y", "yg$") -- Keep things centred set("n", "n", "nzzzv") set("n", "N", "Nzzzv") -- Disable up and down arrow keys. set("v", "", "") set("v", "", "") -- Easily switch back to visual mode. set("i", "jk", "") -- Easy insertion of a trailing ; or , from insert mode set("i", ",,", "A,") set("i", ";;", "A;") -- Automatically resize buffers. set("n", "=", ":wincmd =", { noremap = true, silent = true }) -- Move line(s) up and down. local opts = { noremap = true, silent = true } set("i", "", ":m .+1==gi", opts) set("i", "", ":m .-2==gi", opts) set("n", "", ":m .+1==", opts) set("n", "", ":m .-2==", opts) set("v", "", ":m '>+1gv=gv", opts) set("v", "", ":m '<-2gv=gv", opts) -- Re-centre when navigating. set("n", "#", "#zz", opts) set("n", "%", "%zz", opts) set("n", "*", "*zz", opts) set("n", "", "zz", opts) set("n", "", "zz", opts) set("n", "", "zz", opts) set("n", "", "zz", opts) set("n", "G", "Gzz", opts) set("n", "N", "Nzz", opts) set("n", "gg", "ggzz", opts) set("n", "n", "Nzz", opts) set("n", "{", "{zz", opts) set("n", "}", "}zz", opts) -- Clears hlsearch after doing a search, otherwise just does normal stuff vim.cmd [[ nnoremap {-> v:hlsearch ? ":nohl\" : "\"}() ]] -- Quicker macro playback. set("n", "Q", "@qj") set("x", "Q", ":norm @q") set("v", "Q", "") set("v", "J", ":m '>+1gvrgv") set("v", "K", ":m '<-2gv=gv") set("n", "J", "mzJ`z") set("n", "", "zz") set("n", "", "zz") set("n", "n", "nzzzv") set("n", "N", "Nzzzv") set("n", "ec", ":edit composer.json") set({ "n", "v" }, "y", [["+y]]) set("n", "Y", [["+Y]])