`En 'çağrı cihazını standart girişteki renkleri doğru şekilde kullanın


10

mostÇağrı cihazının standart girişten alınan metindeki renkleri düzgün bir şekilde göstermesini nasıl sağlayabilirim ?

Not: Bunun bir hata olup olmadığından emin değilim most.

Aynı sorunla karşılaşmıyorum lessve moresadece most, aksi takdirde kullanılan bir çağrı cihazı olarak güzel çalışıyor man.

Bir resim yayınlamıyorum ve insanları bunu denemeye davet ediyorum (yalnızca mostyüklediyseniz):

$ 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

lessve morerenkleri düzgün bir şekilde görüntülerken, tüm renkli metin alanlarını saran mostek "çöp" içeren renkleri görüntüler ^[[K.

Şaşırtıcı bir şekilde, sorun yok:

$ (export PAGER=most; command man zip)

Bir şey eksik mi (için manuel sayfa mostyardımcı olmadı), komutu yanlış mı yoksa hata olarak rapor etmem gereken bir şey mi?

Hakkında bir not less(güncelleme):

Sparhawk'un bir yorumda belirtildiği gibi , ortam değişkeninde de ayarlanabilen lessseçenek -R(veya --RAW-CONTROL-CHARS) veya -r(veya --raw-control-chars) verilmezse çalışmaz LESS.

Ve aslında, ilk önce benzer bir seçenek aradım most(ama birini bulamadım).

Güncelleme

Hepsinde yalnızca renkli UTF ‑ 8 kodlu metinle ilgili sorunlar var most. Benim durumumda, terminal onunla iyi, bu yüzden terminal değil. Aynı renklendirilmemiş UTF ‑ 8 metni, üç çağrı cihazında da iyidir, bu nedenle kodlama karakterleri değildir.


1
FWIW lessbenim için çalışmıyor. İhtiyacım var less -R.
Sparhawk

@Sparhawk, evet, üzgünüm, benim profilde bu var unutma: export LESS="--hilite-search --LINE-NUMBERS --raw-control-chars". Benzer bir seçenek olduğunu düşündüm most, ancak manuel sayfa böyle bir şeyden bahsetmiyor. Not: LESSOrtam değişkenini anlatmak için yazımı düzenleyeceğim .
Hibou57

Yanıtlar:


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

Benim için çalışıyor. Bu arada, bunu çözmek mostiçin yeni kurdum ve beğendim. Teşekkür ederim.

   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 - bu cevap hakkında sorunuza cevap vermeyen bir şey var mı?
mikeserv

1
Ben de bununla karşılaşıyorum. Bu cevaptaki komutu anlamıyorum ve sistemimde denediğimde mosthiçbir şey göstermeyen bir örnek alıyorum . Cevap da çok spesifik görünüyor grepve sadece grep'ten daha fazlası ile renkli ekran-artı-kaçış kodları sorununu yaşıyorum. - MacOS 10.12.6 ile bash4.4.19(1)-release (x86_64-apple-darwin16.7.0)
adfaklsdjf
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.