navi
更新于 2026-09-02 23:17:40
navi 是 denisidoro 用 Rust 写的一个命令行速查表(cheatsheet)工具,核心目标很朴素:让你不用背命令参数。我们前面聊的工具大多让命令"更快",navi 这一期让命令更"好记"——高频命令靠肌肉记忆,低频命令交给 navi,从此再也不用翻参数表。
它到底解决了什么问题
命令不需要全记住,但"去哪儿查"值得记住。navi 就是把这句话做成了产品。日常里我们大量时间花在回忆 tar 解压、ffmpeg 转码、git 那一长串 rebase 参数的正确写法上,这些都属于"低频但关键时刻必须正确"的命令。navi 把这些命令整理成可读的速查表,用模糊查找一键调出,还能直接执行或把片段填进终端。
Rust 视角:胶水型工具的胜利
从 Rust 的角度看,navi 展示了另一种可能:一个"胶水型"工具如何靠稳定的 CLI 体验赢得用户。它不做计算密集的事,核心是把 fzf、shell、git 这些已有组件黏在一起,并提供一套轻量、可读的速查表格式。
这种工具拼的恰恰是 Rust 的工程能力——单二进制分发、跨平台一致、启动快、不依赖运行时。写速查表的人不需要懂 Rust,就像用 fd 的人不需要懂 rayon 一样,工具的好坏最终由"用起来省不省心"决定。
使用体验
- 安装简单:单二进制,brew / cargo / 各发行版包管理器都能装,没有运行时依赖。
- 查询顺手:默认接入 fzf,输入关键词即可模糊匹配,支持按标签、命令、注释过滤。
- 可定制:速查表就是带变量的 Markdown 文件,自己加一段就是个人知识库;社区已有大量现成 cheatsheet 可直接引入。
- 能填空:命令模板里用
$variable占位,调用时交互式填入参数,避免手敲出错。
适用场景
- 经常用到但记不住完整参数的运维/开发命令(docker、kubectl、git、ffmpeg 等)。
- 团队共享一套标准命令手册,新人不背文档也能规范操作。
- 当个人命令备忘录,把零散的"某次查到的神奇一行"沉淀下来。
二开建议
- 把团队常用命令沉淀成私有 cheatsheet 仓库,navi 支持从远程仓库加载,很适合做内部命令规范。
- 对追求极致启动速度的场景,可关注 navi 与 fzf 的启动开销,或对比同类 Rust 写的替代品(如更轻的 tldr 客户端)。
- 若需要更深的 shell 集成(直接把选中片段送回当前 prompt),可结合 shell 插件与 navi 的
--print模式做二次封装。
一句话总结
navi 不重新发明命令行,它重新发明了"查命令"这件事:命令不用记全,记住"去 navi 查"就够了。