आंशिक रूप से zsh के स्वतः पूर्ण को निष्क्रिय कैसे करें


36

Zsh का स्वत: सुधार कार्य मेरे लिए बहुत उपयोगी है, लेकिन यह हमेशा उचित परिणाम नहीं देता है।

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

फिर भी मैं जो चाहता हूं, वह कभी एक विकल्प की तरह नहीं है जो इसे हमेशा की तरह आदेशों को सही करने के लिए रोक सकता है।

मैं यह कैसे कर सकता हूँ?

जवाबों:


53

आप zsh को सूचित कर सकते हैं कि यह आपके 'zshrc' में उपसर्ग 'nocorrect' (उदाहरण के लिए: http://dzen.geekmode.org/wiki/wiki/gi/-main/ZshConfiguration ) पर उन्हें उपकृत करके विशिष्ट आदेशों पर स्वत: सुधार नहीं करना चाहिए। :

alias vim='nocorrect vim' 

वैकल्पिक रूप से - यदि यह श्वेतसूची प्रक्रिया बहुत निराशाजनक हो जाती है - तो आप अपने .zvrc में निम्नलिखित के साथ पूरी तरह से स्वतः पूर्ण स्विच कर सकते हैं।

Zsh उपयोग के नए संस्करणों के लिए:

 unsetopt correct

पुराने संस्करणों के लिए zsh का उपयोग करें:

 unsetopt correct-all

जोड़ने के लिए संशोधित: यहाँ इस विषय पर एक पिछली चर्चा है - एक्सशर्ट टू जेडश करेक्ट फीचर?


1
जब यह vim कमांड शुरू होने के लिए काम करता है, लेकिन इस तरह के कमांड के लिए काम नहीं करता है bundle exec cucumber <some_specific_feature> && bundle exec rspec <some_specific_spec>। मैंने rspec के लिए एक उपनाम जोड़ा है। कोई सुझाव?
मार्टिन फुट

@MartinFoot: यदि आप ओह-माय-ज़श का उपयोग करते हैं तो बंडलर प्लगइन आपकी मदद कर सकता है: coderwall.com/p/weixga
brafales

1
नए संस्करणों में unsetopt correct_allबदल गयाunsetopt correct
एंटीटॉक्सिक

@antitoxic: मैं यह देखना चाहता था कि संस्करण संख्याओं के संदर्भ में "नया संस्करण" क्या है, लेकिन आज के git चेकआउट (zsh 5.0.2 + 31433) में भी zshoptionsmanpage बताता है CORRECT_ALL: एक पंक्ति में सभी तर्कों की वर्तनी को सही करने का प्रयास करें। । इसके अलावा, दोनों आदमी के लिए प्रविष्टियों CORRECTऔर CORRECT_ALLकम से कम 2008 के बाद से नहीं बदला। तो मैं अपनी बात याद कर रहा हूँ; क्या आप कृपया बता सकते हैं कि आप अपने बयान के लिए क्या कर रहे हैं ?!
प्रातः

मैं जोड़ना चाहूंगा: लोड ऑर्डर मायने रखता है! सुनिश्चित करें कि आप ओह-माई-ज़श के सोर्सिंग के बाद अनसेटसेट को जोड़ दें ... मेरा बहुत समय बर्बाद हुआ।
oma

22

मुझे लगता है कि मुझे इसका बेहतर जवाब मिला।

Im संस्करणों और व्हाट्सएप के बारे में निश्चित नहीं है, लेकिन ऐसा लगता correct_allहै कि यह केवल कमांड को सही करने के लिए आदेशों और तर्कों को सही करने के लिए है correct, इसलिए यह कष्टप्रद व्यवहार को समाप्त करता है।

यह मेरी कॉन्फिग फाइलों में है

unsetopt correct_all  
setopt correct

यह वास्तविक उत्तर है। correct-allकिसी भी दस्तावेज़ में एक वास्तविक विकल्प नहीं दिख रहा है, और न ही वास्तविक जीवन में। यह है correct_all। धन्यवाद!
जमीमे


आप मेरे हीरो हैं!
मार्टिन के

यदि आप ओह-माय-ज़श का उपयोग करते हैं, तो सुनिश्चित करें कि आपने दो पंक्तियाँ रखीं source $ZSH/oh-my-zsh.shअन्यथा यह काम नहीं करता है। ऐसा लगता है कि ओह-माई-ज़श सही से विकल्प को रीसेट करेगा_
मैट

0

मैं का उपयोग करते समय समस्या थी rspecके माध्यम से zeus, और मैं के रूप में वे सब कुछ के लिए काम करने के लिए लग रहे हैं ऑटो सही सेटिंग्स रखना चाहते हैं सिवाय rspec , इसलिए मैं इसके बाद के संस्करण अन्य सुझावों में से किसी की कोशिश कभी नहीं।

मुझे जो करना था वह nocorrectज़ीउस ही कर रहा था :

उर्फ ज़ीउस = 'शून्य ज़ीउस'


0

मैं उपयोग करके स्वतः पूर्णता को अक्षम करने में सक्षम था

ENABLE_CORRECTION="false"

मैं zsh संस्करण 5.7.1 का उपयोग कर रहा हूं


-1

यदि आप ओह-माय-ज़श का उपयोग करते हैं:

unsetopt को correct_all

सभी स्वत: सुधार अक्षम कर देगा।

अपवादों के लिए उपनाम सेट करना (नीचे लिंक देखें) मेरे लिए चाल नहीं करता है।

https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/correction.zsh

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.