चर या सक्षम मोड सेट करते समय nil और 0, या t और 1 के बीच चयन कैसे करें


19

मैं समझता हूं कि nil, 0और / या -1कुछ सुविधाओं को अक्षम करने के लिए उपयोग किया जाता है और t, 1और / या +1कुछ सुविधाओं को सक्षम करने के लिए उपयोग किया जाता है। मामूली मोड के लिए चर या सक्षम / अक्षम करते समय, मुझे कौन सा चुनना चाहिए?

मैंने इन सभी भिन्नताओं को एक बिंदु या किसी अन्य पर उपयोग किया है। यह मुझे आश्चर्यचकित करता है कि क्या वास्तव में उनके बीच कोई अंतर है। मैंने देखा है कि कभी-कभी उपयोग 0करना मेरे लिए काम नहीं करता है, जबकि nilकरता है। क्या उनके उपयोग किए जाने के अंतर हैं?


1
मैंने प्रश्न को और स्पष्ट रूप से लिखा है कि मुझे लगता है कि आप क्या पूछ रहे हैं। अगर मैं गलत हूं तो संपादन को वापस करने के लिए स्वतंत्र महसूस करें।
nispio

@nispio आपके संपादन ठीक हैं। आपका बहुत बहुत धन्यवाद। :)
greduan

जवाबों:


17

टी एल; डॉ

किसी भी चर को निर्धारित करने से पहले, आपको पता होना चाहिए कि उस चर की व्याख्या कैसे की जानी है। इसी तरह, किसी भी फ़ंक्शन को कॉल करने से पहले (जो मामूली मोड्स को टॉगल करने के लिए इस्तेमाल किया जाता है), आपको पता होना चाहिए कि उस फ़ंक्शन के तर्कों की व्याख्या कैसे की जाती है।

फ़ंक्शन या चर के लिए प्रलेखन को देखने के लिए उपयोग करें C-hfऔर C-hvप्रश्न में चर। इसमें उन मूल्यों को निर्दिष्ट किया जाना चाहिए जो अपेक्षित हैं।

"नॉन-निल" का शाब्दिक अर्थ है कुछ भी जो नहीं है nil। इसमें 0नकारात्मक संख्याएँ शामिल हैं।


मामूली मोड

चलो एक विशिष्ट उदाहरण लेते हैं। इसके लिए फंक्शन डॉक्यूमेंट देखने के लिए टाइप करें C-hfblink-cursor-mode और हिट RETकरें blink-cursor-mode:

(ब्लिंक-कर्सर-मोड और वैकल्पिक ARG)

कर्सर ब्लिंकिंग (ब्लिंक कर्सर मोड) टॉगल करें। एक उपसर्ग तर्क ARG के साथ, ARG धनात्मक होने पर ब्लिंक कर्सर मोड सक्षम करें, और अन्यथा इसे अक्षम करें। यदि लिस्प से कॉल किया जाता है, तो मोड सक्षम करें यदि ARG छोड़ा गया है या शून्य है।

हम निम्नलिखित में से किसी भी तरीके से ब्लिंक कर्सर मोड को सक्षम कर सकते हैं:

