fzf 是一个通用的命令行模糊查找器
它是一个交互式 Unix 命令行过滤器,可用于任何列表;文件、命令历史、进程、主机名、书签、git 提交等
开源地址
https://github.com/junegunn/fzf
安装
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
注意
如果用了zsh, 可能快捷键被覆盖了到,操作
vim .zshrc 文件最下面
加上,注意是最下面,防止快键键被覆盖了
# fzf https://github.com/junegunn/fzf/issues/1304
export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border' # 最新的历史记录排到最上,窗口大小等
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
验证
bindkey | grep fzf
出现下面,说明生效了
gitxuzan:~ $ bindkey | grep fzf
"^I" fzf-completion
"^R" fzf-history-widget
"^T" fzf-file-widget
"^[c" fzf-cd-widget
在终端 ctrl + r 然后就可以显示历史命令了
clrl + t
显示当前文件,包括子目录文件
通过 fzf --preview 'cat {}'
可以 动态的预览文本,再也不用一个个 cat 了
搜索语法
fzf默认会以“extened-search"模式启动, 这种模式下你可以输入多个以空格分隔的搜索关键词, 如^music .mp3$, sbtrkt !fire.
如果你不想用fuzzy match, 可以用fzf -e做精确匹配 符号"|"可以做or匹配, 比如
# 表示以core开头,以go或rb或py结尾的
^core go$|rb$|py$