2012-08-11 5 views
7

मैं सभी zsh सेटिंग्स के लिए वर्तमान मान कैसे देखूं?डिफ़ॉल्ट zsh सेटिंग्स को देखने के लिए कैसे करें (HISTSIZE, SAVEHIST, ...)

उदा।, वर्तमान में मेरे पास इतिहास और SAVEHIST सेट नहीं है, इसलिए env | grep HIST और set | grep HIST कुछ भी नहीं दिखाएं। तो फिर मैं कैसे देख सकता हूं कि डिफ़ॉल्ट मानों का उपयोग किया जा रहा है?

उत्तर

7

पार्सिंग दस्तावेज़ या स्रोत कोड को छोड़कर एक अपरिभाषित चर के लिए डिफ़ॉल्ट मान प्राप्त करने का कोई विकल्प नहीं है।

HISTSIZE और SAVEHIST सेटिंग्स नहीं हैं, वे विशेष चर हैं। सभी चर सूचीबद्ध करने का एक तरीका है, लेकिन मुझे उन लोगों को सूचीबद्ध करने का कोई तरीका नहीं है जो विशेष हैं और सेटिंग्स के रूप में उपयोग किए जाते हैं।

चर के रूप में लागू पैरामीटर सूचीबद्ध करने में आपकी सहायता के लिए, zsh/parameter मॉड्यूल (zmodload zsh/parameter इसे लोड करने के लिए) है। इसमें एक सहयोगी सरणी $parameters है जहां कुंजी परिवर्तनीय नाम हैं और मान परिवर्तनीय प्रकार के वर्णन हैं। HISTSIZE और SAVEHIST दोनों integer-special के रूप में दिखाई देते हैं। HISTCHARSscalar-special के रूप में दिखाई देता है। ध्यान दें कि RANDOM यहां HISTSIZE: integer-special जैसा दिखाई देता है, इसलिए आप विकल्पों के रूप में उपयोग किए जाने वाले विशेष चर प्राप्त करने के लिए इसका उपयोग नहीं कर सकते हैं। लेकिन आप man zshparam के PARAMETERS USED BY THE SHELL अनुभाग का उपयोग कर सकते हैं।

मुझे किसी भी विकल्प के बारे में पता नहीं है जो आपको उन पैरामीटर के डिफ़ॉल्ट मान निर्धारित करने की अनुमति देगा, पार्सिंग दस्तावेज़ या स्रोत कोड को छोड़कर।

# setopt | grep hist 
nobanghist 
extendedhistory 
histfcntllock 
histignorealldups 
histignorespace 
histnostore 
histreduceblanks 
histsavenodups 
histverify 
incappendhistory 

आप गैर डिफ़ॉल्ट सेटिंग्स देखना चाहते हैं:

यदि कोई तर्क आपूर्ति की जाती है, वर्तमान में सेट सभी विकल्प के नाम मुद्रित कर रहे हैं। फॉर्म को चुना गया है ताकि वर्तमान अनुकरण के लिए डिफ़ॉल्ट विकल्पों से अंतर को कम किया जा सके (डिफ़ॉल्ट इम्यूलेशन मूल zsh होने के नाते, zshoptions (1) में दिखाया गया है)। अनुकरण के लिए डिफ़ॉल्ट रूप से विकल्प जो उपसर्ग के साथ दिखाए जाते हैं, वे केवल तभी बंद होते हैं, जबकि अन्य विकल्प उपसर्ग संख्या के बिना दिखाए जाते हैं और केवल तभी होते हैं। विकल्प के अलावा उपयोगकर्ता द्वारा डिफ़ॉल्ट स्थिति में बदल दिया गया है, शैल द्वारा स्वचालित रूप से सक्रिय किए गए किसी भी विकल्प (उदाहरण के लिए, SHIN_STDIN या INTERACTIVE) सूची में दिखाया जाएगा। प्रारूप को KSH_OPTION_PRINT विकल्प द्वारा आगे संशोधित किया गया है, हालांकि इस मामले में बिना किसी उपसर्ग के या बिना विकल्पों को चुनने के लिए तर्क समान रहता है।

यह भी उपयोग करने के लिए समझ में आता है:

# unsetopt | grep hist 
noappendhistory 
cshjunkiehistory 
histallowclobber 
nohistbeep 
histexpiredupsfirst 
histfindnodups 
histignoredups 
histlexwords 
histnofunctions 
nohistsavebycopy 
histsubstpattern 
sharehistory 

कोई तर्क आपूर्ति की जाती है, तो सभी विकल्प वर्तमान में सेट नहीं के नाम मुद्रित कर रहे हैं।

या सिर्फ मदद का पालन करें और का उपयोग

# setopt kshoptionprint 
# setopt | grep hist 
noappendhistory  off 
nobanghist   on 
cshjunkiehistory  off 
extendedhistory  on 
histallowclobber  off 
nohistbeep   off 
histexpiredupsfirst off 
histfcntllock   on 
histfindnodups  off 
histignorealldups  on 
histignoredups  off 
histignorespace  on 
histlexwords   off 
histnofunctions  off 
histnostore   on 
histreduceblanks  on 
nohistsavebycopy  off 
histsavenodups  on 
histsubstpattern  off 
histverify   on 
incappendhistory  on 
sharehistory   off 

ध्यान दें कि setopt और unsetopt मैच के उत्पादन में जब kshoptionprint विकल्प प्रयोग किया जाता है।

+0

धन्यवाद, लेकिन यह केवल बूलियन सेटिंग्स को दर्शाता है। यह HISTSIZE और SAVEHIST नहीं दिखाता है जो पूर्णांक सेटिंग्स हैं। –

+0

@RobBednark वे सेटिंग्स नहीं हैं। वे विशेष चर हैं। * सभी * चर सूचीबद्ध करने का एक तरीका है, लेकिन मुझे केवल उन लोगों को सूचीबद्ध करने का कोई तरीका नहीं है जो विशेष हैं और सेटिंग्स के रूप में उपयोग किए जाते हैं। – ZyX

+0

और कुछ विशेष चर (जिन्हें सी मॉड्यूल में परिभाषित किया गया है) पूरी तरह से सूचीबद्ध नहीं हैं (वे 'सेट' आउटपुट में दिखाई देते हैं, लेकिन बिना किसी मूल्य के)। – ZyX

0

मुझे आपके बारे में पता नहीं है ...(मेरा मतलब, i do use .prezto), लेकिन यह "स्वतः पूर्ण" मैं setoptटैब प्रवेश करते समय मिलता है ...

enter image description here

जो मेरे जैसे उपयोगी चीजें कह रहा है ..

-- zsh options (set) -- noaliases noautoresume nohashdirs nohistverify nonomatch ...

और

-- zsh options (unset) -- allexport cshjunkiehistory hashexecutablesonly kshglob nullglob singlecommand ...

4

वर्तमान मूल्य दिखाने के लिए, कि क्या आप इसे सेट या नहीं किया है (इस स्थिति में यह डिफ़ॉल्ट मान से पता चलता): कोशिश @ZyX के लिए

➜ ~ echo $SAVEHIST 
10000 
➜ ~ echo $HISTSIZE 
10000 
संबंधित मुद्दे