बनाओ `सबसे` पेजर मानक` इनपुट से ठीक से रंग संभाल


10

mostमानक make इनपुट से प्राप्त पाठ में मैं पेजर को ठीक से कैसे प्रदर्शित करता हूं ?

नोट: मुझे यकीन नहीं है कि यह एक बग है या नहीं most

मैं उसी मुद्दे का सामना नहीं कर रहा हूं lessऔर more, केवल साथ most, जो अन्यथा उपयोग किए गए पेजर के रूप में अच्छी तरह से काम करता है man

मैं एक छवि पोस्ट नहीं कर रहा हूं, और लोगों को यह प्रयास करने के लिए आमंत्रित कर रहा हूं (केवल अगर आपने mostस्थापित किया है):

$ command apropos zip | command grep --color=always zip | command less
$ command apropos zip | command grep --color=always zip | command more
$ command apropos zip | command grep --color=always zip | command most

lessऔर moreरंग को ठीक से प्रदर्शित करते हैं, जबकि सभी रंगीन पाठ क्षेत्रों को लपेटते mostहुए अतिरिक्त "कचरा" के साथ रंग प्रदर्शित करते ^[[Kहैं।

हैरानी की बात है, यह ठीक है:

$ (export PAGER=most; command man zip)

क्या मुझे कुछ याद आ रहा है ( mostमदद के लिए मैनुअल पेज ), कमांड का दुरुपयोग नहीं कर रहा है या यह कुछ ऐसा है जिसे मुझे बग के रूप में रिपोर्ट करना चाहिए?

एक नोट पर less(अपडेट):

जैसा कि स्पार्कव ने एक टिप्पणी में उल्लेख किया है, lessया तो यह काम नहीं करता है यदि इसे विकल्प -R(या --RAW-CONTROL-CHARS) या -r(या --raw-control-chars) नहीं दिया गया है , जो LESSपर्यावरण चर में भी सेट किया जा सकता है ।

और वास्तव में, मैंने पहली बार एक समान विकल्प के लिए खोज की most(लेकिन एक को खोजने में विफल रहा)।

अपडेट करें

सभी के पास रंगीन UTF enc 8 एनकोडेड पाठ के साथ समस्याएँ हैं, न कि केवल most। मेरे मामले में, टर्मिनल इसके साथ ठीक है, इसलिए यह टर्मिनल नहीं है। एक ही अघोषित UTF text 8 पाठ तीनों पेजर के साथ ठीक है, इसलिए यह वर्ण एन्कोडिंग नहीं है।


1
FWIW lessमेरे लिए काम नहीं करता है। मुझे चाहिए less -R
स्पार्कहॉक

@ श्रावक, हाँ, क्षमा करें, मैं भूल गया कि मेरे प्रोफ़ाइल में यह है export LESS="--hilite-search --LINE-NUMBERS --raw-control-chars":। मैंने सोचा था कि इसके लिए एक समान विकल्प था most, लेकिन मैनुअल पेज में ऐसी बात का कोई जिक्र नहीं है। नोट: मैं LESSपर्यावरण चर के बारे में बताने के लिए अपनी पोस्ट को संपादित करूंगा ।
Hibou57

जवाबों:


1
man grep 2>/dev/null | 
GREP_COLORS=$(man grep 2>/dev/null | 
grep '^ *ms=01;31' -m1):ne \
grep '^ *GREP_COLORS *$\|^ *ne ' -A9 --color=always | 
most

मेरे लिये कार्य करता है। वैसे, मैं सिर्फ mostयह पता लगाने के लिए स्थापित है और मुझे यह पसंद है। धन्यवाद।

   GREP_COLORS
          Specifies  the  colors  and other attributes
          used  to  highlight  various  parts  of  the
          output.  Its value is a colon-separated list
          of    capabilities    that    defaults    to
          ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36
          with the  rv  and  ne  boolean  capabilities
          omitted     (i.e.,     false).     Supported
          capabilities are as follows.

          ne     Boolean  value that prevents clearing
                 to the end of  line  using  Erase  in
                 Line  (EL) to Right (\33[K) each time
                 a  colorized  item  ends.   This   is
                 needed  on  terminals  on which EL is
                 not  supported.   It   is   otherwise
                 useful  on  terminals  for  which the
                 back_color_erase    (bce)     boolean
                 terminfo  capability  does not apply,
                 when the chosen highlight  colors  do
         ...

@ Hibou57 - क्या इस उत्तर के बारे में कुछ है जो आपके प्रश्न का उत्तर नहीं दे रहा है?
mikeserv

1
मैं इसका भी सामना कर रहा हूं। मैं इस उत्तर में कमांड को नहीं समझता, और जब मैं इसे अपने सिस्टम पर आज़माता हूं तो मुझे mostकुछ भी प्रदर्शित नहीं करने का उदाहरण मिलता है । इसका उत्तर भी बहुत विशिष्ट लगता है grep, और मैं सिर्फ grep से अधिक के साथ रंग-प्रदर्शन-प्लस-एस्केप-कोड समस्या का सामना कर रहा हूं। - MacOS 10.12.6 बैश के साथ4.4.19(1)-release (x86_64-apple-darwin16.7.0)
adfaklsdjf
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.