" Keep cursor centered as much as possible nnoremap j jzz nnoremap k kzz nnoremap gg ggzz nnoremap G Gzz " Navigate between ctags " Jump to definition nnoremap gd " Go back up stack nnoremap gb " Remap split navigation keybindings nnoremap h :wincmd h nnoremap j :wincmd j nnoremap k :wincmd k nnoremap l :wincmd l " Write using +w nnoremap w :w " Quit using +q nnoremap q :q " Use arrow keys for split resizing in normal mode nnoremap :resize +3 nnoremap :resize -3 nnoremap :vertical resize +3 nnoremap :vertical resize -3 " Disable arrow keys in editing & visual mode inoremap inoremap inoremap inoremap vnoremap vnoremap vnoremap vnoremap " Tabs bindings " Create tab nnoremap o :tabnew " Close current tab nnoremap p :tabclose " Go to next tab nnoremap i :tabnext " Go to previous tab nnoremap u :tabprevious " Make commands nnoremap mr :make! run nnoremap mt :make! test " Built-in Terminal " Remap in terminal tnoremap " Open terminal in horizontal split nnoremap :split:terminal " Keybinding for switching between light/dark colorschemes function! ColorschemeToggle() if g:colors_name == 'flattened_dark' colorscheme flattened_light else colorscheme flattened_dark endif endfunction nnoremap c :call ColorschemeToggle() " Quick config editing " Re-source vimrc/init.vim nnoremap vs :source $MYVIMRC " Open CtrlP in config directory nnoremap ve :split:exec 'CtrlP ' . fnamemodify($MYVIMRC, ':h') " Overwrite Esc (experiment) inoremap jk inoremap