+ nnoremap [unite] <Nop>
+ nmap <leader>u [unite]
+ nnoremap [unite]u :UniteResume<CR>
+ nnoremap <silent> [u :UnitePrevious<CR>
+ nnoremap <silent> ]u :UniteNext<CR>
+
+ " unite-grep {{{3
+ " seems not respected
+ let g:unite_source_grep_max_candidates = 2000
+ if executable('ag')
+ " Use ag in unite grep source.
+ let g:unite_source_grep_command = 'ag'
+ let g:unite_source_grep_default_opts = '--smart-case --vimgrep --ignore ''.hg'' --ignore ''.svn'' --ignore ''.git'' --ignore ''.bzr'''
+ let g:unite_source_grep_recursive_opt = ''
+ end
+ nnoremap <silent> [unite]a :<C-u>Unite grep:.::\12\17<CR>
+ nnoremap <silent> [unite]A :<C-u>Unite grep:.:-w:\12\17<CR>
+ command! -nargs=+ Ag Unite grep:.::<args>
+
+ " unite-file_rec {{{3
+ if executable('ag')
+ " Use ag in unite rec source
+ let g:unite_source_rec_async_command = ['ag', '--follow', '--nocolor', '--nogroup', '-g', '']
+ end
+ nnoremap <silent> [unite]f :<C-u>Unite -start-insert file_rec/async<CR>
+
+ " unite-buffer {{{3
+ call unite#custom#default_action('buffer', 'open')
+ nnoremap <silent> [unite]b :<C-u>Unite buffer:-<CR>
+
+ " unite-jumplist {{{3
+ nnoremap <silent> [unite]j :<C-u>Unite output:jumps:<CR>
+
+ " unite-menu {{{3
+ let g:unite_source_menu_menus = {}
+ let g:unite_source_menu_menus.fugitive = { 'description' : 'fugitive menu'}
+ let g:unite_source_menu_menus.fugitive.command_candidates = {
+ \ 'Gstatus <Leader>gs' : 'Gstatus',
+ \ 'Gcommit -v <Leader>gc' : 'Gcommit -v',
+ \ 'Glog' : 'Glog',
+ \}
+
+ nnoremap <silent> <leader>gg :<C-u>Unite menu:fugitive<CR>
+
+ let g:unite_source_history_yank_enable = 1
+ nnoremap <silent> [unite]p :<C-u>Unite history/yank<CR>
+ endfunction
+ augroup unit_setup
+ autocmd VimEnter * ++once call UniteSetup()
+ augroup END
+ "}}}2
+ Plug 'shougo/vimproc.vim', {'do': 'make'} " {{{2
+ "}}}2
+ Plug 'tomtom/tcomment_vim' " replaced by comment.nvim {{{2
+ let g:tcomment_textobject_inlinecomment = 'gic'
+ let g:tcomment#filetype#guess = 0
+ "let g:tcomment#options = {'whitespace' : 'no'}
+ "}}}2
+ " colorschemes
+ Plug 'morhetz/gruvbox' " {{{2
+ let g:gruvbox_contrast_dark = 'hard'
+ let g:gruvbox_contrast_light = 'soft'
+ " }}}2
+ " staging
+ Plug 'puremourning/vimspector' " replaced by lsp {{{2
+ let g:vimspector_enable_mappings = 'HUMAN'
+ " }}}
+ Plug 'vim-scripts/syntaxrange' " replaced by treesitter {{{2
+ " }}}
+endif
+
+Plug 'alepez/vim-gtest'
+Plug 'alx741/vinfo'
+Plug 'andrewradev/sideways.vim' " {{{2
+nnoremap <silent> ,h :SidewaysLeft<CR>:delmarks z<CR>
+nnoremap <silent> ,l :SidewaysRight<CR>:delmarks z<CR>
+"}}}
+Plug 'andrewradev/switch.vim'
+Plug 'chrisbra/checkattach'
+Plug 'derekwyatt/vim-fswitch'
+Plug 'elzr/vim-json'
+Plug 'firef0x/pkgbuild.vim'
+Plug 'junegunn/vim-easy-align'
+Plug 'kshenoy/vim-signature'
+" Plug 'majutsushi/tagbar' " TODO: delete? {{{2
+" map <F5> :TagbarToggle<cr>
+" let g:tagbar_sort = 0
+" let g:tagbar_compact = 1
+" let g:tagbar_autoshowtag = 1
+" let g:tagbar_width = 25
+" let g:tagbar_iconchars = ['+', '-']
+"}}}
+Plug 'octol/vim-cpp-enhanced-highlight'
+Plug 'sgeb/vim-diff-fold'
+Plug 'skywind3000/asyncrun.vim' " {{{2
+command! -bang -nargs=* -complete=file Make AsyncRun -save=2 -program=make @ <args>
+let g:asyncrun_open = 10
+"}}}
+Plug 'sjl/gundo.vim'
+" Plug 'thinca/vim-qfreplace' " TODO: delete?
+Plug 'tpope/vim-abolish'
+Plug 'tpope/vim-characterize'
+" Plug 'tpope/vim-endwise' " TODO: delete?
+Plug 'tpope/vim-eunuch'
+Plug 'tpope/vim-fugitive'
+Plug 'tpope/vim-repeat'
+Plug 'tpope/vim-scriptease'
+Plug 'tpope/vim-speeddating'
+Plug 'tpope/vim-unimpaired'
+Plug 'tweekmonster/spellrotate.vim'
+" Plug 'vim-scripts/mediawiki.vim' " TODO: delete?
+Plug 'vim-scripts/replacewithregister' " FIXME: is overridden by lsp
+Plug 'wincent/loupe'