我对终端的要求和对待同事一样:响应快、话不多、可预测。这套工具链经过几年筛选,每一个位置都有明确的胜负理由。

底座:zsh + 两个插件

  • zsh-autosuggestions:灰色幽灵提示历史命令,→ 采纳。省下的键盘量以年计是惊人的
  • zsh-syntax-highlighting:命令存在绿色、不存在红色——打错命令在回车前就知道

不装 Oh My Zsh(慢),不装十几个 theme(花)。用这套的理由只有一个:提示延迟必须低于打字速度。

查找:fzf 是终端的 Ctrl+K

fzf 通用模糊查找,配三个绑定覆盖 90% 场景:

# Ctrl+R 历史命令模糊搜索(重写自带体验)
# Ctrl+T 把查找结果插入当前命令
# Alt+C 模糊跳转目录

配合 **<TAB> 通配补全(vim **<TAB> 直接模糊选文件),文件路径基本告别手打。

搜索与查看:现代替代品

传统 替代 理由
grep rg(ripgrep) 快一个量级,默认跳过 .gitignore
cat bat 自带语法高亮与行号,git 集成
find fd 语法直觉,默认并行
ls eza git 状态、图标、树形一体

alias 不必激进——我保留原生命令的习惯,只在交互查看场景用替代品(脚本里仍然 grep/cat,可移植)。

目录跳跃:zoxide

z blog 直达常去的目录,基于使用频率学习。比维护一堆 alias 干净得多。

纪律比工具重要

  1. 配置进版本库:dotfiles 仓库,新机器 10 分钟恢复全套环境
  2. 别名只加"高频+难打"的:每个 alias 都是记忆税
  3. 能脚本化的不动手:同一串命令敲第三遍,就该变成脚本进 ~/bin(参考下一篇)
  4. 保持可弃:任何工具罢工,原生命令必须还能干活——工具链是加速器,不是依赖项

终端是工程师接触时间最长的"IDE"。配置它的原则和配置服务器一样:每项改动可解释、可回滚、可迁移。