banner
Moraxyc

Moraxyc's Rhapsody

Passion Forever! 永远热爱!
twitter
telegram
github
medium
discord server

The Fuck?拯救手残党!

Fuck

注意
本文翻訳は元のドキュメントを翻訳・簡略化したものです。矛盾がある場合は、元のドキュメントを優先してください!

Tip
特に指定がない限り、この記事のすべてのコマンドは Debian/Ubuntu 系 Linux ディストリビューションで最適に動作します。

需要と問題点#

Linux システムの最適な使用法は、もちろん CLI ですが、CLI の大きな問題点は、グラフィカルなインターフェースがないことです!当たり前ですが

グラフィカルなインターフェースがないため、ユーザーはコマンドを一文字ずつ入力する必要があります。グラフィカルなインターフェースがないため、プロフェッショナルでも初心者でも、たまには文字を間違えたり、タイプミスをしたりする低レベルのエラーを犯すことがあります。しかし、プロフェッショナルと初心者の違いは、プロフェッショナルはコマンドラインのショートカットキーを使ってエラーを素早く修正することができるということです。この記事「Linux コマンドラインの編集ショートカットキー」では、Linux ユーザーがコマンドを操作するためのいくつかのショートカットキーについて詳しく説明しています。

しかし、それでも面倒だと思います。長いコマンドを入力した後にエラーを修正するのは本当に面倒です。そこで、「Fuck!」と叫びたくなるような劇的なコマンドが生まれました:TheFuck

機能#

以下の内容は元の開発者nvbnからの引用です#

example アニメーション

 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)
...
 git brnch
git: 'brnch' is not a git command. See 'git --help'.

Did you mean this?
    branch

 fuck
git branch [enter/↑/↓/ctrl+c]
* master
 lein rpl
'rpl' is not a task. See 'lein help'.

Did you mean this?
         repl

 fuck
lein repl [enter/↑/↓/ctrl+c]
nREPL server started on port 54848 on host 127.0.0.1 - nrepl://127.0.0.1:54848
REPL-y 0.3.1
...

もしも修正されたコマンドを盲目的に実行することに抵抗がなければ、require_confirmation設定項目を無効にすることができます:

 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
...

インストール#

依存関係#

The Fuck は Python で動作するため、nvbn による依存関係は次のとおりです。

  • Python (3.4+)
  • pip
  • Python-dev

依存関係と本体のインストール#

次のコマンドを使用してインストールします(他の Linux ディストリビューションの場合は、元の記事のインストール部分を参照してください)。

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

元の記事のインストールコマンドでは、最後のコマンドに--userパラメータが追加されており、これにより The Fuck が現在のログインユーザーのディレクトリの.local/binにインストールされ、環境変数を追加する必要があります。ここでは、このプロセスをスキップするために、直接 root または sudo でパッケージをインストールするように変更しました。

エイリアスの追加#

.bash_profile.bashrc.zshrcまたは他のターミナル起動スクリプトに以下のコマンドを追加することをお勧めします:eval $(thefuck --alias)

The Fuck は自動的に追加されるようになりましたので、インストールが完了した後にfuckを 2 回入力するだけです。

アップデート#

pip3 install thefuck --upgrade

使用方法#

Fuck!#

コマンドの実行エラーが発生した場合、"Fuck" と叫びながらfuckと入力し、上下キーでオプションを選択し、Enter キーで修正を確認します。

パラメータ#

  1. --yeah

fuck --yeahまたはfuck -yを使用して確認をスキップし、修正されたコマンドを直接実行します。

  1. -r

fuck -rを使用して、The Fuck が再帰的にコマンドを修正して実行するようにします。コマンドが成功するまで繰り返し修正します。

設定#

設定項目#

The Fuck の設定ファイルはデフォルトで~/.config/thefuck/settings.pyです。

rules – 有効になっているルールのリスト。デフォルトは thefuck.const.DEFAULT_RULESです。

exclude_rules – 無効にするルールのリスト。デフォルトは []です。

require_confirmation – 修正後のコマンドを実行する前に確認が必要かどうか。デフォルトは Trueです。

wait_command– 前のコマンドの出力を取得する最大時間(秒単位)

no_colors – カラー出力を無効にする

priority – 優先度のあるルールを持つ辞書。優先度が低いpriorityのルールが優先的にマッチします。

debug – デバッグ出力を有効にするかどうか。デフォルトは Falseです。

history_limit – スキャンする過去のコマンドの数。例:2000

alter_history – 修正後のコマンドを履歴に追加するかどうか。デフォルトは Trueです。

wait_slow_commandslow_commandsリストに含まれる場合、前のコマンドの出力を取得する最大時間(秒単位)

slow_commands – 遅いコマンドのリスト

num_close_matches – コマンド修正の最大一致数。デフォルトは 3 です。

excluded_search_path_prefixes – コマンドの検索時に無視するパスの接頭辞のリスト。デフォルトは []です。

インスタントモード(実験的)#

The Fuck のデフォルトの動作は、以前のコマンドを再実行するために時間がかかります。インスタントモードでは、The Fuck はログの出力をスクリプトで記録し、ログを読み取ることで時間を節約します。

現在、インスタントモードは bash または zsh を持つ Python 3 でのみサポートされています。 zsh の自動修正機能も無効にする必要があります。

インスタントモードを有効にするには、エイリアスパラメータ内の.bashrc.bash_profile.zshrcなどのターミナル起動スクリプトに--enable-experimental-instant-modeを追加します。

以下は例です:

eval $(thefuck --alias --enable-experimental-instant-mode)
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。