क्या स्क्रीन को साफ़ किए बिना "कम" बाहर निकलने का कोई तरीका है?


68

अपेक्षाकृत अक्सर, मैं खुद को छोड़ना चाहता हूं, lessलेकिन जो मैं स्क्रीन पर देख रहा था, उसे वापस छोड़ना चाहता हूं । क्या इसे करने का कोई तरीका है? समाधान?

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

मेरा डेस्कटॉप OSX है, लेकिन मैं RHEL और Ubuntu सर्वर का उपयोग करता हूं।


1
एक लंबे आउटपुट (जैसा कि git diffया में git log) पढ़ना less -Xमेरे टर्मिनल में स्क्रॉल बफर को ले जाएगा और पिछले आउटपुट का अधिकांश भाग निकाल देगा। मुझे अच्छा लगेगा अगर lessबाहर निकलने के समय बस आउटपुट के आखिरी स्क्रीनफुल के साथ बाहर निकल सके; यानी छोड़ने के बाद स्क्रॉल बफर के एक से अधिक पृष्ठ नहीं लिया जाएगा less। कोई विचार?
मुशीफिल 19

वैसे, -Rआमतौर पर की तुलना में एक सुरक्षित विकल्प है -r
मुशीफिल

धन्यवाद। उन सोच के लिए:-R is "Like -r, but only ANSI "color" escape sequences are output in "raw" form. Unlike -r, the screen appearance is maintained correctly in most cases."
स्टीव बेनेट

@ मुसिफिल शायद -सी?
वैनेसा फिप्स

@MatthewPhipps: मेरा अनुमान -cहै कि जब आप अंदर जाते हैं तो स्क्रीन को कैसे अपडेट किया जाता है less
मुशिफिल

जवाबों:


68

यह वास्तव में टर्मिनल एमुलेटर का एक फ़ंक्शन है जिसका आप उपयोग कर रहे हैं (xterm, gnome-terminal, konsole, screen)। एक वैकल्पिक स्क्रीन, या altscreen, जब इस तरह के रूप में कार्यक्रम शुरू हो जाता है lessया vimलागू कर रहे हैं। इस अल्टस्क्रीन में कोई इतिहास बफर नहीं है और जब आप प्रोग्राम से बाहर निकलते हैं तो तुरंत बाहर निकल जाते हैं, जो मूल स्क्रीन पर वापस आ जाता है जो पिछली विंडो सामग्री के इतिहास और प्लेसमेंट को पुनर्स्थापित करता है।

आप less"-X" तर्क पास करके एक ऑलस्क्रीन में लॉन्च होने से रोक सकते हैं ।

less -X /path/to/some/file

आप पर्यावरण चर के रूप में "-X" भी पास कर सकते हैं। इसलिए यदि आप उपयोग कर रहे हैं bash, तो इसे इसमें रखें ~/.bashrc:

export LESS="-X"

हालाँकि, यह दीमक (टर्मिनल क्षमता) आरंभीकरण और विखंडन को नष्ट कर देता है, इसलिए जब आप उपयोग करते हैं तो अन्य दृश्य lessदिखाई दे सकते हैं।

एक अन्य विकल्प यह होगा कि आप अपने screenविकल्प का उपयोग करें और सेट altscreen offकरें ~/.screenrclessस्क्रीन को साफ नहीं करेगा और रंग प्रारूपण को संरक्षित करना चाहिए। संभवतः tmuxएक ही विकल्प होगा।

यह ब्लॉग प्रविष्टि समस्या का वर्णन करती है और gnome-terminalबदलती सफलता के साथ कुछ अलग समाधान प्रदान करती है ।


2
उत्तम। क्या कोई नकारात्मक पहलू है?
स्टीव बेनेट

2
रुको, मैंने पहले से ही एक खोज की है - git log(और शायद अन्य रंगीन कमांड) का आउटपुट गड़बड़ है।
स्टीव बेनेट

1
@SteveBennett यह काफी छोटा है, मैं इसे एक उपनाम alias les="/usr/bin/less -X"
बनाऊंगा

4
अरे, मुझे लगता है कि मैं सिर्फ इस git logमुद्दे पर एक मारक खोज की export LESS="-r -X":। (कोई विचार क्या के साइड इफेक्ट है कि कर रहे हैं ...)
स्टीव बेनेट

5
दरअसल, चर को gitसेट करता LESSहै FRSXयदि यह पेजर चलाता है तो यह परेशान होता है, इसलिए आप बस LESSपरेशान छोड़ सकते हैं और lessस्वचालित रूप से साथ चलेंगे -FRSX। के लिए देखो core.pagerमें git-config(1)अधिक जानकारी के लिए।
मुशायफिल

4

जॉर्ज का समाधान मेरे लिए कारगर नहीं था, लेकिन इस समाधान ने ( उनके जवाब में जुड़े ब्लॉग प्रविष्टि से) किया।

  1. $ infocmp -I xterm > ~/xterm-noclear.src

  2. संपादित करें ~ / xterm-noclear.src

    • दूसरी पंक्ति में नाम बदलकर 'xterm' से 'xterm-noclear', या जो कुछ भी आपको सूट करता है (यदि यह मौजूद है तो 'xterm-debian' भी बदल दें)

    • निर्देश 'स्माइकी' और 'rmcup' (जैसे "smcup = \ E [? 1049h," और "rmcup = \ E [1049l,") को हटा दें

  3. $ mkdir ~/.terminfo

  4. $ tic ~/xterm-noclear.src (x / xterm-noclear आपकी ~ / .terminfo निर्देशिका में दिखाई देनी चाहिए)

  5. $ export TERM=xterm-noclear (अब कम के व्यवहार की जाँच करें और, यदि संतुष्ट हों, तो निर्यात निर्देश पंक्ति को अपने ~ / .profile में जोड़ें।)

(मैंने इन निर्देशों को सीधे जॉर्ज के उत्तर के @ jah द्वारा संपादित संपादित से कॉपी किया।)


4

जिस तरह से मुझे याद है वह less -SEXतब है जब मुझे आउटपुट को स्क्रीन पर डंप करने की आवश्यकता है लेकिन लाइनों को लपेटने के लिए नहीं चाहिए। उदाहरण के लिए docker ps | less -SEXयह क्या करता है:

  • -S
    • लपेटने के बजाय स्क्रॉल करें
    • यदि आप ड्रॉप करते हैं -E, तो आप स्क्रॉल करने के लिए अपने तीर कुंजियों का उपयोग कर सकते हैं
  • -E
    • EOF तक पहुँचने पर बाहर निकलें
  • -X
    • स्वैपिंग / ब्लैंकिंग को रोकें
    • "मेमोरी" हिस्सा यह है कि मुझे पता है कि एस और ई क्या करता है, इसलिए यह दूसरा हिस्सा होना चाहिए। (और इस कमांड को मेमोरी में करने का हमारा कारण यह है कि हम डंप नहीं करना चाहते हैं) एक इंटरेक्टिव सत्र में प्रवेश नहीं करते हैं।

यदि आप याद नहीं कर सकते less -SEX, तो आपके लिए बहुत अधिक आशा नहीं है। हर बार मुझे लगता है कि बस फिर से गूगल।


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