बाहर निकलने पर 'कम' कमांड क्लियरिंग स्क्रीन - इसे कैसे बंद करें?


79

lessबाहर निकलने पर स्क्रीन को साफ़ नहीं करने के लिए प्रोग्राम को मजबूर कैसे करें ?

मैं इसे git logकमांड की तरह व्यवहार करना चाहता हूं :

  • यह हाल ही में देखे गए पृष्ठ को बाहर निकलने पर स्क्रीन पर छोड़ देता है
  • यह बाहर नहीं lessहै, भले ही सामग्री एक स्क्रीन (कोशिश में फिट बैठता है git log -1)

कोई विचार? मुझे lessमैनुअल में कोई उपयुक्त विकल्प नहीं मिला और न ही env चर, मुझे संदेह है कि यह कुछ env चर के माध्यम से हालांकि सेट है।


संभवतः आपको कम के स्क्रॉलिंग पहलू की आवश्यकता है, इसलिए moreयह उपयुक्त नहीं होगा?
स्वेन्द

जवाबों:


95

lessबाहर निकलने पर स्क्रीन को साफ़ करने से रोकने के लिए , उपयोग करें -X

मैनपेज से:

-एक्स या --नो-इनिट

टर्मिनल पर टर्मिंक इनिशियलाइज़ेशन और डीइनएटिलाइज़ेशन स्ट्रिंग्स भेजने में अक्षम। यह कभी-कभी वांछनीय होता है यदि विखंडन स्ट्रिंग कुछ अनावश्यक करता है, जैसे स्क्रीन को साफ़ करना।

यदि सामग्री एक स्क्रीन पर फिट होती है तो कम बाहर निकलने के लिए, यह विकल्प है -F:

-F या --quit-if-one-screen

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

-Fहालांकि यह डिफ़ॉल्ट नहीं है, इसलिए यह आपके लिए कहीं पूर्व निर्धारित है। Env var चेक करें LESS


अति उत्कृष्ट! -X जो मेरे मन में था।
वोज्शिएक काज़मारेक

7
यह विशेष रूप से कष्टप्रद है अगर आप इसके बारे में जानते हैं, -Fलेकिन -Xतब नहीं , जब सिस्टम ऐसी जगह जाता है जो स्क्रीन को इनिट पर रीसेट करता है, तो छोटी फाइलें सरलता से प्रकट नहीं होंगी, बिना किसी स्पष्ट कारण के। ackजब मैं ACK_PAGER='less -RF'मैक पर अपनी सेटिंग लेने की कोशिश करता हूं, तो यह मेरे साथ होता है । बहुत बहुत धन्यवाद!
मार्का

@markpasc: यह इंगित करने के लिए धन्यवाद। मुझे यह एहसास नहीं था कि यह संयोजन इस प्रभाव का कारण होगा, लेकिन अब यह स्पष्ट है।
तिलक

7
यह मैन पेजर के लिए विशेष रूप से उपयोगी है, ताकि 'क्यू' कुंजी के साथ कम होने के बाद मैन पेज गायब न हों। अर्थात्, आप उस आदमी पृष्ठ में स्थिति पर स्क्रॉल करते हैं जिसे आप केवल इसके लिए रुचि रखते हैं जब आप जानकारी का उपयोग करने के लिए कम पेजर छोड़ देते हैं तो यह गायब हो जाता है। इसलिए, मैंने जोड़ा: export MANPAGER='less -s -X -F'मेरे द्वारा .bashrc मैन पेज की जानकारी को स्क्रीन पर रखने के लिए जब मैंने कम छोड़ दिया, ताकि मैं वास्तव में इसे याद रखने के बजाय इसका उपयोग कर सकूं।
माइकल गोल्डस्मिन

2
यह थोड़े बेकार है कि आपको यह तय lessकरना होगा कि जब आप बाहर निकलना शुरू करते हैं तो इसे कैसे व्यवहार करना चाहिए।
माइकल बूर

17

यदि आप चाहते हैं कि कमांड-लाइन विकल्पों में से कोई भी हमेशा डिफ़ॉल्ट हो, तो आप अपने .profile या .bashrc पर पर्यावरण परिवेश चर में जोड़ सकते हैं। उदाहरण के लिए:

export LESS="-XF"

उस लॉगिन सत्र से कम चलने पर हमेशा -X -F लागू करेगा।

कभी-कभी आदेशों को अलियास किया जाता है (कुछ वितरण में डिफ़ॉल्ट रूप से भी)। इसके लिए जाँच करने के लिए, टाइप करें

alias

तर्कों के बिना यह देखने के लिए कि क्या यह उन विकल्पों के साथ अलियास हो गया जो आप नहीं चाहते हैं। एक उपनाम के बजाय अपने $ PATH में वास्तविक कमांड चलाने के लिए, बस इसे बैक-स्लैश के साथ पेश करें:

\less

यह देखने के लिए कि क्या आपके वातावरण में एक LESS पर्यावरण चर निर्धारित है और व्यवहार को प्रभावित कर रहा है:

echo $LESS

2
वास्तव में, मैं export LESS="-XFR"इसलिए जोड़ता हूं कि रंग lessसाथ ही दिखते हैं ।
dotancohen

2
उसके लिए धन्यवाद! -XFअपने स्वयं के उत्पादन को तोड़ रहा था git diff, और -XFRदोनों दुनिया में सबसे अच्छा हो जाता है - कोई स्क्रीन-समाशोधन, लेकिन रंगीन git diffआउटपुट नहीं।
गाइल्स थॉमस

1

या बस इसे अपने वैश्विक git config में सेट करें:

git config --global core.pager 'less -FX'

इस तरह अन्य उपकरण अप्रभावित हैं (जो मुझे पसंद हैं)।

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