在终端里输错命令是程序员的日常。看着 “command not found” 的提示,你当然可以用 ↑ 键翻历史然后手动修改,但这种重复劳动早就该被自动化了。

pay-respects 是一个用 Rust 编写的命令建议工具,功能是自动检测你刚输错的命令,并给出最可能的正确版本。

项目速览

属性内容
GitHubiffse/pay-respects
Stars592
语言Rust
特点零配置、多 shell 支持、规则可扩展
最后更新数小时前

它解决了什么问题

传统的命令纠错方案(比如 thefuck)有几个痛点:

  1. 启动慢:Python 写的,冷启动能明显感觉到延迟
  2. 依赖重:需要 Python 环境,某些精简系统上没有
  3. 规则硬编码:添加自定义规则比较麻烦

pay-respects 用 Rust 重写后,冷启动几乎无感知。二进制文件单个就能跑,不需要运行时依赖。

核心特性

多 Shell 原生支持

Bash、Zsh、Fish、Nushell 开箱即用,不需要额外配置。

智能匹配

不只是简单的字符串替换,它会分析错误类型:

  • 拼写错误(gti statusgit status
  • 权限不足(自动加 sudo
  • 包管理器相关(apt isntallapt 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语言启动速度特点
thefuck90k+Python较慢生态成熟,规则丰富
pay-respects592Rust极快轻量、可扩展

thefuck 的生态确实更成熟,但如果你受够了 Python 的启动延迟,pay-respects 是个干净的替代方案。

适用场景

  • 经常打错命令的手残党
  • 在资源受限环境(容器、嵌入式)工作的开发者
  • 想给内部工具加纠错规则的团队
  • 对启动速度有执念的性能控

局限

  • 规则数量还不如 thefuck 丰富(但增长很快)
  • 某些复杂的错误模式暂时不支持
  • 需要手动绑定快捷键

总结

pay-respects 不试图取代 thefuck 的全部功能,而是提供了一个更快、更轻量的核心方案。对于日常 90% 的拼写错误场景,它已经足够好用。如果你主要用常见命令(git、docker、kubectl、npm 等),它的内置规则基本够用。

属性内容
仓库https://github.com/iffse/pay-respects
许可证AGPL-3.0
语言Rust
维护者@iffse