在终端里直接修正输错的命令。
English | 简体中文
Typo 是用 Go 编写的命令自动修正工具。输入命令后按两次 Esc,Typo 会把当前命令行替换成更可能正确的命令。
不是有 thefuck 了吗,为什么还要编写 typo?
有下面几个原因:
- theFuck 不在维护了,issue,pr 没人处理(这也是最大的原因;
- theFuck 和 Python 版本有绑定关系,我安装的时候废了点功夫~;
- theFuck 对包含 "" 的处理并不好。
基于上面的原因,我用 Go 写了 Typo,它不是 TheFuck 的翻译。而是从头开始的!
- 支持在 zsh、bash、fish 和 PowerShell 中原地修正命令。
- 支持主命令、子命令、
&&连接命令、管道命令,以及存在 stderr 上下文时的运行时报错。 - 将当前 shell 会话中的 alias 和简单包装函数作为修正上下文,例如
k=kubectl。 - 支持修正当前 shell 上下文里的环境变量名拼写错误,例如
$HOEM->$HOME。 - 支持用
typo learn添加个人修正规则;用户规则和历史记录保存在~/.typo。 - 支持 macOS、Linux、WSL 和 Windows PowerShell 7+ 的原生二进制安装。
- 使用 Go 语言编写,二进制安装不依赖外部环境。
使用 Homebrew 安装:
brew tap yuluo-yx/typo https://github.com/yuluo-yx/typo
brew install typo或者在 macOS / Linux 上使用脚本安装:
curl -fsSL https://raw.githubusercontent.com/yuluo-yx/typo/main/tools/scripts/install.sh | bashWindows PowerShell 7+ 使用下面的命令安装:
iwr -useb https://raw.githubusercontent.com/yuluo-yx/typo/main/tools/scripts/quick-install.ps1 | iex升级、校验 checksum 和平台差异说明请看 快速开始。
请先安装 Typo,再把对应的初始化命令添加到 shell 配置文件。
| Shell | 配置文件 | 初始化命令 |
|---|---|---|
| zsh | ~/.zshrc |
eval "$(typo init zsh)" |
| bash | ~/.bashrc |
eval "$(typo init bash)" |
| fish | ~/.config/fish/config.fish |
typo init fish | source |
| PowerShell 7+ | $PROFILE.CurrentUserCurrentHost |
Invoke-Expression (& typo init powershell | Out-String) |
重启终端后,运行下面的命令检查配置:
typo doctor然后输入一条带拼写错误的命令,并按两次 Esc:
gti stauts
# 按两次 Esc 后
git statusShell 集成也能识别当前会话中的 alias:
alias k=kubectl
k lgo
# 按两次 Esc 后
k logsShell 集成也能根据当前会话里的环境变量名修正 $VAR 拼写:
cd $HOEM/project
# 按两次 Esc 后
cd $HOME/project需要直接输出结果或管理个人规则时,可以使用 CLI 命令:
typo fix "gut status && dcoker ps"
typo learn "gst" "git status"
typo config list
typo config set candidates.enabled true
typo config set candidates.limit 3
typo rules list
typo history list开启候选选择后,shell 集成会在按两次 Esc 时展示最多配置数量的有效修正候选。
可直接按 1-9 选择,也可用上下键移动后按回车确认。
完整命令和参数说明请看 命令参考。
开发环境需要 Go 1.26.3 和 GNU Make。
make setup
make test-unit
make test
make ci日常修改 Go 代码时可先运行 make test-unit 获取快速反馈;提交前仍需运行
make test 和 make ci。
提交变更前请确保 Git precommit 通过。代码风格、测试要求和提交信息格式请看 贡献指南。
当前 GitHub Release 流程会额外发布一个 checksums.txt,其中包含所有平台二进制的 SHA-256 摘要;部分历史 Release 可能缺少该文件。
macOS/Linux 安装脚本和 Windows 快速安装脚本会在对应 Release 提供 checksums.txt 时自动校验下载的二进制。
如果你是直接使用 Release 资产安装,并且对应 Release 提供 checksums.txt,请先对照该文件校验后再放到 PATH 中。
完整校验步骤请看 快速开始。
感谢所有参与 Typo 构建的贡献者。
MIT