(blink-cursor-mode)           ; Omitted argument
(blink-cursor-mode 1)         ; Positive argument
(blink-cursor-mode t)         ; True argument
(blink-cursor-mode nil)       ; nil argument (don't use this)

ध्यान दें कि tडॉक स्ट्रिंग विशेष रूप से इसका उल्लेख नहीं करते हुए भी, का एक तर्क काम करेगा। जबकि यह अक्सर ऐसा होता है, आपकी सबसे सुरक्षित शर्त यह है कि डॉक स्ट्रिंग आपको उपयोग करने के लिए क्या कहता है, जो इस मामले में एक सकारात्मक मूल्य है।

इसके अलावा, ध्यान दें कि एक तर्क nilकाम करेगा। मैं nilइस तरह से इसके खिलाफ सिफारिश करूंगा क्योंकि यह आपकी मंशा को स्पष्ट नहीं करता है। अगर मैं आपके लिस्प कोड पर संदेह कर रहा था और मैंने एक nilतर्क देखा , तो मैं मानूंगा कि आप मामूली मोड को निष्क्रिय करना चाहते थे।

हम blink-cursor-modeनिम्नलिखित तरीकों से भी अक्षम कर सकते हैं:

(blink-cursor-mode 0)         ; Non-positive argument
(blink-cursor-mode -1)        ; Negative argument

सूचना फिर से कि nilहै नहीं यह मामूली मोड अक्षम करने के तरीकों में से एक। यह आपके द्वारा सामना की जाने वाली लगभग किसी भी मामूली विधा का सच है।


चर

अब एक चर का एक उदाहरण देखते हैं। वेरिएबल के डॉक्यूमेंटेशन को देखने के लिए टाइप C-hvtruncate-linesऔर हिट RETकरें truncate-lines:

truncate- लाइनें 'C स्रोत कोड' में परिभाषित एक चर है।

गैर-शून्य का मतलब निरंतरता रेखाओं को प्रदर्शित नहीं करना है। इसके बजाय, टेक्स्ट की प्रत्येक पंक्ति को केवल एक स्क्रीन लाइन दें।

आप निम्नलिखित में से किसी भी तरीके से ट्रंकेशन को चालू कर सकते हैं:

(setq truncate-lines t)       ; Boolean true value (non-nil)
(setq truncate-lines 1)       ; Positive value (non-nil)
(setq truncate-lines 0)       ; Zero value (non-nil)
(setq truncate-lines -1)      ; Negative value (non-nil)

यह आपको आश्चर्यचकित कर सकता है 0और -1यह काम करेगा। फिर से, मैं उनका उपयोग करने के खिलाफ सिफारिश करूंगा क्योंकि यह आपके इरादों को स्पष्ट नहीं करता है।

ट्रंकेशन को निष्क्रिय करने का एकमात्र तरीका यह है:

(setq truncate-lines nil)     ; nil value

दूसरे शब्दों में, आप truncate-linesसंख्याओं, अक्षरों, तारों, सूचियों, या किसी भी अन्य चीज़ों के बराबर सेट कर सकते हैं, जब तक कि यह इसका मूल्यांकन नहीं करता है, nilयह रद्दीकरण को सक्षम करेगा । (लेकिन आपको वास्तव में साथ रहना चाहिए tया 1)।


इसने मेरे सवाल का जवाब दिया। धन्यवाद। :)
greduan

0

ये सभी अलग-अलग चीजें हैं। 0, 1, और -1 अलग-अलग संख्याएँ हैं; nilएक प्रतीक है।

वे प्रत्येक जगह पर कई अलग-अलग चीजों के लिए उपयोग किए जाते हैं। पता लगाने के लिए प्रत्येक के लिए प्रयोग किया जाता है एक विशेष संदर्भ में , उस संदर्भ के लिए दस्तावेज़ से परामर्श । और इसमें विभिन्न मोड को चालू या बंद करने के संदर्भ शामिल हैं, जो चर और अन्य संदर्भों का उपयोग करके विभिन्न चीजों को सक्षम और अक्षम करते हैं।

कुल मिलाकर:

  • उपयोगी होने के लिए आपका प्रश्न बहुत व्यापक है।
  • आपको डॉक्टर से परामर्श करने की आवश्यकता है: (ए) सामान्य रूप से, इमैक्स लिस्प के बारे में थोड़ा जानने के लिए, और (बी) विशेष संदर्भों में (उदाहरण के लिए, किसी विशेष मोड के लिए डॉक्टर)।

