首页IT科技python纠错网站(TheFuck—Python写的超实用命令纠正工具)

python纠错网站(TheFuck—Python写的超实用命令纠正工具)

时间2025-06-21 01:33:36分类IT科技浏览4798
导读:The Fuck 是一款功能强大的、Python编写的应用程序,可用于纠正控制台命令中的错误,非常强大。此外,用户还可通过写Python代码的方式自定义修复规则。...

The Fuck 是一款功能强大的            、Python编写的应用程序              ,可用于纠正控制台命令中的错误                   ,非常强大            。此外      ,用户还可通过写Python代码的方式自定义修复规则                    。

修复效果如下动图所示:

更多示例如:

自动识别没有权限          ,在命令前面添加 sudo

➜ apt-get install vim E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? ➜ fuck sudo apt-get install vim [enter/↑/↓/ctrl+c] [sudo] password for nvbn: Reading package lists... Done

识别到没有推送到远程分支                    ,自动追加:

➜ git push fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin master ➜ fuck git push --set-upstream origin master [enter/↑/↓/ctrl+c] Counting objects: 9, done.

识别到拼写错误

➜ puthon No command puthon found, did you mean: Command python from package python-minimal (main) Command python from package python3 (main) zsh: command not found: puthon ➜ fuck python [enter/↑/↓/ctrl+c] Python 3.4.2 (default, Oct 8 2014, 13:08:17)

如果你不担心fuck修正的结果是错误的         ,你可以禁用require_confirmation 选项      ,让fuck自动运行更正的命令:

➜ apt-get install vim E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? ➜ fuck sudo apt-get install vim [sudo] password for nvbn: Reading package lists... Done

在开发机上可以这么做                    ,在生产机器上最好是谨慎一点            ,不推荐这么做       。

安装

在OS X上   ,可以通过Homebrew(或在Linux上通过Linuxbrew)安装The Fuck:

brew install thefuck

在Ubuntu / Mint上                    ,使用以下命令安装The Fuck:

sudo apt update sudo apt install python3-dev python3-pip python3-setuptools sudo pip3 install thefuck

在FreeBSD上               ,使用以下命令安装The Fuck:

pkg install thefuck

在其他系统上, 使用pip安装The Fuck:

pip install thefuck

配置

接下来需要把这个命令写入到启动脚本中                 ,根据你的终端类型                  ,运行相应的命令即可:

Bash

chcp.com 65001 eval "$(thefuck --alias)"

其中 http://chcp.com 65001 只有在windows环境下才需要运行         。

Zsh

eval "$(thefuck --alias)"

原理

其实TheFuck的原理就是规则匹配(正则表达式)   ,如果找到匹配规则的命令              ,则创建一个命令给用户选择或直接运行                   。

默认情况下的规则有:

cat_dir - 当你尝试cat目录的时候                   ,用ls替换cat; cd_correction – 拼写检查和纠正失败的cd命令; cd_mkdir – 在进入目录之前创建目录; cd_parent – 更改 cd… 为cd …; dry – 修复类似的重复问题:git git push; fix_alt_space – 用空格字符代替Alt + Space;

等等      ,具体可以在官方文档中找到:

https://github.com/nvbn/thefuck

创建自己的修复规则

要添加自己的规则          ,在 ~/.config/thefuck/rules 文件夹中                    ,

创建一个文件名为 your-rule-name.py 的规则文件         ,其中必须包含两个函数:

match(command: Command) -> bool get_new_command(command: Command) -> str | list[str]

下面是简单的 sudo 规则示例:

def match(command): return (permission denied in command.output.lower() or EACCES in command.output) def get_new_command(command): return sudo {}.format(command.script) # Optional: enabled_by_default = True def side_effect(command, fixed_command): subprocess.call(chmod 777 ., shell=True) priority = 1000 # Lower first, default is 1000 requires_output = True
# 兄弟们学习python      ,有时候不知道怎么学                    ,从哪里开始学           。掌握了基本的一些语法或者做了两个案例后            ,不知道下一步怎么走   ,不知道如何去学习更加高深的知识      。 # 那么对于这些大兄弟们                    ,我准备了大量的免费视频教程               ,PDF电子书籍,以及源代码! # 直接在这个君羊 872937351 自取即可

如果命令运行结果出现 permission denied 或者 EACCES                 ,则执行 sudo xxx.

此外                  ,还可以配置side_effect   ,如果你配置了enabled_by_default = True              ,side_effect函数内的操作将会被执行                   ,本例中是对当前目录下的文件夹执行赋权操作: chmod 777 .

最后

大家可以动手试试自己配一个修复命令      ,还是相当有意思的                  。

好了今天的分享就到这里结束了          ,下次见~

声明:本站所有文章                    ,如无特殊说明或标注         ,均为本站原创发布              。任何个人或组织      ,在未征得本站同意时                    ,禁止复制                    、盗用       、采集         、发布本站内容到任何网站                   、书籍等各类媒体平台   。如若本站内容侵犯了原著者的合法权益            ,可联系我们进行处理                  。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
python logging.formatter(Python Logging是什么?)