-- better window movement vim.api.nvim_set_keymap("n", "", "h", { silent = true }) vim.api.nvim_set_keymap("n", "", "j", { silent = true }) vim.api.nvim_set_keymap("n", "", "k", { silent = true }) vim.api.nvim_set_keymap("n", "", "l", { silent = true }) -- Terminal window navigation vim.api.nvim_set_keymap("t", "", "h", {silent = true, noremap = true}) vim.api.nvim_set_keymap("t", "", "j", {silent = true, noremap = true}) vim.api.nvim_set_keymap("t", "", "k", {silent = true, noremap = true}) vim.api.nvim_set_keymap("t", "", "l", {silent = true, noremap = true}) vim.api.nvim_set_keymap("i", "", "h", {silent = true, noremap = true}) vim.api.nvim_set_keymap("i", "", "j", {silent = true, noremap = true}) vim.api.nvim_set_keymap("i", "", "k", {silent = true, noremap = true}) vim.api.nvim_set_keymap("i", "", "l", {silent = true, noremap = true}) vim.api.nvim_set_keymap("t", "", "", {silent = true, noremap = true}) -- TODO fix this -- resize with arrows if vim.fn.has("mac") == 1 then vim.api.nvim_set_keymap("n", "", ":resize -2", { silent = true }) vim.api.nvim_set_keymap("n", "", ":resize +2", { silent = true }) vim.api.nvim_set_keymap("n", "", ":vertical resize -2", { silent = true }) vim.api.nvim_set_keymap("n", "", ":vertical resize +2", { silent = true }) else vim.api.nvim_set_keymap("n", "", ":resize -2", { silent = true }) vim.api.nvim_set_keymap("n", "", ":resize +2", { silent = true }) vim.api.nvim_set_keymap("n", "", ":vertical resize -2", { silent = true }) vim.api.nvim_set_keymap("n", "", ":vertical resize +2", { silent = true }) end -- better indenting vim.api.nvim_set_keymap("v", "<", "", ">gv", { noremap = true, silent = true }) -- I hate escape vim.api.nvim_set_keymap("i", "jk", "", { noremap = true, silent = true }) vim.api.nvim_set_keymap("i", "kj", "", { noremap = true, silent = true }) vim.api.nvim_set_keymap("i", "jj", "", { noremap = true, silent = true }) -- Tab switch buffer vim.api.nvim_set_keymap("n", "", ":bnext", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "", ":bprevious", { noremap = true, silent = true }) -- Move selected line / block of text in visual mode vim.api.nvim_set_keymap("x", "K", ":move '<-2gv-gv", { noremap = true, silent = true }) vim.api.nvim_set_keymap("x", "J", ":move '>+1gv-gv", { noremap = true, silent = true }) -- Move current line / block with Alt-j/k ala vscode. vim.api.nvim_set_keymap("n", "", ":m .+1==", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "", ":m .-2==", { noremap = true, silent = true }) vim.api.nvim_set_keymap("i", "", ":m .+1==gi", { noremap = true, silent = true }) vim.api.nvim_set_keymap("i", "", ":m .-2==gi", { noremap = true, silent = true }) vim.api.nvim_set_keymap("x", "", ":m '>+1gv-gv", { noremap = true, silent = true }) vim.api.nvim_set_keymap("x", "", ":m '<-2gv-gv", { noremap = true, silent = true }) -- QuickFix vim.api.nvim_set_keymap("n", "]q", ":cnext", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "[q", ":cprev", { noremap = true, silent = true }) -- Better nav for omnicomplete vim.cmd 'inoremap ("\\")' vim.cmd 'inoremap ("\\")' vim.cmd 'vnoremap p "0p' vim.cmd 'vnoremap P "0P' -- Toggle the QuickFix window vim.api.nvim_set_keymap("", "", ":call QuickFixToggle()", { noremap = true, silent = true })