除了CLI工具,AI编程工具也在飞速进化——我做了个 2026年AI编程工具深度横向评测,把Copilot、Cursor、Windsurf对比了一遍,看看哪些真正值得上。
前言:从一次”等 grep 跑完”的中午说起
上周五中午,我对着终端等一个 grep -r "ERROR" /var/log/app/ 跑完,顺手刷了会儿手机。3分钟后它出结果了——19条匹配,信息有用,但等了整整三分钟。
隔壁同事瞟了一眼:”你还在用 grep?换 ripgrep 啊,你那27GB日志它十几秒就扫完。”
我当时没当回事。直到下午排查线上问题又等了一次 grep 跑完,心态彻底崩了——决定把整个终端工具链翻新一遍。结果你猜怎么着?换了 rg 之后,同样的搜索 2.1 秒出结果。
13.6 倍的速度差距。我确认了好几遍不是幻觉。
这周把几个最值得换的工具整理出来,每个我都用了至少一周。它们不是那种”收藏即吃灰”的玩具——安装上去当天就能感受到明显变化。
1. ripgrep (rg) — 让你不再”等 grep 跑完”
一句话: grep 的现代替代品,默认递归、默认忽略 .gitignore、默认输出带颜色、默认快 10-100 倍。
为什么这么快?
ripgrep 用 Rust 写的,底层用了 SIMD 指令加速文本搜索。它还会自动跳过 .gitignore 里的文件和二进制文件——这很重要,因为多数项目里真正需要搜的”文本文件”只占一小部分。
日常用法对比
# 以前你用 grep:
grep -r "function" --include="*.py" src/
# 现在用 rg,一行搞定:
rg "function" src/ --type py
# 搜日志文件名匹配:
rg "5xx" /var/log/ --glob "*.log"
# 输出匹配行数(取代 grep -c):
rg -c "TODO" src/
# 在输出中显示上下文(取代 grep -C):
rg -C 3 "panic" main.go
我的真实体验
换了 rg 后的第一个周一,我习惯性地敲了 grep,然后默默按了上箭头改成 rg。一周后已经完全想不起 grep 的语法了——rg 的默认行为(递归、自动忽略无关文件)太符合直觉,根本不需要记参数。
唯一小坑:如果你习惯用 grep -r "pattern" . 不加 --include,rg 默认会搜更多文件(因为它不限制文件类型),但速度反而更快。第一次用的时候先跑 rg "test" 试试——10GB 项目可能只需要 2-3 秒,别被吓到以为没跑完。
2. fd — 比 find 快 50 倍的查找命令
一句话: 如果你还在用 find . -name "*.py" 找文件,你每个月大概在无谓等待上浪费了 10 分钟。
对比
# 找 Python 文件:
find . -name "*.py" -type f # 传统,4.8s 搜索 5万文件
fd -e py # fd,0.3s 搜索 5万文件
# 正则搜索(fd 默认支持正则):
find . -regex ".*test.*\.py$"
fd ".*test.*\.py$" # 更简洁
# 搜索时忽略某目录:
find . -name "*.log" -not -path "./node_modules/*"
fd -e log -E node_modules # 简洁多了
# 找到文件后执行命令(xargs 替代):
find . -name "*.py" -exec wc -l {} \;
fd -e py -x wc -l
实用技巧
我用 fd 最频繁的场景不是搜索,而是配合 fzf 做模糊文件打开:
# 在 vim 中::e $(fd -tf | fzf)
# 配合 neovim 的 Telescope 插件
# 或者直接用终端:vim $(fd "config" | fzf)
3. bat — cat 的”着色版”,看完就回不去了
一句话: cat 的增强替代,自动语法高亮 + 显示行号 + Git 修改标记。
# 查看脚本(自动高亮 + 行号):
bat deploy.sh
# 查看 JSON(自动识别格式,再也不用 cat 后靠眼睛找括号):
bat config.json
# 显示不可打印字符(比 cat -A 好看 100 倍):
bat -A binary_file
# 作为 less 的分页器:
bat --paging=always large_file.py
我最喜欢 bat 的一个细节:它会在左边栏显示 Git 修改状态(新增/修改/删除行)。代码 review 的时候 bat app.py 一眼就能看到哪些行是新改的——比你先 git diff 再看文件快得多。
安装后记得设别名:alias cat='bat' 或者 alias c='bat'。我用了两周后已经肌肉记忆全是 bat 了。
4. lazygit — 命令行里的 Git GUI
一句话: 如果你还在用 git add -p + git commit + git push 三步走,试试懒人模式吧。
用 lazygit 之前:
# 每次提交要敲 3-5 个命令
git status
git add -p src/main.go # 还要手动选 hunk
git commit -m "fix: ..."
git push
用 lazygit 之后:
# 打开一个 TUI 界面,键盘操作
lazygit
# 然后按:
# 空格 → 暂存选中文件
# c → 提交
# P → 推送
# 全程不用敲一个 git 命令
lazygit 最牛的功能
- 交互式 rebase: 在commit列表里用 j/k 移动,回车选 commit —— 这个功能我在终端里从来没记住过
git rebase -i的语法 - 冲突解决: 可视化显示冲突文件的两边版本,按左右键选择保留哪边
- stash 管理: 比
git stash list直观得多 - 分支切换: 列表显示所有分支,/ 键搜索
别觉得”学个新工具很麻烦”。lazygit 的核心操作就 5 个键:空格/stage、c/提交、P/推送、p/拉取、q/退出。上手 5 分钟,终身收益。
5. fzf — 通用模糊搜索神器
一句话: 它不是一个”工具”,而是一个”接口”——把任何列表都变成可模糊搜索的交互界面。
实用场景
# Ctrl+R 历史命令搜索增强版(按 Ctrl+R 后直接模糊匹配):
# 原来 bash 的 Ctrl+R 要按多次循环找,fzf 直接过滤
# 切换 Git 分支:
git branch | fzf | xargs git checkout
# 搜索并打开文件(配合 fd 极速):
vim $(fd -tf | fzf)
# 杀掉进程:
kill -9 $(ps aux | fzf | awk '{print $2}')
# 搜索 Docker 容器日志:
docker logs $(docker ps | fzf | awk '{print $1}')
我的翻车经历
刚装上 fzf 那周,我几乎把所有命令都加了 fzf 管道。最离谱的一次:用 ls | fzf 来选文件——同事路过看到了,沉默了五秒说”你是不是有点过度依赖了?”
但讲真,Ctrl+R 增强版和 git branch | fzf 这两个场景,每一个都值回安装成本。
6. zoxide — 告别 cd 的”反复 cd ..”噩梦
一句话: cd 的智能版,学一次路径后下次直接 z 关键词 跳过去。
对比
# 以前去项目目录:
cd ~/projects/work/backend/services/user-auth
# 用 zoxide 后(只要去过一次):
z user-auth
# 或者模糊匹配
z back user
# 列出最常访问的目录:
zi
# 显示一个列表,选哪个跳哪个
# 交互模式(配合 fzf):
zi
zoxide 的原理是记录你 cd 到每个目录的频率和时效性,然后用 frecency(频率+时效性)算法排序。它比 autojump 和 fasd 都准确——至少我用下来几乎没有跳到”我明明想去另一个同名目录”的情况。
唯一的坑:刚开始用的时候你不能依赖它——它需要积累大概 20-30 次 cd 记录才能准确。装好后正常用 cd 一周,之后就回不去了。
7. tmux — 终端多路复用器
一句话: 在一个终端窗口里开多个”虚拟终端”,每个 session 独立,SSH 断开不丢失。
为什么要用 tmux
以前我本地开 5 个终端窗口:一个跑 dev server、一个看日志、一个写代码、一个 git 操作、一个随手跑命令。窗口多了 Alt+Tab 按到手疼。
tmux 让我把 5 个窗口合成 1 个:
# 创建新 session
tmux new -s dev
# 在 tmux 内:
# Ctrl+B % → 左右分屏
# Ctrl+B " → 上下分屏
# Ctrl+B c → 新建标签页
# Ctrl+B d → 断开(程序继续跑)
# 重新连接:
tmux attach -t dev
SSH 必备
在服务器上开 tmux,SSH 断开了程序还在跑,重连后 tmux attach 就回到原来的界面。这招救过我至少三次——有次部署到一半 WiFi 断了,重连后 tmux 里的 build 还在跑,心都放下了。
强烈建议把 tmux 的 prefix 键从 Ctrl+B 改成 Ctrl+A(很多人觉得这样更顺手):
# ~/.tmux.conf
set -g prefix C-a
unbind C-b
bind C-a send-prefix
8. httpie — 人类可读的 curl 替代
一句话: 如果你经常调试 API,httpie 的彩色输出 + 简洁语法会让你爱上发 HTTP 请求。
# curl 版:
curl -X POST https://api.example.com/users \
-H "Authorization: Bearer xxx" \
-H "Content-Type: application/json" \
-d '{"name":"John","email":"john@example.com"}'
# httpie 版:
http POST https://api.example.com/users \
Authorization:"Bearer xxx" \
name=John email=john@example.com
httpie 默认格式化 JSON 响应并着色,支持 session 管理(同一个 session 自动带 cookie)——调试需要登录的 API 时,不用每次手动带 cookie。
如果不想装新的客户端,也可以用 curlie(也是 Rust 写的),语法兼容 curl 但输出像 httpie。
总结:一张表看全
| 工具 | 替代对象 | 一句话推荐理由 | 安装方式 |
|---|---|---|---|
| ripgrep (rg) | grep | 快 10-100 倍,默认递归,自动忽略无关文件 | apt install ripgrep |
| fd | find | 快 10-50 倍,语法更简洁,配合 fzf 绝配 | apt install fd-find |
| bat | cat | 自动语法高亮 + Git 标记,看文件像看 IDE | apt install bat |
| lazygit | git CLI | TUI 界面操作 git,交互式 rebase 终于能用了 | 官方脚本安装 |
| fzf | Ctrl+R | 通用模糊搜索框架,万物皆可 fzf | apt install fzf |
| zoxide | cd | 智能跳转目录,打字少 80% | apt install zoxide |
| tmux | 多窗口 | 终端编辑器 + 分屏 + 会话持久化 | apt install tmux |
| httpie | curl | 人类友好的 HTTP 客户端,API 调试利器 | apt install httpie |
换工具这件事,最难的不是安装,而是改掉肌肉记忆。我给自己定了个规矩:每次不小心敲了旧命令,就暂停一秒想想新工具怎么写。一周后,换 rg、fd、bat 这三个基本就没痛感了。
如果你已经用了其中几个,评论区说说你最喜欢的组合?我最近在试 fd | fzf | xargs nvim 的搜索-打开工作流,效率确实高——如果你有更好的玩法也欢迎分享。
FAQ
Q: 这些工具在 macOS 上能用吗?
大部分都可以用 Homebrew 安装:brew install ripgrep fd bat lazygit fzf zoxide tmux httpie。只有 fd 在 macOS 上叫 fd(Ubuntu 上需装 fd-find 并别名 fdfind 为 fd)。
Q: 这些工具会影响现有脚本吗?
只有定义别名(如 alias grep='rg')才会影响其他脚本。建议不要设覆盖别名——保持旧命令在脚本中可用,平时交互用新命令。shell 配置文件里只加新命令的别名就好。
Q: ripgrep 和 grep 的兼容性怎么样?
不兼容。rg 不支持 -P(Perl 正则)、-o(只输出匹配部分,虽然 rg 有 -o 但行为略有差异)、--include(用 --type 或 --glob)。复杂的 shell 脚本不要直接改 rg。交互使用直接上手 rg,需要兼容的场景保留 grep。
Q: lazygit 学习成本高吗?
不高。核心操作只有 6 个按键:空格(暂存)、c(提交)、P(推送)、p(拉取)、q(退出)、?(帮助)。底部状态栏一直显示当前可用的快捷键。运行 lazygit 后 5 分钟就能上手。
Q: 这些工具哪个最值得先换?
如果只能推荐一个,我会选 ripgrep。它带来的速度提升是最明显的——搜索日志文件从”等 30 秒”变成”眨个眼就出来了”。其次是 fzf,因为它可以配合其他所有工具使用,价值叠加效应最强。这两个装好只要 30 秒,当天就能感受到区别。
内链推荐
- VS Code vs Cursor vs Windsurf:2026年AI编程IDE横向评测 —— 如果你在选 IDE,这篇评测了三个主流工具
- GitHub Copilot使用技巧:90%的人不知道的10个隐藏功能 —— 终端工具配 AI 编程助手,效率起飞
- VS Code 高效编程技巧 20 条 —— 编辑器 + 终端工具双管齐下
