From 708ea42384d378343a590fc34a3dee536a1651df Mon Sep 17 00:00:00 2001 From: Alessandro Martini Date: Fri, 4 Sep 2020 17:13:45 -0300 Subject: [PATCH] fzf: setup FZF_DEFAULT_COMMAND based on installed tools (#8895) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- plugins/fzf/README.md | 30 ++++++++++++++++++++++-------- plugins/fzf/fzf.plugin.zsh | 10 ++++++++++ 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/plugins/fzf/README.md b/plugins/fzf/README.md index b3a434347..d9617563a 100644 --- a/plugins/fzf/README.md +++ b/plugins/fzf/README.md @@ -2,18 +2,32 @@ This plugin enables [junegunn's fzf](https://github.com/junegunn/fzf) fuzzy auto-completion and key bindings +To use it, add `fzf` to the plugins array in your zshrc file: +```zsh +plugins=(... fzf) +``` + +## Settings + +Add these before the `plugins=()` line in your zshrc file: + ```zsh # Set fzf installation directory path -export FZF_BASE=/path/to/fzf/install/dir +# export FZF_BASE=/path/to/fzf/install/dir + +# Uncomment to set the FZF_DEFAULT_COMMAND +# export FZF_DEFAULT_COMMAND='' # Uncomment the following line to disable fuzzy completion -# export DISABLE_FZF_AUTO_COMPLETION="true" +# DISABLE_FZF_AUTO_COMPLETION="true" # Uncomment the following line to disable key bindings (CTRL-T, CTRL-R, ALT-C) -# export DISABLE_FZF_KEY_BINDINGS="true" - -plugins=( - ... - fzf -) +# DISABLE_FZF_KEY_BINDINGS="true" ``` + +| Setting | Example value | Description | +|-----------------------------|----------------------------|-------------------------------------------------------------| +| FZF_BASE | `/path/to/fzf/install/dir` | Set fzf installation directory path (**export**) | +| FZF_DEFAULT_COMMAND | `fd --type f` | Set default command to use when input is tty (**export**) | +| DISABLE_FZF_AUTO_COMPLETION | `true` | Set whether to load fzf auto-completion | +| DISABLE_FZF_KEY_BINDINGS | `true` | Set whether to disable key bindings (CTRL-T, CTRL-R, ALT-C) | diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh index 53bdcbc97..0b831b7f7 100644 --- a/plugins/fzf/fzf.plugin.zsh +++ b/plugins/fzf/fzf.plugin.zsh @@ -98,3 +98,13 @@ function indicate_error() { setup_using_debian_package || setup_using_base_dir || indicate_error unset -f setup_using_debian_package setup_using_base_dir indicate_error + +if [[ -z "$FZF_DEFAULT_COMMAND" ]]; then + if (( $+commands[rg] )); then + export FZF_DEFAULT_COMMAND='rg --files --hidden' + elif (( $+commands[fd] )); then + export FZF_DEFAULT_COMMAND='fd --type f --hidden --exclude .git' + elif (( $+commands[ag] )); then + export FZF_DEFAULT_COMMAND='ag -l --hidden -g ""' + fi +fi