export FZF_DEFAULT_COMMAND=ag export FZF_COMPLETION_TRIGGER='**' # Options to fzf command export FZF_COMPLETION_OPTS='--border --info=inline' # Use fd (https://github.com/sharkdp/fd) instead of the default find # command for listing path candidates. # - The first argument to the function ($1) is the base path to start traversal # - See the source code (completion.{bash,zsh}) for the details. _fzf_compgen_path() { fdfind --hidden --follow --exclude ".git" . "$1" } # Use fd to generate the list for directory completion _fzf_compgen_dir() { fdfind --type d --hidden --follow --exclude ".git" . "$1" } # Advanced customization of fzf options via _fzf_comprun function # - The first argument to the function is the name of the command. # - You should make sure to pass the rest of the arguments to fzf. _fzf_comprun() { local command=$1 shift case "$command" in cd) fzf --preview 'tree -C {} | head -200' "$@" ;; export|unset) fzf --preview "eval 'echo \$'{}" "$@" ;; ssh) fzf --preview 'dig {}' "$@" ;; *) fzf --preview 'batcat -n --color=always {}' "$@" ;; esac } # Setup fzf # --------- if [[ ! "$PATH" == *~/repos/fzf/bin* ]]; then PATH="${PATH:+${PATH}:}~/repos/fzf/bin" fi # Auto-completion # --------------- [[ $- == *i* ]] && source "~/repos/fzf/shell/completion.bash" 2> /dev/null # Key bindings # ------------ source "~/repos/fzf/shell/key-bindings.bash"