किसी दिए गए मोड के लिए डॉक्टर आम तौर पर आपको बताता है कि इसे कैसे चालू और बंद करना है। यदि यह आपको किसी चीज़ के लिए 1 या -1 nilया गैर- का उपयोग करने के लिए कहता nilहै, तो इसका मतलब है। मोड को चालू और बंद करने के लिए कुछ सामान्य नियम हैं (अंतःक्रियात्मक और लिस्प कोड से)। लेकिन ऐसा लगता है कि आपको वास्तव में कुछ सामान्य पृष्ठभूमि प्राप्त करके शुरू करने की आवश्यकता है।

Emacs से मदद और अन्य जानकारी माँगने का तरीका जानने के लिए Emacs doc से सलाह लें : चर के मूल्य की जाँच कैसे करें, चर या फ़ंक्शन के डॉक्टर को कैसे देखें (किसी फ़ंक्शन को चालू / बंद करना सहित) , और इसी तरह।

आप Emacs हेल्प सिस्टम के बारे में जानने के लिए ( ) का उपयोग करके शुरू कर सकते हैं। और वहाँ से निर्माण।C-h C-hCtrl-h Ctrl-h

C-h rआपको Emacs मैन्युअल में डालता है। Emacs ट्यूटोरियल का प्रयास करें C-h t:। और Emacs Wiki Newbie पृष्ठ और LearningEmacs के बारे में पृष्ठ देखें ।

Emacs Lisp के बारे में सीखना शुरू करने के लिए: C-h iफिर नामित नाम चुनें Emacs Lisp Intro, और पढ़ना शुरू करें। और लर्निंग Emacs लिस्प के बारे में Emacs Wiki पृष्ठ देखें ।


1
आपके उत्तर के लिए धन्यवाद। :) मुझे लगता है कि मैं उन संदर्भों के बारे में पूछ रहा था जिनका वे उपयोग कर रहे हैं। उन्हें यह स्पष्ट करना चाहिए था। धन्यवाद। :) मैं प्रतीकों के बीच मुख्य अंतर से अवगत हूं, जैसे कि कैसे nilतार्किक झूठे के बराबर है और tसच है और बाकी सिर्फ संख्याएं हैं। लेकिन मुझे यकीन नहीं था कि वे आमतौर पर किस संदर्भ में उपयोग किए जाते थे।
greduan

देखें कि मैंने मोड के बारे में सामान्य जानकारी (मैनुअल से जुड़ी) के बारे में क्या लिखा है। इस तरह की सामान्य जानकारी के बावजूद, आपको हमेशा उस विशेष मोड के लिए डॉक्टर की जांच करके शुरू करना चाहिए जिसे आप रुचि रखते हैं। यह आपको बताएगा कि इसे चालू या बंद करने के लिए क्या उपयोग करना है। यदि ऐसा नहीं होता है, तो मैनुअल में वर्णित सामान्य व्यवहार लागू होता है, लेकिन विशेष मोड डॉक्टर के साथ शुरू होता है । बिंदु उन चीजों में और खुद के बीच अंतर नहीं है। इस बिंदु में अंतर है कि वे विशेष संदर्भों में कैसे उपयोग किए जाते हैं। उसके लिए, संदर्भ पूछकर शुरू करें।
ड्रू

1
ठीक। आपका बहुत बहुत धन्यवाद। :) कूल है कि Emacs यह अपने एसई साइट एह है?
greduan

1
पुनश्च चिंता मत करो। मुझे यकीन है कि अन्य लोग यहाँ कुछ सामान्य नियमों के बारे में फलियाँ फैलाएँगे । ;-) मैं इस बारे में डॉक्टर से सलाह लेना (क) पसंद करता हूं, क्योंकि यह सिर्फ इस सीख को ध्यान में रखकर लिखा गया था, और (बी) आपको हमेशा अपने बारे में विशेष विधा से पूछकर शुरू करना चाहिए। सामान्य नियम ट्रम्प मोड विशेष नहीं करते हैं, और यदि आप बाद वाले को अनदेखा करते हैं तो आप चीजों को याद करेंगे।
ड्रू

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