既存のコマンドを変更しようとしないでください。

既存のコマンドを変更しようとしないでください。

私はzshのコマンド自動修正機能が好きです。しかし、ここには迷惑な機能があります。時には、コマンドを実行しようとし、存在しないものを見つけてインストールし、再度実行しようとしますが、zshはまだ同じ修正を望んでいます。 Zshは、コマンドパスのハッシュを保存し、自動修正を実行してもハッシュを超えないため、これを行います。コマンドをインストールした後に変更すると、コマンドは実行されますが、実行しようとするたびに再度実行するか、組み込みコマンドを呼び出しnて実行中の各インスタンスでコマンドハッシュを更新する必要があります。nhash

私はzshがコマンドパスのハッシュを保存したいので、自動修正を保存したいと思います(つまり、通常どおりコマンド名を入力してキーを押すと、コマンドがEnter存在しない場合はzshが修正を提案します)。ただし、「コマンドが存在しない」というのは、$path該当命令が存在しないという意味ではなく、現在としては、その命令が開いていないという意味ではないかと思います。

再現段階:

$ mkdir /tmp/test
$ cp /bin/true /tmp/test/wibble
$ PATH=/tmp/test:/bin zsh -f -o correct
darkstar% wobble
zsh: correct 'wobble' to 'wibble' [nyae]? a
darkstar% cp /tmp/test/{wibble,wobble}
darkstar% wobble
zsh: correct 'wobble' to 'wibble' [nyae]? n

目的の動作:wobble存在する場合は、それを修正するように求められません。どうすればいいですか?

答え1

言ったようにおめでとうございます、を実行してハッシュテーブルを明示的に再生成できますrehash。この操作を手動で実行したくない場合は、次の項目に入力してくださいzshrc

zstyle ":completion:*:commands" rehash 1

zstyle詳細はマニュアルページにあり、スタイルzshmodule自体は に文書化されていますzshcompsys

関連情報