" set x=y {{{ " au BufWinEnter * set relativenumber " set background=dark set encoding=utf-8 set background=light " set t_Co=256 filetype plugin on syntax on set tabstop=4 set tw=80 set linebreak " set colorcolumn=80 set shiftwidth=4 set autoindent set mouse=c set clipboard+=unnamedplus set foldmethod=marker set linespace=5 " cursor indicator {{{ " " set listchars=tab:\|\ " set list " set cursorcolumn " set cursorline " }}} cursor indicator " set timeoutlen=500 set hlsearch set noswapfile " }}} set x=y " " commands for file types {{{ " autocmd VimResized * wincmd = autocmd BufNewFile,BufRead .* set syntax=sh autocmd Filetype css,htmldjango,html,tex,txt,markdown set tabstop=2 shiftwidth=2 expandtab autocmd BufRead commit-msg.txt set filetype=gitcommit tw=72 autocmd BufNewFile,BufRead *.md set filetype=markdown autocmd Filetype markdown set textwidth=0 autocmd BufWritePost key_*.txt !sync-shortcuts autocmd VimLeave *.tex !tex-clean % " " auto-reload vimrc {{{ " " augroup myvimrc " au! " au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif " augroup END " " }}} auto-reload vimrc " " }}} commands for file types " " vim-plug {{{ " " plug auto-install if empty(glob('~/.vim/autoload/plug.vim')) silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif call plug#begin('~/.vim/plugged') " prequisite for other plugins Plug 'vim-scripts/L9' " find files from within Vim " Plug 'vim-scripts/FuzzyFinder' " Gotham color scheme " Plug 'whatyouhide/vim-gotham' " collection of Vim color schemes Plug 'flazz/vim-colorschemes' " preview Vim color scheme easily within Vim Plug 'xolox/vim-colorscheme-switcher' " prerequisite for above plugin Plug 'xolox/vim-misc' " automatically save buffers upon returning to normal mode Plug '907th/vim-auto-save' let g:auto_save = 1 " provides various functionality for writing LaTeX in Vim Plug 'lervag/vimtex' au BufWritePost *.tex silent call Tex_RunLaTeX() au BufWritePost *.tex silent !pkill -USR1 xdvi.bin let g:vimtex_view_general_viewer = 'zathura' let g:vimtex_quickfix_latexlog = { \ 'overfull' : 0, \ 'underfull' : 0, \ 'global' : 0, \ 'unused' : 0, \} " auto-completion for various languages Plug 'Valloric/YouCompleteMe' " wrote short bits of text that expand into whatever you want " demo: https://www.youtube.com/watch?v=Zik6u0klD40 Plug 'SirVer/ultisnips' " better key bindings for UltiSnipsExpandTrigger let g:UltiSnipsExpandTrigger = "" let g:UltiSnipsJumpForwardTrigger = "" let g:UltiSnipsJumpBackwardTrigger = "" " custom snippets Plug 'Kevin-Mok/vim-snippets' " to make YouCompleteMe work with UltiSnips (both use Tab) Plug 'ervandew/supertab' " make YCM compatible with UltiSnips (using supertab) let g:ycm_key_list_select_completion = ['', ''] let g:ycm_key_list_previous_completion = ['', ''] let g:SuperTabDefaultCompletionType = '' " easily comment/uncomment lines Plug 'scrooloose/nerdcommenter' let g:NERDTrimTrailingWhitespace = 1 let g:NERDSpaceDelims = 1 " add quotes/brackets around chunks of text easily Plug 'tpope/vim-surround' " navigate around file easily and precisely Plug 'easymotion/vim-easymotion' " status bar displaying various info about the current buffer Plug 'vim-airline/vim-airline' let g:airline_section_c = '%F' Plug 'vim-airline/vim-airline-themes' let g:airline_powerline_fonts = 1 " continue Markdown lists when started Plug 'dkarter/bullets.vim' " coordinate Vim color scheme with terminal color scheme Plug 'dylanaraps/wal.vim' " repeat plugin commands Plug 'tpope/vim-repeat' " better Django support Plug 'tweekmonster/django-plus.vim' " auto-close brackets Plug 'jiangmiao/auto-pairs' let g:AutoPairsMapSpace = 0 Plug 'henrik/vim-indexed-search' Plug 'PotatoesMaster/i3-vim-syntax' call plug#end() " colorscheme gotham256 colorscheme wal " }}} vim-plug " " Mappings {{{ " " function keys {{{ " " map :wa map :wqa map :qa! map :make -C ~/Documents/resume cv map :AutoSaveToggle " map :LLPStartPreview map :VimtexCompile:VimtexView " map :VimtexCompile nnoremap :set paste"+p:set nopaste " }}} function keys " map O " swap text visually vnoremap `.``gvP``P " splits {{{ " nnoremap nnoremap nnoremap nnoremap " Maximize height/width. nnoremap _ nnoremap | " }}} splits " " leader mappings {{{ " let mapleader="\" " replace vim-commentary Markdown comments with HTML nnoremap cmt :%s/>\(.*\)>//g " delete entire buffer nnoremap dg ggdG " delete line into system clipboard nnoremap D "+dd " delete entire buffer into system clipboard nnoremap DA "+ggdG " reload file nnoremap e :e " find merge conflicts nnoremap fc /[<>=\|]\{7\} " reload folds nnoremap ff :set foldmethod=marker zM " toggle search highlighting nnoremap h :set hlsearch! hlsearch? " help nnoremap he :help nnoremap ht :set tabstop=2 shiftwidth=2 expandtab nnoremap vhe :vert help " move cursor to middle of line nnoremap m :call cursor(0, len(getline('.'))/2) " apply normal command to selection vnoremap n q:anorm " don't wrap lines nnoremap nw :set nowrap " check if in neovim nnoremap nv :echo has('nvim') " Plug commands nnoremap pli :PlugInstall nnoremap plc :PlugClean nnoremap plu :PlugUpdate " don't break lines nnoremap py :set tw=0 " replace in next x lines nnoremap r q:i.,.+s///gFsi " replace in line nnoremap rl q:i.s///g " replace in visual selection vnoremap r q:is///g3ha " reload vim config nnoremap rv :source $MYVIMRC " replace in entire file nnoremap R q:i%s///g2F/i " sort lines nnoremap so q:i.,.+sortFsi " set syntax to shell (for dotfiles) nnoremap sh :set syn=sh " format current line nnoremap w Vgq " format this and next line nnoremap ww Vjgq " format current 3 lines nnoremap www V2jgq " toggle fold nnoremap z za " copy next thing to system clipboard nnoremap y "+ nnoremap Y "+Y " yank entire buffer nnoremap yg ggyG " }}} leader mappings " " }}} Mappings " " (tex) Local Mappings {{{ " let maplocalleader="-" autocmd Filetype c inoremap s struct pixel autocmd Filetype tex inoremap bt \bowtie autocmd Filetype tex inoremap c \checkmark autocmd Filetype tex inoremap d \delta autocmd Filetype tex inoremap D \Delta autocmd Filetype tex inoremap e \exists autocmd Filetype tex inoremap ep \epsilon autocmd Filetype tex inoremap fa \forall autocmd Filetype tex inoremap g \geq autocmd Filetype tex inoremap i \in autocmd Filetype tex inoremap l \leq autocmd Filetype tex inoremap lr \Leftrightarrow " autocmd Filetype tex inoremap n \neg autocmd Filetype tex inoremap n \neq autocmd Filetype tex inoremap N \mathbb{N} autocmd Filetype tex inoremap q \qquad autocmd Filetype tex inoremap r \rightarrow autocmd Filetype tex inoremap R \Rightarrow autocmd Filetype tex inoremap s \subset autocmd Filetype tex inoremap st such that autocmd Filetype tex inoremap S \Sigma autocmd Filetype tex inoremap t \times " autocmd Filetype tex inoremap T $T$ autocmd Filetype tex inoremap T \Theta " replace bars/underscores in URL autocmd Filetype tex inoremap url :.s/\([-_]\)/\\\1/g autocmd Filetype tex inoremap v \vee autocmd Filetype tex inoremap w \wedge autocmd Filetype tex inoremap x $x$-axis autocmd Filetype tex inoremap y $y$-axis autocmd Filetype tex inoremap Z \mathbb{Z} " par3 autocmd Filetype tex inoremap wx $w(x)$ autocmd Filetype tex inoremap tx $t(x)$ autocmd Filetype md inoremap x 0f[lRX " }}} Local Mappings "