第一次看见这个名字,也是醉了,真是直白啊,赤裸裸的写出了由于拼写错误而执行失败的命令的心声。闲来试用了一下,感觉还是很不错的。
所需环境
python (3.4+)
pip
python-dev
安装
支持多平台多种安装方式, 可以自由选择
-
OS/Linuxbrew 可以依赖 Homebrew/Linuxbrew
brew install thefuck -
Ubuntu / Mint
sudo apt update
sudo apt install python3-dev python3-pip python3-setuptools
sudo pip3 install thefuck -
FreeBSD
pkg install thefuck -
ChromeOS
crew install thefuck -
其他系统,就要靠我热爱的python环境了,pip
pip install thefuck
环境配置
安装完之后,需要下一步配置,如果直接执行fuck命令,会有以下提示,跟着提示做就好了。
需要将以下命令,放入 .bash_profile, .bashrc, .zshrc 或者你指定的启动脚本中。
eval $(thefuck --alias)
# 如果你想起一个别名的话,也可以,比如
eval $(thefuck --alias love) 此时 fuck和love 都可以执行
使用
通过上面的例子,估计你也看明白了,简单的步骤如下
1、(啊~~)控制台命令输错了
2、(莫慌)输入 fuck
3、如果提示的命令是你想要的正确命令,则按 enter确定,还可以通过 上下箭头来选择你想要的命令,或通过 Ctrl+C 放弃所有选择
4、happy ending
ps:如果你想到信任func, 那就加参数呀
fuck -y 或者 fuck --yeah 或者 fuck --yes 代表直接相信他的正确判断
鉴于有多种选择,那可以加 -r ,可以递归修复命令,直至选中一条可以成功执行的命令
纠错规则
大部分的 git 、brew、yum、apt 、pip 还有一些常用的 linux 命令都支持
具体的请参考官方:https://github.com/nvbn/thefuck
高级用法之 创建自己的规则
在~/.config/thefuck/rules 下创建规则文件 your-rule-name.py
比如:
我自定义了一个 hello 的命令,输错了怎么办呢
我在~/.config/thefuck/rules下创建了一个hello.py文件,文件内容如下:
def match(command):
return 'command not found: hell' in command.output.lower()
def get_new_command(command):
return 'hello'
解答:
该文件必须包括两个function
match(command: Command) -> bool 用来判断错误的命令是否命中该文件
get_new_command(command: Command) -> str | list[str] 用来修正命令,并返回正确的命令或命令列表