Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': 'yes \| ./install' }
Plug 'junegunn/fzf.vim'
let g:fzf_command_prefix = 'FZF'
" Jump to existing window if possible
let g:fzf_buffers_jump = 1
" Override key commands
let g:fzf_action = {
      \ 'ctrl-t': 'tab split',
      \ 'ctrl-s': 'split',
      \ 'ctrl-v': 'vsplit' }
" Override git log to show authors
let g:fzf_commits_log_options = '--graph --color=always --format="%C(auto)%h %an: %s%d %C(black)%C(bold)%cr"'

" Override BTags to attempt to include gotags as well
command! -bang -nargs=* FZFBTags
  \  if &filetype == 'go'
  \|   call fzf#vim#buffer_tags(<q-args>, printf('gotags -silent -sort %s | sed /^!_TAG_/d', shellescape(expand('%'))), <bang>0)
  \| else
  \|   call fzf#vim#buffer_tags(<q-args>, <bang>0)
  \| endif

" If no CtrlP, use FZF bindings
if !exists('g:ctrlp_in_use')
    " Ctrl-T to launch standard file search
    nnoremap <C-t> :FZF<CR>
    " Leader Commands
    " Find buffers
    nnoremap <leader>b :FZFBuffers<CR>
    nnoremap <silent> <F2> :FZFBuffers<CR>
    " Find text in files
    if executable('rg')
        nnoremap <leader>f :FZFRg<CR>
    elseif executable('ag')
        nnoremap <leader>f :FZFAg<CR>
    endif
    " Find tags
    nnoremap <leader>r :FZFTags<CR>
    " Find buffer tags
    nnoremap <leader>t :FZFBTags<CR>
    " Find git history for buffer
    nnoremap <leader>g :FZFBCommits<CR>
endif