diff options
author | Maxime Brunet <32458727+maxbrunet@users.noreply.github.com> | 2018-09-04 16:25:45 -0400 |
---|---|---|
committer | Marc Cornellà <marc.cornella@live.com> | 2018-09-04 22:25:45 +0200 |
commit | 86542dcd8627d0e9a4b1acd8c01a9cdae4697698 (patch) | |
tree | 6107f7d2476a2118580b5b92f54cfac29e55fdc6 | |
parent | 69e637c35578305e19dbfc520e65c514180db6ef (diff) | |
download | zsh-86542dcd8627d0e9a4b1acd8c01a9cdae4697698.tar.gz zsh-86542dcd8627d0e9a4b1acd8c01a9cdae4697698.tar.bz2 zsh-86542dcd8627d0e9a4b1acd8c01a9cdae4697698.zip |
Add fzf plugin (#6910)
-rw-r--r-- | plugins/fzf/README.md | 19 | ||||
-rw-r--r-- | plugins/fzf/fzf.plugin.zsh | 50 |
2 files changed, 69 insertions, 0 deletions
diff --git a/plugins/fzf/README.md b/plugins/fzf/README.md new file mode 100644 index 000000000..b3a434347 --- /dev/null +++ b/plugins/fzf/README.md @@ -0,0 +1,19 @@ +# fzf + +This plugin enables [junegunn's fzf](https://github.com/junegunn/fzf) fuzzy auto-completion and key bindings + +```zsh +# Set fzf installation directory path +export FZF_BASE=/path/to/fzf/install/dir + +# Uncomment the following line to disable fuzzy completion +# export 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 +) +``` diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh new file mode 100644 index 000000000..b28b97994 --- /dev/null +++ b/plugins/fzf/fzf.plugin.zsh @@ -0,0 +1,50 @@ +test -d "${FZF_BASE}" && fzf_base="${FZF_BASE}" + +if [[ -z "${fzf_base}" ]]; then + fzfdirs=( + "${HOME}/.fzf" + "/usr/local/opt/fzf" + "/usr/share/fzf" + ) + for dir in ${fzfdirs}; do + if [[ -d "${dir}" ]]; then + fzf_base="${dir}" + break + fi + done + + if [[ -z "${fzf_base}" ]]; then + if (( ${+commands[brew]} )) && dir="$(brew --prefix fzf 2>/dev/null)"; then + if [[ -d "${dir}" ]]; then + fzf_base="${dir}" + fi + fi + fi +fi + +if [[ -n "${fzf_base}" ]]; then + + # Setup fzf + # --------- + if [[ ! "$PATH" == *$fzf_base/bin* ]]; then + export PATH="$PATH:$fzf_base/bin" + fi + + # Auto-completion + # --------------- + if [[ ! "$DISABLE_FZF_AUTO_COMPLETION" == "true" ]]; then + [[ $- == *i* ]] && source "$fzf_base/shell/completion.zsh" 2> /dev/null + fi + + # Key bindings + # ------------ + if [[ ! "$DISABLE_FZF_KEY_BINDINGS" == "true" ]]; then + source "$fzf_base/shell/key-bindings.zsh" + fi + +else + print "[oh-my-zsh] fzf plugin: Cannot find fzf installation directory.\n"\ + "Please add \`export FZF_BASE=/path/to/fzf/install/dir\` to your .zshrc" >&2 +fi + +unset fzf_base |