前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大喊一声Fuck!代码就能跑了是什么体验?

大喊一声Fuck!代码就能跑了是什么体验?

作者头像
源心锁
发布2023-04-23 16:17:24
4000
发布2023-04-23 16:17:24
举报
文章被收录于专栏:前端魔法指南
theme: devui-blue

大喊一声Fuck!代码就能跑了是什么体验?

1 前言

大家好,我是心锁,23届准毕业生。

程序员的世界,最多的不是代码,而是💩山和bug。

近期我在学习过程中,在github找到了这么一个项目,能在我们输错命令之后,大喊一声Fuck即可自动更正命令,据说喊得越大声效果越好。

2 项目基本介绍

thefuck是一个基于Python编写的项目,它能够自动纠正你在命令行中输入的错误命令。如果你输错了一个命令,只需要在命令行中输入“fuck”,thefuck就会自动纠正你的错误。该项目支持众多的终端和操作系统,包括Linux、macOS和Windows。

2.1 环境要求

  • python环境(3.4+)

2.2 安装方式

thefuck支持brew安装,非常方便,在macOS和Linux上都可以通过brew安装。

代码语言:javascript
复制
brew install thefuck

也支持通过pip安装,便携性可以说是一流了。

代码语言:javascript
复制
pip3 install thefuck

2.3 配置环境变量

建议将下边的代码配置在环境变量中(.bash_profile.bashrc.zshrc),不要问为什么,问就是有经验。

代码语言:javascript
复制
eval $(thefuck --alias)
eval $(thefuck --alias FUCK)
eval $(thefuck --alias fuck?)
eval $(thefuck --alias fuck?)

接着运行source ~/.bashrc(或其他配置文件,如.zshrc)确认更改立即可用。

3 使用效果

Untitled
Untitled

4 thefuck的工作原理

thefuck的工作原理非常简单。当你输入一个错误的命令时,thefuck会根据你输入的命令和错误提示自动推测你想要输入的正确命令,并将其替换为正确的命令。thefuck能够自动推测正确的命令是因为它内置了大量的规则,这些规则能够帮助thefuck智能地纠正错误的命令。

所以,该项目开放了自定义规则。

4.1 创建自己的规则

如果thefuck内置的规则不能够满足你的需求,你也可以创建自己的规则。thefuck的规则是由普通的Python函数实现的。你可以在~/.config/thefuck/rules目录下创建一个Python脚本,然后在其中定义你的规则函数。

以创建一个名为my_rule的规则为例,具体步骤如下:

4.1.1 创建rule.py文件

~/.config/thefuck/rules目录下创建一个Python脚本,比如my_rules.py

4.1.2 遵循的规则

在自定义脚本中,必须实现以下两个函数,match显然是用来匹配命令是否吻合的函数,而get_new_command则会在match函数返回True时触发。

代码语言:javascript
复制
match(command: Command) -> bool
get_new_command(command: Command) -> str | list[str]

同时可以包含可选函数,side_effect的作用是开启一个副作用,即除了允许原本的命令外,你可以在side_effect做更多操作。

代码语言:javascript
复制
side_effect(old_command: Command, fixed_command: str) -> None

5 yarn_uninstall_to_remove

以创建一个名为yarn_uninstall_to_remove的规则为例,该规则会在我们错误使用yarn uninstall …命令时,自动帮助我们修正成yarn remove … 。具体步骤如下:

5.1 创建yarn_uninstall_to_move.py文件

~/.config/thefuck/rules目录下创建一个Python脚本,yarn_uninstall_to_remove.py

5.2 编写代码

代码语言:javascript
复制
from thefuck.utils import for_app

@for_app('yarn')
def match(command):
    return 'uninstall' in command.script

def get_new_command(command):
    return command.script.replace('uninstall', 'remove')

priority=1 # 优先级,数字越小优先级越高

5.3 效果

Untitled
Untitled

6 总结

世界之大,无奇不有。不得不说的是,伴随着AI的逐渐发展,类似这种项目未来一定是优先接入AI者才可以继续发展。

友情提示,喊fuck的时候先设置后双击control打开听写功能,喊完再点击一下control完成输入。

Untitled
Untitled
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 大喊一声Fuck!代码就能跑了是什么体验?
  • 1 前言
  • 2 项目基本介绍
    • 2.1 环境要求
      • 2.2 安装方式
        • 2.3 配置环境变量
        • 3 使用效果
        • 4 thefuck的工作原理
          • 4.1 创建自己的规则
            • 4.1.1 创建rule.py文件
            • 4.1.2 遵循的规则
        • 5 yarn_uninstall_to_remove
          • 5.1 创建yarn_uninstall_to_move.py文件
            • 5.2 编写代码
              • 5.3 效果
              • 6 总结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档