ทำให้เพจเจอร์ `` `ส่วนใหญ่จัดการกับสีได้อย่างถูกต้องจากอินพุตมาตรฐาน


10

ฉันจะทำให้mostเพจเจอร์แสดงสีได้อย่างถูกต้องในข้อความที่ได้รับจากอินพุตมาตรฐานได้อย่างไร

หมายเหตุ: mostผมไม่แน่ใจหรือไม่ว่ามันเป็นข้อผิดพลาดใน

ผมไม่ได้เผชิญหน้ากับปัญหาเดียวกันกับlessและmoreเพียงกับที่อื่นทำงานอย่างเป็นเพจเจอร์ที่ใช้โดยmostman

ฉันไม่ได้โพสต์ภาพและเชิญคนอื่นให้ลองใช้ (เฉพาะเมื่อคุณ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(อัปเดต):

ในฐานะที่เป็น Sparhawk กล่าวถึงในความคิดเห็นlessไม่ทำงานอย่างใดอย่างหนึ่งถ้ามันไม่ได้รับตัวเลือก-R(หรือ--RAW-CONTROL-CHARS) หรือ-r(หรือ--raw-control-chars) ซึ่งอาจถูกตั้งค่าในLESSตัวแปรสภาพแวดล้อม

และแน่นอนฉันแรกค้นหาตัวเลือกที่คล้ายกันสำหรับmost(แต่ไม่สามารถหาหนึ่ง)

ปรับปรุง

ทุกคนมีปัญหาเกี่ยวกับ UTF-8 mostข้อความที่เข้ารหัสสีไม่ได้เป็นเพียง ในกรณีของฉันเทอร์มินัลใช้ได้กับมันดังนั้นนั่นไม่ใช่เทอร์มินัล ข้อความ UTF ‑ 8 ที่ไม่มีสีเหมือนกันนั้นใช้ได้กับเพจเจอร์สามตัวดังนั้นจึงไม่ใช่การเข้ารหัสอักขระ


1
FWIW lessไม่ทำงานสำหรับฉัน less -Rฉันจำเป็น
Sparhawk

@Sparhawk 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.