" Definition of leaders let mapleader = " " let maplocalleader = "\\" "" Plugins call plug#begin('~/.vim/plugged') Plug 'airblade/vim-gitgutter' Plug 'altercation/vim-colors-solarized' Plug 'beloglazov/vim-online-thesaurus' nnoremap K :OnlineThesaurusCurrentWord Plug 'christoomey/vim-tmux-navigator' Plug 'embear/vim-localvimrc' let g:localvimrc_ask = 0 let g:localvimrc_sandbox = 0 Plug 'gregsexton/gitv', { 'on' : 'Gitv' } Plug 'honza/vim-snippets' Plug 'jamessan/vim-gnupg' Plug 'junegunn/fzf.vim' Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } let g:fzf_buffers_jump = 1 if has("nvim") nnoremap :Buffers nnoremap :Files nnoremap :History nnoremap :GitFiles nnoremap :Colors nnoremap :History: else nnoremap b :Buffers nnoremap f :Files nnoremap r :History nnoremap g :GitFiles nnoremap c :Colors nnoremap h :History: endif imap (fzf-complete-line) imap (fzf-complete-file) Plug 'junegunn/seoul256.vim' Plug 'junegunn/vim-easy-align' xmap ga (EasyAlign) nmap ga (EasyAlign) Plug 'junegunn/vim-peekaboo' Plug 'junegunn/vim-pseudocl' Plug 'junegunn/vim-oblique' Plug 'justinmk/vim-sneak' Plug 'klen/python-mode' let g:pymode_rope=0 Plug 'ledger/vim-ledger' Plug 'lervag/vimtex' let g:vimtex_fold_enabled=0 let g:vimtex_view_method='zathura' let g:vimtex_latexmk_continuous=1 let g:vimtex_quickfix_mode=0 let g:vimtex_latexmk_build_dir='build' let g:vimtex_latexmk_progname='nvr' Plug 'majutsushi/tagbar' let g:tagbar_width = 30 let g:tagbar_show_linenumbers = 1 let g:tagbar_autofocus = 1 Plug 'mileszs/ack.vim', { 'on' : 'Ack' } Plug 'rdnetto/YCM-Generator', { 'branch' : 'stable' , 'on' : 'YcmGenerateConfig' } Plug 'scrooloose/nerdtree' Plug 'SirVer/ultisnips' let g:UltiSnipsEditSplit="horizontal" let g:UltiSnipsExpandTrigger="" let g:UltiSnipsJumpBackwardTrigger="" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsListSnippets="" let g:UltiSnipsSnippetDirectories=['UltiSnips', 'mySnippets'] let g:UltiSnipsSnippetsDir="~/.vim/mySnippets" let g:UltiSnipsUsePythonVersion=3 nnoremap es :UltiSnipsEdit Plug 'sjl/Gundo.vim', { 'on' : 'GundoToggle' } Plug 'terryma/vim-multiple-cursors' Plug 'tomasr/molokai' Plug 'tommcdo/vim-exchange' Plug 'ton/vim-bufsurf' nnoremap (( :BufSurfBack nnoremap )) :BufSurfForward Plug 'tpope/vim-commentary' Plug 'tpope/vim-dispatch' Plug 'tpope/vim-eunuch' Plug 'tpope/vim-flagship' let g:tabprefix = "" let g:tablabel = "%N%{flagship#tabmodified()} %{flagship#tabcwds('shorten',',')}" function! Mixed_indent() let l:spaces=search('\v(^ +)','n') let l:tabs=search('\v(^\t+)','n') return (l:spaces * l:tabs > 0) endfunction augroup myflags autocmd! autocmd BufEnter,BufWritePost * let b:trailing=search('\s\+$','n') autocmd BufEnter,BufWritePost * let b:mixed=Mixed_indent() autocmd User Flags call Hoist("window", "SyntasticStatuslineFlag") autocmd User Flags call Hoist("window", "%{b:trailing?'[tw]':''}") autocmd User Flags call Hoist("window", "%{b:mixed?'[mixed]':''}") autocmd User Flags call Hoist("window", "%{&paste?'[paste]':''}") augroup END Plug 'tpope/vim-fugitive' nnoremap gs :Gstatus nnoremap gr :Gread nnoremap gd :Gdiff nnoremap gv :Gitv Plug 'tpope/vim-obsession' Plug 'tpope/vim-repeat' Plug 'tpope/vim-sensible' Plug 'tpope/vim-surround' Plug 'tpope/vim-unimpaired' Plug 'tpope/vim-vinegar' Plug 'troydm/zoomwintab.vim' Plug 'vim-scripts/gmsh.vim' Plug 'holomorph/vim-freefem' Plug 'nanotech/jellybeans.vim' if has("nvim") Plug 'benekastah/neomake' let g:neomake_freefem_ff_maker = { \ 'exe': 'FreeFem++', \ 'args': '-ne', \ 'errorformat': ' Error line number %l\, in file %f\,%m', \ } nnoremap gm :Neomake! Plug 'Shougo/deoplete.nvim' let g:deoplete#enable_at_startup = 1 let g:deoplete#omni#input_patterns={} let g:deoplete#omni#input_patterns.ledger = ':\w*' let g:deoplete#omni#input_patterns.tex = ['cite.\w*', 'ref.\w*'] else Plug 'Valloric/YouCompleteMe', { 'do' : 'python2 install.py --clang-completer' } let g:ycm_key_list_select_completion = ['', ''] let g:ycm_key_list_previous_completion = ['', ''] let g:ycm_add_preview_to_completeopt = 0 let g:ycm_confirm_extra_conf = 0 let g:ycm_auto_trigger = 1 if !exists('g:ycm_semantic_triggers') let g:ycm_semantic_triggers = {} let g:ycm_semantic_triggers.tex = ['re!\\[A-Za-z]*(ref|cite)[A-Za-z]*([^]]*])?{([^}]*, ?)*' ] endif Plug 'scrooloose/syntastic' let g:syntastic_cpp_compiler = "g++" let g:syntastic_cpp_compiler_options = "-std=c++11 -Wall -Wextra -Wpedantic" let g:syntastic_error_symbol = "✗" let g:syntastic_warning_symbol = "W" endif call plug#end() let g:tex_conceal= 'adgm' let g:tex_flavor='latex' "" Vim options " Tabs and indent set smartindent set expandtab set tabstop=4 set softtabstop=4 set shiftwidth=4 " Folds set foldcolumn=0 set nofoldenable set foldmethod=expr set foldlevel=0 " Back up files set noswapfile set nowritebackup set undofile set undodir=$HOME/.vim/vimundo/ " Layout window set nonumber set diffopt=filler,vertical set listchars=tab:▸\ ,eol:¬,trail:- set fillchars=fold:\ ,vert:\ , set breakindent let &showbreak='--> ' set colorcolumn=0 set scrolloff=0 set t_Co=256 set guitablabel=%N\ %t\ %M set showcmd " Layout text set nowrap set linebreak set textwidth=0 set conceallevel=2 set guifont=Monaco\ 11 set nojoinspaces " Case and spell set nospell " set spellfile="$HOME/.vim/spell/en.utf-8.add" set smartcase set ignorecase " Misc set clipboard=unnamedplus set noautochdir set cpoptions+=Iq set encoding=utf-8 set mouse=a set lazyredraw set hidden " mutt au BufNewFile,Bufread /tmp/mutt-* setlocal tw=72 au BufNewFile,BufRead *.edp comp freefem au BufNewFile,BufRead *.geo setf gmsh " Colorscheme if $COLORSCHEME=="light" silent! colo solarized set background=light elseif $COLORSCHEME=="dark" silent! colo solarized set background=dark elseif $COLORSCHEME=="seoul" silent! colo seoul256 elseif $COLORSCHEME=="molokai" silent! colo molokai else silent! colo solarized set background=dark endif highlight Comment cterm=italic set t_ZH= set t_ZR= "" Maps " Toggles nnoremap cop :set paste! nnoremap cof :set foldenable! nnoremap cpg :GitGutterToggle nnoremap cpn :NERDTreeToggle nnoremap cpt :TagbarToggle nnoremap cpu :GundoToggle " File edits " Formatting nnoremap fw :%s/\s\+$// " Navigation nnoremap 3 nnoremap 3 nnoremap o " Misc nnoremap nnoremap Q :bd! nnoremap w :w nnoremap q :q! nnoremap h :e %:p:s,.hpp$,.X123X,:s,.cpp$,.hpp,:s,.X123X$,.cpp, nnoremap gm :Make nnoremap J mzJ`z nnoremap Y y$ nnoremap + za " Neovim specific if has("nvim") tnoremap :ZoomWinTabOut nnoremap :ZoomWinTabIn:b termi inoremap :b termi nnoremap :w nnoremap :q nnoremap :tabnew nmap h endif