local Remap = require("halfdan.keymap") local nnoremap = Remap.nnoremap local vnoremap = Remap.vnoremap local inoremap = Remap.inoremap local xnoremap = Remap.xnoremap local nmap = Remap.nmap -- Yank until end of line nnoremap('Y', 'yg$') -- Next item, but center line nnoremap('n', 'nzzzv') nnoremap('N', 'Nzzzv') -- Join line but keep cursor intact nnoremap('J', 'mzJ`z') -- Move selected line / block of text in visual mode xnoremap('J', ':move \'>+1gv-gv') xnoremap('K', ':move \'<-2gv-gv') nnoremap('Q', '') -- better indenting vnoremap('<', '', '>gv') -- improved keyboard support for navigation (especially terminal) nnoremap('h', 'h') nnoremap('j', 'j') nnoremap('k', 'k') nnoremap('l', 'l') nnoremap('', 'h') nnoremap('', 'j') nnoremap('', 'k') nnoremap('', 'l') -- Change 2 split windows from vert to horiz or horiz to vert nnoremap('th', 'tH') nnoremap('tk', 'tK') -- Keybindings below this are neovim cli only if vim.g.vscode then return end -- resize with arrows nnoremap('', ':resize -2') nnoremap('', ':resize +2') nnoremap('', ':vertical resize -2') nnoremap('', ':vertical resize +2') -- Make adjusting split sizes a bit more friendly vim.cmd([[ noremap :vertical resize +3 noremap :vertical resize -3 noremap :resize +3 noremap :resize -3 ]]) -- Tab switch buffer nnoremap('', ':bnext') nnoremap('', ':bprevious') -- Quickfix list nnoremap('[q', ':cprev') nnoremap(']q', ':cnext') -- Tagbar nnoremap('hl', ':nohl') -- Vim Test nnoremap('tt', ':TestNearest') nnoremap('tT', ':TestFile') nnoremap('ta', ':TestSuite') nnoremap('tl', ':TestLast') nnoremap('tg', ':TestVisit') -- Vim Projectionist nnoremap('a', ':A') -- Reload init.lua nnoremap('sv', ':source $MYVIMRC') nnoremap('', ':Lspsaga diagnostic_jump_prev') nnoremap('', ':Lspsaga diagnostic_jump_next') -- Harpoon nnoremap("m", function() require("harpoon.mark").add_file() end) nnoremap("", function() require("harpoon.ui").toggle_quick_menu() end) nnoremap("", function() require("harpoon.ui").nav_file(1) end) nnoremap("", function() require("harpoon.ui").nav_file(2) end) nnoremap("", function() require("harpoon.ui").nav_file(3) end) nnoremap("", function() require("harpoon.ui").nav_file(4) end)