" Functions {{ function! s:smart_source_rc(name) call s:source_rc(a:name . '.rc.vim') call s:source_rc(a:name . '.local.rc.vim') endfunction function! s:source_rc(path) let l:f_path = fnameescape(expand('~/.vim/rc/' . a:path)) if filereadable(l:f_path) execute 'source' . l:f_path endif endfunction " }} Functions " Navigation {{ Plug 'file-line' Plug 'tpope/vim-vinegar' Plug 'sandeepcr529/Buffet.vim', { 'on': 'Bufferlist' } " Buffet {{ nnoremap :Bufferlist " }} Buffet " }} Navigation " Git {{ Plug 'tpope/vim-fugitive', { 'on': ['Gblame', 'Gdiff', 'Gcommit', 'Gstatus', 'Gwrite'] } " vim-fugitive {{ nnoremap gb :Gblame nnoremap gc :Gcommit nnoremap gd :Gdiff nnoremap gs :Gstatus nnoremap gw :Gwrite " }} vim-fugitive Plug 'airblade/vim-gitgutter', { 'on': ['GitGutterSignsToggle'] } " vim-gitgutter {{ let g:gitgutter_enabled = 1 " Will toggle signs when I want them let g:gitgutter_signs = 0 " Already using Fugitive, don't need more mappings let g:gitgutter_map_keys = 0 " Make it more passive let g:gitgutter_eager = 0 let g:gitgutter_realtime = 0 " Quick leader command to toggle git-gutter nmap gg :GitGutterSignsToggle " }} vim-gitgutter " }} Git " Searching {{ Plug 'ctrlpvim/ctrlp.vim' call s:smart_source_rc('plugins/ctrlp') Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': 'yes \| ./install' } Plug 'junegunn/fzf.vim' let g:fzf_command_prefix = 'Fzf' Plug 'mhinz/vim-grepper' " vim-grepper {{ let g:grepper = { \ 'dispatch': 1, \ 'quickfix': 1, \ 'open': 1, \ 'switch': 0, \ 'jump': 0, \ 'tools': ['ag', 'ack', 'git', 'pt', 'grep'] \ } nmap gs (GrepperOperator) xmap gs (GrepperOperator) nmap * :Grepper -cword -noprompt command! Todo Grepper -noprompt -query TODO if executable('ag') set grepprg=ag\ --nogroup\ --nocolor endif if executable('ack') set grepprg=ack endif " }} vim-grepper " }} Fuzzy Find " Autocomplete {{ call s:smart_source_rc('plugins/omnicompletion') if (has('lua') && (v:version > 703 || v:version == 703 && has('patch885'))) Plug 'Shougo/neocomplete.vim' call s:smart_source_rc('plugins/neocomplete') elseif has('nvim') && has('python3') Plug 'Shougo/deoplete.nvim' Plug 'Shougo/neoinclude.vim' Plug 'Shougo/neco-syntax' Plug 'zchee/deoplete-jedi' Plug 'zchee/deoplete-go' call s:smart_source_rc('plugins/deoplete') " Remember :UpdateRemotePlugins else Plug 'Shougo/neocomplcache.vim' call s:smart_source_rc('plugins/neocomplcache') end " Programming {{ if has('nvim') Plug 'kassio/neoterm' endif Plug 'majutsushi/tagbar' " tagbar {{ nnoremap :TagbarToggle let g:tagbar_autofocus = 1 " Autofocus tagbar " }} tagbar if (v:version > 703) Plug 'ludovicchabant/vim-gutentags' " Auto generate tags files end Plug 'tpope/vim-surround' Plug 'tomtom/tcomment_vim' " , { 'on': ['TComment', 'TCommentBlock'] } " tcomment_vim {{ nnoremap // :TComment vnoremap // :TCommentBlock " }} tcomment_vim if !has('nvim') " Only use if not neovim, on neovim we have Neomake Plug 'scrooloose/syntastic' call s:smart_source_rc('plugins/syntastic') endif " }} " GUI {{ Plug 'mhinz/vim-startify' call s:smart_source_rc('plugins/startify') Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " Plug 'edkolev/tmuxline.vim' " Removed because this can fail on some machines " let g:tmuxline_powerline_separators = 0 call s:smart_source_rc('plugins/airline') " Highlight matching tags Plug 'gregsexton/MatchTag' " Integrate with Dash Plug 'rizzatti/dash.vim' " dash.vim {{ nmap d DashSearch let g:dash_map = { \ 'apex' : 'apex', \ 'visualforce' : 'vf', \ } " }} dash.vim " }} GUI " Filetypes {{ Plug 'ViViDboarder/vim-forcedotcom' Plug 'avakhov/vim-yaml' Plug 'dag/vim-fish' Plug 'dart-lang/dart-vim-plugin' Plug 'fatih/vim-go' " vim-go { let g:go_def_mapping_enabled = 0 " } Plug 'groovy.vim' Plug 'hsanson/vim-android' Plug 'udalov/kotlin-vim' Plug 'pangloss/vim-javascript' Plug 'pdurbin/vim-tsv' Plug 'tfnico/vim-gradle' Plug 'tmux-plugins/vim-tmux' " }} " Python {{ Plug 'alfredodeza/coveragepy.vim' Plug 'alfredodeza/pytest.vim' " pytest.vim {{ nmap ptp :Pytest project nmap ptf :Pytest file nmap ptm :Pytest method " }} pytest.vim Plug 'davidhalter/jedi-vim' " jedi-vim {{ let g:jedi#auto_vim_configuration = 0 let g:jedi#completions_enabled = 0 let g:jedi#smart_auto_mappings = 0 " }} jedi-vim Plug 'klen/python-mode' " python-mode {{ let g:pymode_breakpoint = 0 let g:pymode_lint = 0 let g:pymode_lint_checkers = ['flake8'] let g:pymode_lint_on_write = 0 let g:pymode_rope = 0 let g:pymode_rope_complete_on_dot = 0 let g:pymode_rope_completion = 0 " }} python-mode " }} " Themes {{ Plug 'altercation/vim-colors-solarized' Plug 'candy.vim' Plug 'eclipse.vim' Plug 'morhetz/gruvbox' Plug 'nanotech/jellybeans.vim' Plug 'nuvola.vim' Plug 'summerfruit256.vim' Plug 'therubymug/vim-pyte' Plug 'vividchalk.vim' Plug 'wombat256.vim' " }} " System {{ " neomake / vim-dispatch {{ if has('nvim') Plug 'benekastah/neomake' nnoremap :Neomake let g:neomake_python_enabled_makers = ['flake8'] command! TagsUpdate NeomakeSh ctags -R . else Plug 'tpope/vim-dispatch' nnoremap :Make command! TagsUpdate Dispatch ctags -R . endif " }} Plug 'Shougo/vimproc.vim', { 'do': 'make' } Plug 'tpope/vim-endwise' Plug 'tpope/vim-eunuch' Plug 'tpope/vim-repeat' " emacs bindinds in insert Plug 'tpope/vim-rsi' Plug 'milkypostman/vim-togglelist' " vim-togglelist {{ nnoremap :call ToggleQuickfixList() nnoremap :call ToggleLocationList() " }} vim-togglelist " }}