web-dev-qa-db-ja.com

Zshは、コマンドの前に_を付けて自動修正したい

最近、Gitステータスなどのシェルプロンプトの統合サポートの一部としてZshを使い始めました。

入力すると:

 Ruby -v

Ruby実行中のバージョンを確認するために、Zshはコマンドを_Rubyに変更するかどうかを尋ねます。まあ、プロンプトでnoと言った後、コマンドが期待どおりに完了すると、引き続きコマンドが正しいことを確認した後、プロンプトで質問します。

私は補完ファイルまたはある種のものがあると仮定しています。

ありがとう

更新:

シェルは_Rubyを完了しようとするのではなく、いくつかの方法でシェルを数回閉じた後に応答を停止しました。

ファイルを数回クリーンアップしようとしましたが、50行以上の「opts」変数があり、行がすべて一緒に実行され、一部の行は150文字を超えています。まだ見たい場合は、添付ファイルをメールで送るかもしれません。ご迷惑をおかけして申し訳ございません。

70
Joe Ryan

これは、correctオプションによってアクティブ化されるコマンドの自動修正です。それは完成とは何の関係もありません。 _Rubyが表示されているのは、zshがRubyコマンドがないと判断し、既存の最も近い一致として_Rubyを提供するためです。

Rubyをインストールしたばかりの場合、zshが使用可能なコマンドのリストを以前に記憶している可能性があり、その間にコマンドが出現したかどうかを常に確認しようとするわけではありません。その場合は、hash -rfを実行します。 Rubyコマンドは開始時にすでに存在していたため、将来のzshセッションではこの問題は発生しません。

場合によっては、PATHを変更すると、zshがハッシュされたコマンドを忘れてしまうことがあります。オプションhash_listallはこれに役立ちます。上記のように、zshにhash -rfを使用してコマンドキャッシュを更新させることができる場合。

111
Gilles

あなたはエイリアスを作ることができます:

alias Ruby='nocorrect Ruby'

Zshが私に.meteormeteorと入力したとき。自動修正はまだ有用な場合があるためです。

19
manafire

オートコレクト機能が時々迷惑になることがあると思います。だから私は私の〜/ .zshrcで、

DISABLE_CORRECTION="true"
14
gprasant

しばらく前に更新した後、不要なcommand auto-correctionが有効になりました。同じことがあなたに起こり、それを元に戻したい場合は、〜/ .zshrcファイルでそれを作成する必要があります:
# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="false"

または以下のようにコメントしてください:
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"

2
SylvesterAbreu