zshの自動修正を部分的に無効にする方法


36

zshの自動修正機能は非常に役立ちますが、常に適切な結果が得られるとは限りません。

~$ sudo vim somefile
zsh: correct 'vim' to '.vim' [nyae]? 

しかし、私が欲しいのは、永久にそれらのようなコマンドを修正するためにそれを止めることができる、決してオプションのようなものです。

これどうやってするの?

回答:


53

zshに.zshrcのプレフィックス「nocorrect」でエイリアスを付けることにより、特定のコマンドで自動修正しないことをzshに通知できます(例:http ://dzen.geekmode.org/wiki/wiki.cgi/-main/ZshConfiguration ) :

alias vim='nocorrect vim' 

または、このホワイトリスト登録プロセスが非常にイライラする場合は、.zshrcで以下を使用して自動修正を完全にオフにすることができます。

zshの新しいバージョンの場合:

 unsetopt correct

古いバージョンのzshの場合:

 unsetopt correct-all

追加するために修正されました:これは、このテーマに関する以前の議論です-zshのすべての機能の修正


1
これは、vimコマンドが開始されたときに機能しますが、などのコマンドでは機能しませんbundle exec cucumber <some_specific_feature> && bundle exec rspec <some_specific_spec>。rspecのエイリアスを追加しました。任意のヒント?
マーティンフット

@MartinFoot:あなたはああ、私の-zshのバンドラプラグインを使用する場合は、あなたを助けるかもしれない:coderwall.com/p/weixgaは
brafales

1
新しいバージョンでは、次のようにunsetopt correct_all変更されましたunsetopt correct
抗毒性

@antitoxic:バージョン番号の観点から「新しいバージョン」の意味を調べたかったのですが、今日のgitチェックアウト(zsh 5.0.2 + 31433)でもzshoptions次のように記載されていCORRECT_ALLます:行のすべての引数のスペルを修正して。さらに、男性のためのエントリの両方CORRECTCORRECT_ALL私はあなたのポイントを逃していますので、2008年以降、少なくとも変更されませんでした。あなたが声明に導くものを説明してもらえますか?!
mpy

追加したいのは、読み込み順序が重要だということです!oh-my-zshを調達した後、unsetoptを追加してください...私の時間の多くを無駄にしました。
oma

22

これに対するより良い答えを見つけたと思います。

バージョンやその他のことについてはわかりませんが、correct_allコマンド引数をcorrect修正するように思われますが、コマンドのみを修正するため、この迷惑な動作を排除します。

これは私の設定ファイルにあるものです

unsetopt correct_all  
setopt correct

これが実際の答えです。correct-all私が見つけることができるドキュメントでも、実生活でも、本当のオプションではないようです。ですcorrect_all。ありがとう!
ジェミー

zsh.sourceforge.net/Intro/intro_16.htmlからsetopt correctall
zzapper

あなたは私のヒーローです!
マーティンK

oh-my-zshを使用する場合は、必ず2行をsource $ZSH/oh-my-zsh.sh追加してください。そうしないと機能しません。oh-my-zshはオプションcorrect_allをリセットするようです。
マット

0

rspecvia を使用するときに問題が発生しましたが、を除くzeus他のすべてで機能するように見えるため、自動修正設定を維持したいので、上記の他の提案を試したことはありません。 rspec

私がしなければならなかったことは、nocorrectゼウスそのものでした:

エイリアスzeus = 'nocorrect zeus'


0

を使用して自動修正を無効にすることができました

ENABLE_CORRECTION="false"

zshバージョン5.7.1を使用しています


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.