pay-respects:592⭐的 Rust 版命令纠错神器
在终端里输错命令是程序员的日常。看着 “command not found” 的提示,你当然可以用 ↑ 键翻历史然后手动修改,但这种重复劳动早就该被自动化了。
pay-respects 是一个用 Rust 编写的命令建议工具,功能是自动检测你刚输错的命令,并给出最可能的正确版本。
项目速览
| 属性 | 内容 |
|---|---|
| GitHub | iffse/pay-respects |
| Stars | 592 |
| 语言 | Rust |
| 特点 | 零配置、多 shell 支持、规则可扩展 |
| 最后更新 | 数小时前 |
它解决了什么问题
传统的命令纠错方案(比如 thefuck)有几个痛点:
- 启动慢:Python 写的,冷启动能明显感觉到延迟
- 依赖重:需要 Python 环境,某些精简系统上没有
- 规则硬编码:添加自定义规则比较麻烦
pay-respects 用 Rust 重写后,冷启动几乎无感知。二进制文件单个就能跑,不需要运行时依赖。
核心特性
多 Shell 原生支持
Bash、Zsh、Fish、Nushell 开箱即用,不需要额外配置。
智能匹配
不只是简单的字符串替换,它会分析错误类型:
- 拼写错误(
gti status→git status) - 权限不足(自动加
sudo) - 包管理器相关(
apt isntall→apt install) - 路径相关(自动补全文件路径)
可扩展的规则系统
用 TOML 写规则,支持正则匹配和条件判断。比如给公司内部的 CLI 工具加纠错规则,几行配置就能搞定。
轻量
安装包不到 5MB,内存占用 negligible。
快速开始
# 用 cargo 安装
cargo install pay-respects
# 或者下载预编译二进制
curl -fsSL https://pay-respects.iffse.dev/install.sh | sh
然后在 shell 配置里加一行(以 zsh 为例):
eval "$(pay-respects zsh)"
生效后,输错命令时按 Ctrl+G(或你绑定的快捷键),就会看到建议:
$ gti status
gti: command not found
$ [Ctrl+G]
> git status
同类工具对比
| 工具 | Stars | 语言 | 启动速度 | 特点 |
|---|---|---|---|---|
| thefuck | 90k+ | Python | 较慢 | 生态成熟,规则丰富 |
| pay-respects | 592 | Rust | 极快 | 轻量、可扩展 |
thefuck 的生态确实更成熟,但如果你受够了 Python 的启动延迟,pay-respects 是个干净的替代方案。
适用场景
- 经常打错命令的手残党
- 在资源受限环境(容器、嵌入式)工作的开发者
- 想给内部工具加纠错规则的团队
- 对启动速度有执念的性能控
局限
- 规则数量还不如 thefuck 丰富(但增长很快)
- 某些复杂的错误模式暂时不支持
- 需要手动绑定快捷键
总结
pay-respects 不试图取代 thefuck 的全部功能,而是提供了一个更快、更轻量的核心方案。对于日常 90% 的拼写错误场景,它已经足够好用。如果你主要用常见命令(git、docker、kubectl、npm 等),它的内置规则基本够用。
| 属性 | 内容 |
|---|---|
| 仓库 | https://github.com/iffse/pay-respects |
| 许可证 | AGPL-3.0 |
| 语言 | Rust |
| 维护者 | @iffse |