fzf
fzf 是一个通用的命令行模糊查找器。
安装
配置
Shell
可选的 fzf 快捷键绑定 和补全功能适用于各种 shell
Ctrl+t
列出当前目录中的文件+文件夹(例如,输入git add
,按下Ctrl+t
,使用Tab
选择几个文件,最后按下Enter
)Ctrl+r
搜索 shell 命令历史记录Alt+c
模糊切换目录
Bash
/usr/share/fzf/key-bindings.bash
/usr/share/fzf/completion.bash
从 0.48 版本开始,可以使用单行命令完成此操作
eval "$(fzf --bash)"
原始语法仍然受支持,并且对于用户自定义版本的脚本很有用。
Zsh
Source 您 .zshrc 中的所需文件(如果也使用 vi-mode,则在 vi-mode 之后)
/usr/share/fzf/key-bindings.zsh
/usr/share/fzf/completion.zsh
从 0.48 版本开始,可以使用单行命令完成此操作
source <(fzf --zsh)
fish
对于 fish,快捷键绑定位于
/usr/share/fish/vendor_functions.d/fzf_key_bindings.fish
fish 将默认 source 此文件,但必须手动启用绑定
~/.config/fish/functions/fish_user_key_bindings.fish
function fish_user_key_bindings fzf_key_bindings end
fish 中的 fzf 补全可以通过自定义函数启用:https://github.com/junegunn/fzf/wiki/Examples-(fish)
Vim
基本的 Vim 插件已包含在软件包中,并安装到 Vim 的全局插件目录中。因此,您无需在 .vimrc
中添加任何内容即可使用它。但它只提供 FZF 命令。fzf 的作者还制作了一个额外的 Vim 插件,定义了一些便捷功能,请参阅 https://github.com/junegunn/fzf.vim。
Arch 特定的 fzf 用法
Pacman
尝试此命令以模糊搜索所有可用的软件包,在预览窗口中显示软件包信息,然后安装选定的软件包
$ pacman -Slq | fzf --multi --preview 'pacman -Si {1}' | xargs -ro sudo pacman -S
列出所有已安装的软件包,然后删除选定的软件包
$ pacman -Qq | fzf --multi --preview 'pacman -Qi {1}' | xargs -ro sudo pacman -Rns
如果您想在预览中添加软件包文件列表 – 预览窗口更新可能会稍慢(请确保在调用之前至少以 root 权限运行一次 pacman -Fy
以同步 pacman 文件数据库)
$ pacman -Slq | fzf --multi --preview 'cat <(pacman -Si {1}) <(pacman -Fl {1} | awk "{print \$2}")' | xargs -ro sudo pacman -S
paruzAUR 软件包还为 paruAUR 和 pacman 提供了 fzf 终端 UI。