Zsh'ın otomatik düzeltmesini kısmen devre dışı bırakma


36

Zsh'nin otomatik düzeltme işlevi benim için çok yararlıdır ancak her zaman uygun bir sonuç vermez.

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

Yine de istediğim şey, sonsuza dek olduğu gibi komutları düzeltmek için onu durdurabilecek asla seçenek gibi bir şey .

Bunu nasıl yapabilirim?

Yanıtlar:


53

Zsh'ye, belirli komutlarda, .zshrc'nizde 'nocorrect' önekini takma olarak otomatik olarak düzeltmemesi gerektiğini bildirebilirsiniz (burada örnek: http://dzen.geekmode.org/wiki/wiki.cgi/-main/ZshConfiguration ) :

alias vim='nocorrect vim' 

Alternatif olarak - bu beyaz liste işlemi çok sinir bozucu hale gelirse - .zshrc'nizde aşağıdakileri yaparak otomatik düzeltmeyi tamamen kapatabilirsiniz.

Zsh kullanımının daha yeni sürümleri için:

 unsetopt correct

zsh kullanımının eski sürümleri için:

 unsetopt correct-all

Eklemek için değiştirildi: işte bu konuyla ilgili önceki bir tartışma - zsh correctall özelliğinin istisnaları?


1
Bunun için vim komutu başlangıçta iken çalışır, ancak gibi komutlar için çalışmaz bundle exec cucumber <some_specific_feature> && bundle exec rspec <some_specific_spec>. Rspec için bir takma ad ekledim. Herhangi bir ipucu?
Martin Foot

@MartinFoot: oh-my-zsh kullanıyorsanız, paketleyici eklentisi size yardımcı olabilir: coderwall.com/p/weixga
brafales

1
Yeni sürümlerde olarak unsetopt correct_alldeğiştirildiunsetopt correct
antitoxic

@antitoxic: Sürüm numaraları açısından "yeni sürümün" ne anlama geldiğine bakmak istedim, ancak bugünkü git kasada bile (zsh 5.0.2 + 31433) zshoptionsmanpage bunun için belirtildi CORRECT_ALL: Bir satırdaki tüm argümanların yazımını düzeltmeye çalışın . Ayrıca, her iki adam girişleri için CORRECTve CORRECT_ALLsenin noktayı kaçırıyorum Yani 2008 yılından bu yana en az değişmemiştir; İfadenize neyin yol açtığını açıklayabilir misiniz ?!
mpy

Eklemek isterim: yükleme emri önemlidir! Oh-my-zsh'ı sağladıktan sonra unsetopt eklediğinizden emin olun.
oma

22

Sanırım buna daha iyi bir cevap buldum.

Sürümleri ve ne olduğuna emin değilim, ancak görünen correct_allkomutları ve argümanları düzeltmek gerekiyor , correctsadece komutları düzeltir, bu yüzden bu sinir bozucu davranışı ortadan kaldırıyor.

Bu benim config dosyalarımda ne var

unsetopt correct_all  
setopt correct

Asıl cevap budur. correct-allbulabildiğim herhangi bir belgede ya da Gerçek Hayatta gerçek bir seçenek olarak görünmüyor. Bu correct_all. Teşekkürler!
Jamey


Kahramanımsın!
Martin K,

Oh-my-zsh kullanıyorsanız, iki satırı koyduğunuzdan emin olun, source $ZSH/oh-my-zsh.shaksi takdirde çalışmaz. Görünüşe göre oh-my-zsh seçeneği corr_all 'u sıfırlayacak.
Matt

0

Kullanırken sorun vardı rspecaracılığıyla zeusve onlar her şey için işe görünüyor gibi otomatik düzeltme ayarları tutmak istiyorum hariç rspec yukarıda diğer önerilerden hiçbirini hiç denemedim bu yüzden.

Yapmam gereken, nocorrectzeus'un kendisi idi:

alias zeus = 'doğru olmayan zeus'


0

Kullanarak otomatik düzeltmeyi devre dışı bıraktım

ENABLE_CORRECTION="false"

5. sürümü zsh kullanıyorum


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.