This ZSH plugin enables using fzf to search your command history and do file searches.
It will automagically install fzf into your home directory if it isn't already there, and bind ^R to an fzf-powered search of your command history.
Created for the zsh-quickstart-kit to make the default setup have a more 'batteries included' feel.
Yes, there is a plugin baked into oh-my-zsh, this allows easy fzf integration for other frameworks and shells, and adds some helper scripts.
Note - while these scripts could all be ZSH functions instead of scripts in the bin directory, it uses standalone scripts so that non-ZSH users can also use the repository by adding its bin directory to their $PATH.
Contents
Name
Description
Author
asdf-install
Install one or more versions of the specified language with fzf and installs your selection with asdf
A less pre-processor to nicely display a wide range of file formats, including images and directories that can be used to show fzf previews (see Customization section).
You should set this plugin to be last, or near to last in your framework's list of plugins to load. It dynamically generates $FZF_DEFAULT_OPT and $FZF_DEFAULT_COMMAND based on whether it sees things like rg and bat in your $PATH, so it should come after other plugins have had a chance to extend your $PATH.
Add antigen bundle unixorn/fzf-zsh-plugin@main to your .zshrc
☝Note that until zsh-users/antigen#717 gets fixed in Antigen, it only recognizes plugins in master branch. So you need to explicitly specify @main here.
Add fzf-zsh-plugin to your plugin list - edit ~.zshrc and change plugins=(...) to plugins=(... fzf-zsh-plugin)
Without using a framework
git clone [email protected]:unixorn/fzf-zsh-plugin.git, then add its bin directory to your $PATH.
Add source /path/to/repository/checkout/fzf-zsh-plugin.plugin.zsh to your .zshrc file.
The scripts in this collection don't actually require you to be using ZSH as your login shell, they're being distributed as an oh-my-zsh-compatible plugin because it's convenient for me.
(optional) Install recommended tools
Optionally, to make the most out of fzf preview (? toggle), install the following tools and enable the advanced preview (see Customization section):
exa - improved file/directory listing,
bat - a cat clone with syntax highlighting and Git integration,
chafa - show images (the image can look better or worse depending on the terminal app you use),
exiftool - also show image metadata,
lesspipe.sh, e.g. brew install lesspipe - and other optional tools lesspipe.sh relies on. See https://github.com/wofr06/lesspipe ☝Note: This is not the lesspipe already bundled in Ubuntu/Debian but an improved one (while package is called lesspipe, the binary is lesspipe.sh).
Customization
You can customize a few features by exporting the following environment variables in your init script (.zshrc/.bashrc or similar):
Export variable
Description
export FZF_PREVIEW_ADVANCED=true
Use less viewer with a pre-processor to display improved previews for a wide range of files (requires you to install at least exa, bat, chafa, exiftool; and very recommended lesspipe.sh and the tools it uses underneath: mdcat, in2csv,...). This is an opt-in feature.
export FZF_PREVIEW_WINDOW=''
Set any value supported by fzf --preview-window option, e.g. right:65%:nohidden will show the preview by default.
export FZF_PATH=''
Path to install fzf binary and script, e.g. ${HOME}/.config/fzf.
A note on lessfilter-fzf
You can also use it as a general less preprocessor to extend the less capabilities. To do that, place the following in your shell init scripts (.zshrc/.bashrc or equivalent):
export LESSOPEN='| lessfilter-fzf %s'
Ultimately, lesspipe.sh (if present) will still honor your own lessfilter if found in your PATH, leading to the following execution: lessfilter-fzf > lesspipe.sh > lessfilter.
Other FZF resources
Fuzzy Git Checkout - Mark Nielsen wrote a good blog post showing how to use fzf for git checkouts.
fzf-pass - ZSH plugin that uses fzf and pass for better password handling.
fzf-tab - Replace ZSH's default completion with fzf
请发表评论