-- 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 }) -- TODO fix this -- Terminal window navigation vim.cmd [[ tnoremap h tnoremap j tnoremap k tnoremap l inoremap h inoremap j inoremap k inoremap l tnoremap ]] -- 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 }) -- Telescope stuff -- vim.api.nvim_set_keymap("n", "fb", "lua require'telescope.builtin'.buffers{}", { noremap = true, silent = true }) -- search open buffers -- vim.api.nvim_set_keymap("n", "fl", "lua require'telescope.builtin'.current_buffer_fuzzy_find{}", { noremap = true, silent = true }) -- search lines in current buffer -- vim.api.nvim_set_keymap("n", "gg", "lua require'telescope.builtin'.live_grep{}", { noremap = true, silent = true }) -- search all lines in project -- vim.api.nvim_set_keymap("n", "fr", "lua require'telescope.builtin'.lsp_references{}", { noremap = true, silent = true }) -- search references to symbol under cursor