" Syntax " {{{ filetype plugin indent on syntax enable syntax sync maxlines=100 set synmaxcol=200 augroup customvimft autocmd! autocmd BufNewFile,BufRead *.vim* set filetype=vim augroup END augroup customvueft autocmd! autocmd BufNewFile,BufRead *.vue set filetype=vue augroup END " }}} " Options " {{{ set expandtab set shiftwidth=4 set tabstop=4 set foldlevel=99 set encoding=utf-8 set number set showmatch set matchtime=2 set hlsearch set incsearch set laststatus=2 set nojoinspaces set backspace= set cino=(0,u0,Ws,m1 " set splitbelow " }}} " Globals " {{{ let g:tex_fold_enabled = 1 let g:javaScript_fold = 1 let g:rust_recommended_style = 0 " }}} " Gui stuff " {{{ set guicursor=n-v-i-c:block-Cursor set guicursor+=n-v-i-c:blinkon0 set guioptions=a set langmenu=en_US.UTF-8 " }}} " Tagbar stuff " {{{ let g:tagbar_autofocus = 1 let g:tagbar_map_close = "qT" " }}} " Python-syntax stuff " {{{ let g:python_highlight_all = 1 let g:python_highlight_operators = 0 " }}} " Webdev stuff " {{{ let g:user_emmet_install_global = 0 let g:user_emmet_leader_key = '' augroup webdev autocmd! autocmd FileType html,jinja,css,vue EmmetInstall autocmd FileType html,jinja,vue setlocal omnifunc=htmlcomplete#CompleteTags sw=2 tabstop=2 autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS augroup END runtime macros/matchit.vim " }}} " LatexBox stuff " {{{ let g:LatexBox_no_mappings = 1 let g:LatexBox_quickfix = 2 let g:LatexBox_build_dir = 'build' let g:LatexBox_latexmk_options = '-outdir=build -shell-escape' " }}} " YouCompleteMe stuff " {{{ set completeopt-=preview let g:ycm_autoclose_preview_window_after_completion = 0 let g:ycm_key_detailed_diagnostics = '' let g:ycm_extra_conf_globlist = ['!*'] let g:ycm_filetype_blacklist = { \ 'tex': 1, \ 'plaintex': 1, \ 'markdown': 1, \ 'text': 1, \ 'rst': 1, \ 'html': 1, \ 'org': 1 \ } let g:ycm_clangd_args = ['--header-insertion=never'] if has('patch-8.0') " This is supposed to hide User defined completion ^U^X^P set shortmess+=c endif " }}} " Syntastic Stuff " {{{ let g:syntastic_mode_map = { \ 'mode': 'passive', \ 'active_filetypes': ['python', 'go'] \} let g:syntastic_python_checkers = ['python', 'pyflakes'] let g:syntastic_go_checkers = ['go'] " }}} " Doge Stuff " {{{ let g:doge_enable_mappings = 0 let g:doge_doc_standard_python = 'numpy' " }}} " Coding style " {{{ hi def link Unstylish ColorColumn hi def link TrailingWhite Unstylish " Related to Fugitive hi! link diffAdded Comment hi! link diffRemoved String augroup badstyle autocmd! autocmd BufWinEnter * call clearmatches() autocmd BufWinEnter * let w:m1 = matchadd('Unstylish', '\%80v.') autocmd BufWinEnter * if &ft != 'make' && &ft != 'gitcommit' \ && &ft != 'help' \ | let w:m2 = matchadd('Unstylish', '\t') | endif augroup END augroup trailingwhite autocmd! autocmd BufWinEnter,InsertLeave * if &ft != 'markdown' \ | match TrailingWhite '\v\s+$' | endif autocmd InsertEnter * match TrailingWhite '' augroup END augroup prose autocmd! autocmd FileType tex,text,plaintex,markdown,rst \ setlocal spell spelllang=en_us textwidth=79 augroup END augroup fuckingcomment autocmd! autocmd BufNewFile,BufRead * setlocal formatoptions-=cro augroup END " }}} " For Terminal " {{{ if has('terminal') augroup terminalsettings autocmd! autocmd TerminalWinOpen * setlocal nonu augroup END endif " }}} " Mappings " {{{ let mapleader = "," nnoremap , let maplocalleader = " " nnoremap inoremap O nnoremap q nnoremap Q nnoremap Y y$ nnoremap qn :nohl nnoremap ql :lclose nnoremap qq :cclose nnoremap qp :pclose nnoremap qh :helpclose nnoremap qN :NERDTreeClose nnoremap qT :TagbarClose nnoremap gb :bn nnoremap gB :bp let opener = ':term ++close ++hidden xo' let termexe = $TERMEXE nnoremap xod :execute opener '%:p:h' nnoremap xot :term cd %:p:h " nnoremap xow viw"ay:execute opener 'a'qaq " nnoremap xol ^vg_"ay:execute opener 'a'qaq " nnoremap xo" vi"ayy:execute opener 'a'qaq " vnoremap xo "ay:execute opener 'a'qaq nnoremap u mwviwu`w:delm w nnoremap U mwviwU`w:delm w if has('win32') let my_settings_file = "$HOME/vimfiles/plugin/settings.vim" else let my_settings_file = "$HOME/.vim/plugin/settings.vim" endif nnoremap c mc:CommenseComment`c:delm c nnoremap xc mc:CommenseUncomment`c:delm c vnoremap c :CommenseComment vnoremap xc :CommenseUncomment vnoremap b :CommenseBlock nnoremap xb mc:CommenseUnblock`c:delm c nnoremap sl :pedit $MYVIMRC nnoremap ss :execute 'pedit' my_settings_file nnoremap sv :source $MYVIMRC:execute 'source' my_settings_file nnoremap w tnoremap w nnoremap dd cc nnoremap se :syntax enable nnoremap so :syntax off nnoremap fl mf080lFr`f:delm f nnoremap fw :%s/\s\+$//ge:nohl nnoremap v vnoremap " `>a"` vnoremap "+y nnoremap "+p inoremap "+p vnoremap x"+P nnoremap t :term nnoremap sw /\<\> nnoremap rw :%s/\<\> vnoremap rw :s/\<\> nnoremap ln :lnext nnoremap lp :lprev " }}} " Mappings for Plugins " {{{ nnoremap N :NERDTree % nnoremap ] :YcmCompleter GoTo nnoremap yt :YcmCompleter GetType nnoremap ye :YcmShowDetailedDiagnostic nnoremap yh :YcmCompleter GetDoc nnoremap yf :YcmCompleter FixIt:ccl nnoremap yd :YcmDiags nnoremap sd :SyntasticSetLoclist:lopen nnoremap sc :w:SyntasticCheck nnoremap sr :SyntasticReset nnoremap T :TagbarToggle nnoremap g :Gstatus " }}} " Abbreviations " {{{ iabbrev rr return iabbrev itt import iabbrev miu ยต cabbrev w!! w !sudo tee > /dev/null % cabbrev ddf %:p:h cabbrev Pydoc term ++close python -m pydoc cabbrev bsp sbuffer cabbrev bvs vert sbuffer cabbrev tabb tab sbuffer " }}} " Commands " {{{ command! -nargs=* Pydebug tab term ++close pudb3 % " }}}