zsh の `mv` コマンドを使用するときにスペル修正を回避する (できれば不器用でない) 方法はありますか?

zsh の `mv` コマンドを使用するときにスペル修正を回避する (できれば不器用でない) 方法はありますか?

私はzshが大好きで、スペル修正機能は便利だと思っていますが、明らかに修正すべきではありません。例えば、私は

mv iso_ iso

そしてそれは答えた

zsh: correct 'iso' to 'iso_' [nyae]?

考えてみてください。「iso」を「iso_」に修正すると、実行しようとしていたことになります。

mv iso_ iso_

これは決して意味をなさないでしょう。したがって、これは実際には zsh の設計上の欠陥であり、全面的に修正される必要があります。しかし、(少なくとも私が使用しているバージョンでは) 修正されておらず、修正される可能性も低いことを考えると、修正するための設定はありますか? 修正には、不格好でない方法が望ましいです。mvたとえば、 のエイリアスは不格好です。

答え1

mvこれを修正する簡単な方法があります。 、、cpおよびの動作を修正するにはmkdir、.zshrc ファイルに以下を追加します。

alias mv='nocorrect mv'
alias cp='nocorrect cp'
alias mkdir='nocorrect mkdir'

これはいくつかの理由から理想的な解決策ではありませんが、するコマンドのスペルを修正したいとしますmv。たとえば、次のコマンドを実行しようとした場合:

mv directory_a/sub/sub/some_file directory_b/sub/sub/

しかし、ディレクトリの1つを間違えて入力してしまいました

mv directory_a/sub/sub/some_file directry_b/sub/sub/

スペルの修正が役に立つかもしれません。(これは明らかに不自然な例ですが、要点は理解していただけると思います。)

答え2

correct_allまあ、そのオプションの効果が気に入らない場合は、使用しないでください。

ちなみに、デフォルトでは設定されていません。ネット上では(どの設定かは言いませんが)人気のある設定があり、何らかの理由で、そのオプションを全員に設定するのは面白いアイデアだと考えられていますが、多くのアプリケーションでは意味がありません。コマンドライン引数はファイル名のスペル修正の対象です... それはおかしいです。

長い話を短くするsetopt correctと:ない setopt correctall

ファイル名のスペルに困ったときは、zsh の補完システムの と_approximate補完子が役立ちます_correct。詳細については、zshcompsys(1)マニュアル ページを参照してください。

関連情報