set tabstop=3 set shiftwidth=3 set expandtab set mouse=a set number set lazyredraw set wildmenu set showmatch set hlsearch set incsearch set foldenable set foldlevelstart=10 set foldnestmax=10 set foldmethod=indent set autoindent " leader to comma let mapleader="," " move between tabs nmap L :tabn nmap H :tabp " move vertically in wrapped lines nnoremap j gj nnoremap k gk " (clear highlight in search) nnoremap :nohlsearch " fold/unfold nnoremap za " move to beginning/end of line. Remap old ones nnoremap B ^ nnoremap E $ nnoremap $ nnoremap ^ " edit vimrc and load vimrc bindings nnoremap ev :tabnew $MYVIMRC nnoremap sv :source $MYVIMRC " save session. Open next time with vim -S nnoremap s :mksession " jk is escape. Caseful if actually need to type jk. Type j and then let timer timeout inoremap jk " arrow between line changes set whichwrap+=<,>,h,l " formatting code if has ('python') map :pyf /usr/share/vim/addons/syntax/clang-format-12.py imap :pyf /usr/share/vim/addons/syntax/clang-format-12.py elseif has ('python3') map :py3f /usr/share/vim/addons/syntax/clang-format-12.py imap :py3f /usr/share/vim/addons/syntax/clang-format-12.py endif function! Formatonsave() let l:formatdiff = 1 if has ('python') pyf /usr/share/vim/addons/syntax/clang-format-12.py elseif has ('python3') py3f /usr/share/vim/addons/syntax/clang-format-12.py endif endfunction autocmd BufWritePre *.h,*.c,*.cpp call Formatonsave()