使用fzf增强zsh的自动补全
本文参考自:4 Useful fzf Tricks for Your Terminal | Pragmatic Pineapple 🍍
fzf是什么?fzf是一个按行搜索文本的工具,本质上和grep差不多。但它相比grep的优势在于:
- 交互式。你可以实时看到输入的字符串筛选出来的结果。
- 默认支持模糊匹配。不需要敲正则表达式,就可以做到类似VSCode里的自动补全效果

安装
新版Ubuntu可以直接从apt安装。老版的系统也可以从官网下载二进制文件然后放到PATH里。
1 |
|
zsh自带fzf插件,直接启用即可。以oh my zsh为例,把fzf加到.zshrc
的插件列表里:
1 |
|
Ctrl+R:fzf + 历史搜索命令
在bash/zsh里按Ctrl+R
会启动历史命令搜索。不过默认的搜索机制比较简陋,只匹配连续字符串。启用fzf插件后,zsh会调用fzf来搜索历史命令。这对于命令很长而我又只记得其中某几个单词的情况特别有用。

Ctrl+T:fzf + 补全路径名
按Ctrl+T
,fzf会搜索当前目录下的子文件。你可以输入字符筛选,方向键选择,然后Enter补全。

Alt+C:fzf + 改变工作路径
按Alt+C
,fzf会搜索当前目录下的所有子目录。你可以从中选择一个目录,然后zsh就会chdir
到这个目录里。命令行里已经输入的命令不会发生变化。

使用fzf增强zsh的自动补全
https://yalandhong.github.io/2022/11/03/shell/zsh-fzf/