這個(gè)騷操作,我笑了一整天
這個(gè)工具非常有趣。
你在命令行窗口輸入了一個(gè)命令,滿懷期待的敲上了回車,結(jié)果提示你輸入有誤,你會(huì)不會(huì)不由自主的說一句 fuck?那就在命令行輸入 fuck 吧,這個(gè)工具幫你自動(dòng)糾正錯(cuò)誤的命令。
看個(gè)動(dòng)圖:

這個(gè)工具就是 thefuck[1],GitHub 上有 63.7k 的星,很受歡迎。
安裝
安裝方法:
pip install thefuck
第一次輸入 fuck 會(huì)提示你改個(gè)別名,如果不想改的話,在輸入一次 fuck 就可以:

執(zhí)行的時(shí)候千萬不要讀出來,用習(xí)慣了容易成為口頭禪。??
原理
這個(gè)工具嘗試將上一個(gè)命令與規(guī)則匹配。如果找到匹配項(xiàng),則使用匹配的規(guī)則創(chuàng)建一個(gè)新命令并執(zhí)行。
比如你 cat 一個(gè)文件夾,它會(huì)自動(dòng)改成 ls 文件夾:

你可以去官方倉庫[2]查看默認(rèn)啟用的規(guī)則。
添加自定義規(guī)則
在 ~/.config/thefuck/rules 目錄下創(chuàng)建一個(gè) Python 文件,比如叫 your_rules.py,文件必須包含兩個(gè)函數(shù):
match(command: Command) -> bool
get_new_command(command: Command) -> str | list[str]
其他都是可選的,比如一個(gè) sudo 規(guī)則的代碼如下:
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
設(shè)置
修改 ~/.config/thefuck/settings.py 即可。
最后的話
這個(gè)工具解決了每個(gè)人都可能會(huì)遇到的問題:輸錯(cuò)了命令??紤]到輸錯(cuò)了命令后很多人都會(huì)不由自由叫一聲 fuck,然后把這個(gè) fuck 變成一個(gè)實(shí)用工具,節(jié)省了程序員的寶貴時(shí)間,不得不說這個(gè)工具的作者 nvbn[3]很細(xì)心,很幽默,很風(fēng)騷,是一個(gè)牛逼的 Python 開發(fā)者,大家可以 follow 他。
如果本文有幫助,不妨隨手關(guān)注、點(diǎn)贊、再看哦,每天學(xué)點(diǎn) Python 技術(shù)。
也可以留言討論。
參考資料
thefuck: https://github.com/nvbn/thefuck
[2]官方倉庫: https://github.com/nvbn/thefuck
[3]作者 nvbn: https://github.com/nvbn
