" *********************************************************** " **************** fzf & ripgrep config ********************* " *********************************************************** " "This is the default extra key bindings let g:fzf_action = { \ 'ctrl-t': 'tab split', \ 'ctrl-x': 'split', \ 'ctrl-v': 'vsplit' } " Enable per-command history. " CTRL-N and CTRL-P will be automatically bound to next-history and " previous-history instead of down and up. If you don't like the " change, " explicitly bind the keys to down and up in your $FZF_DEFAULT_OPTS. let g:fzf_history_dir = '~/.local/share/fzf-history' let g:fzf_tags_command = 'ctags -R' " Border color let g:fzf_layout = {'up':'~90%', 'window': { 'width': 0.8, 'height':0.8,'yoffset':0.5,'xoffset': 0.5, 'highlight': 'Todo', 'border':'sharp' } } let $FZF_DEFAULT_OPTS = '--layout=reverse --info=inline' let $FZF_DEFAULT_COMMAND='rg --files --hidden' " Customize fzf colors to match your color scheme let g:fzf_colors = \ { 'fg': ['fg', 'Normal'], \ 'bg': ['bg', 'Normal'], \ 'hl': ['fg', 'Comment'], \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], \ 'hl+': ['fg', 'Statement'], \ 'info': ['fg', 'PreProc'], \ 'border': ['fg', 'Ignore'], \ 'prompt': ['fg', 'Conditional'], \ 'pointer': ['fg', 'Exception'], \ 'marker': ['fg', 'Keyword'], \ 'spinner': ['fg', 'Label'], \ 'header': ['fg', 'Comment'] } "Get Files command! -bang -nargs=? -complete=dir Files \ call fzf#vim#files(, fzf#vim#with_preview({'options':['--layout=reverse', '--info=inline']}),0) " Get text in files with Rg command! -bang -nargs=* Rg \ call fzf#vim#grep( \ 'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(),1, \ fzf#vim#with_preview(), 0) " Ripgrep advanced function! RipgrepFzf(query,fullscreen) let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true' let initial_command = printf(command_fmt,shellescape(a:query)) let reload_command = printf(command_fmt, '{q}') let spec = {'options':['--phony', '--query',a:query, '--bind','change:reload:'.reload_command]} call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(spec), a:fullscreen) endfunction command! -nargs=* -bang RG call RipgrepFzf(, 0) " Git grep command! -bang -nargs=* GGrep \ call fzf#vim#grep( \ 'git grep --line-number'.shellescape(),0, \ fzf#vim#with_preview({'dir' : systemlist('git rev-parse --show-toplevel')[0]}),0)