系统工具 FZF
一款用 Go 语言开发的速度快、灵活性高且易于集成的命令行模糊查找工具,它能让你在文件、命令历史、进程列表等各种列表数据中,通过交互式搜索快速定位目标内容。
fzf 是一款用 Go 语言开发的命令行模糊查找工具,它能让你在文件、命令历史、进程列表等各种列表数据中,通过交互式搜索快速定位目标内容。因其速度快、灵活性高且易于集成,被广泛应用于 Linux、macOS 和 Windows(通过 WSL)系统中。
-
模糊匹配算法
- 支持通过部分字符快速定位目标项,例如输入
fzf 可匹配 fuzzy-finder、my-favorite-zsh-plugin 等字符串。
- 支持多种匹配模式(如前缀匹配、后缀匹配、正则表达式),满足不同场景需求。
-
闪电般的速度
- 基于 Go 语言开发,处理海量数据(如百万级文件列表)时依然响应迅速,无需等待索引构建。
- 支持并行搜索,可充分利用多核 CPU 性能。
-
高度可定制
- 通过环境变量和配置文件自定义界面样式(如颜色、布局)、按键绑定和搜索逻辑。
- 支持自定义命令和脚本,可集成到任何命令行工具链中。
-
丰富的集成场景
- 与常用 shell(Bash、Zsh、Fish)深度集成,可用于快速切换目录、搜索命令历史、查找文件等。
- 支持 Vim、Tmux 等工具,扩展编辑器和终端的功能。
-
文件搜索
vim $(fzf)
find . -type f | fzf
-
命令历史检索
history | fzf | awk '{print $2}' | xargs eval
-
进程管理
ps -ef | fzf | awk '{print $2}' | xargs kill -9
-
Git 工作流
git branch | fzf | xargs git checkout
git log --oneline --graph --color | fzf
-
安装
- Linux/macOS:通过包管理器(如
apt、brew)或从源码安装。
- Windows:通过 WSL 或 Scoop 安装。
-
基础命令
-
常用快捷键
Ctrl-T:在当前目录递归搜索文件并选择。
Ctrl-R:在命令历史中反向搜索。
Alt-C:cd 到选中的目录。
Tab:多选(可批量操作)。
通过配置 .fzf.zsh 或 .fzf.bash 文件增强功能:
export FZF_DEFAULT_OPTS='
--height 80% # 高度占终端80%
--layout=reverse # 结果显示在上方
--border # 显示边框
--multi # 支持多选
--preview "bat --color=always {}" # 使用 bat 预览文件内容
'
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
- 插件与扩展:
- fzf-tab:为 Zsh 提供基于 fzf 的智能补全。
- fzf.vim:Vim 插件,集成文件搜索、缓冲区切换等功能。
- 替代工具:
- skim:Rust 实现的 fzf 替代品,性能更优。
- peco:Go 语言开发的类似工具,侧重于文本流过滤。
fzf 是提升命令行效率的利器,尤其适合需要频繁在大量数据中查找特定内容的场景。通过简单的配置和集成,它能显著减少键盘输入和记忆负担,让命令行操作更加流畅直观。如果你是开发者、运维人员或重度命令行用户,fzf 值得一试。
微软开源的一款实用小工具集,帮助用户提高工作效率。功能包括取色器(ColorPicker)、快速启动(搜索)、批量重命名(PowerRename)、批量图片处理器(Image Resizer)等功能。