Skip to content

Latest commit

 

History

History
170 lines (116 loc) · 5.49 KB

File metadata and controls

170 lines (116 loc) · 5.49 KB

Typo

在终端里直接修正输错的命令。

Build Status Go Version License Stars

English | 简体中文

Typo 是用 Go 编写的命令自动修正工具。输入命令后按两次 Esc,Typo 会把当前命令行替换成更可能正确的命令。

Typo Demo

TheFuck?

不是有 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 | bash

Windows PowerShell 7+ 使用下面的命令安装:

iwr -useb https://raw.githubusercontent.com/yuluo-yx/typo/main/tools/scripts/quick-install.ps1 | iex

升级、校验 checksum 和平台差异说明请看 快速开始

Shell 集成

请先安装 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 status

Shell 集成也能识别当前会话中的 alias:

alias k=kubectl
k lgo

# 按两次 Esc 后
k logs

Shell 集成也能根据当前会话里的环境变量名修正 $VAR 拼写:

cd $HOEM/project

# 按两次 Esc 后
cd $HOME/project

CLI 命令

需要直接输出结果或管理个人规则时,可以使用 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 testmake ci

提交变更前请确保 Git precommit 通过。代码风格、测试要求和提交信息格式请看 贡献指南

Release 完整性

当前 GitHub Release 流程会额外发布一个 checksums.txt,其中包含所有平台二进制的 SHA-256 摘要;部分历史 Release 可能缺少该文件。 macOS/Linux 安装脚本和 Windows 快速安装脚本会在对应 Release 提供 checksums.txt 时自动校验下载的二进制。 如果你是直接使用 Release 资产安装,并且对应 Release 提供 checksums.txt,请先对照该文件校验后再放到 PATH 中。 完整校验步骤请看 快速开始

社区贡献者

感谢所有参与 Typo 构建的贡献者。

Typo 贡献者

许可证

MIT