summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMaxime Brunet <32458727+maxbrunet@users.noreply.github.com>2018-09-04 16:25:45 -0400
committerMarc Cornellà <marc.cornella@live.com>2018-09-04 22:25:45 +0200
commit86542dcd8627d0e9a4b1acd8c01a9cdae4697698 (patch)
tree6107f7d2476a2118580b5b92f54cfac29e55fdc6 /plugins
parent69e637c35578305e19dbfc520e65c514180db6ef (diff)
downloadzsh-86542dcd8627d0e9a4b1acd8c01a9cdae4697698.tar.gz
zsh-86542dcd8627d0e9a4b1acd8c01a9cdae4697698.tar.bz2
zsh-86542dcd8627d0e9a4b1acd8c01a9cdae4697698.zip
Add fzf plugin (#6910)
Diffstat (limited to 'plugins')
-rw-r--r--plugins/fzf/README.md19
-rw-r--r--plugins/fzf/fzf.plugin.zsh50
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