Man Sayfalarında Renkler


63

'Konsolumdaki bir adam sayfasına baktığımda (değil xterm) Biraz renklenme görüyorum, fakat bunu alamıyorum xterm(örneğin konsole) bunu etkinleştirebilmemin bir yolu var mı? umarım oldukça basit bir çözümdür?

Yanıtlar:


78

Bu termcap(5)özelliği kullanmanız gerekir . Bazı Unices'deki el kitabı, bu aracın eski ve kullanılacak olduğunu söylüyor terminfo, ancak yine de başkalarında da mevcut (ve terminfodaha karmaşık).

Daha da önemlisi, lesskullanır termcap.


Renklerin ayarlanması less

O kadar aşağıdakileri yapmanız lessve man(kullandığı less) renge sahip olacaktır:

$ cat ~/.LESS_TERMCAP 
export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green
export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan
export LESS_TERMCAP_me=$(tput sgr0)
export LESS_TERMCAP_so=$(tput bold; tput setaf 3; tput setab 4) # yellow on blue
export LESS_TERMCAP_se=$(tput rmso; tput sgr0)
export LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7) # white
export LESS_TERMCAP_ue=$(tput rmul; tput sgr0)
export LESS_TERMCAP_mr=$(tput rev)
export LESS_TERMCAP_mh=$(tput dim)
export LESS_TERMCAP_ZN=$(tput ssubm)
export LESS_TERMCAP_ZV=$(tput rsubm)
export LESS_TERMCAP_ZO=$(tput ssupm)
export LESS_TERMCAP_ZW=$(tput rsupm)
export GROFF_NO_SGR=1         # For Konsole and Gnome-terminal

Ve sonra benim ~/.bashrc, ben bunu yapıyorum:

# Get color support for 'less'
export LESS="--RAW-CONTROL-CHARS"

# Use colors for less, man, etc.
[[ -f ~/.LESS_TERMCAP ]] && . ~/.LESS_TERMCAP

NOT: Değişkenlerle ilgili BelgelerLESS_TERMCAP_* bölümüne bakınız. Bunun nasıl çalıştığı için.

Son sonuç

    man sayfa ss


7
Bunun böyle yürüdüğünün sebebinin, 'konsol'un' altı çizili altı 'renge çevirdiği, çünkü X11 öğelerinin altı çizili çizgileri desteklediğine inanıyorum. Bu teoriyi echo -e "\e[04mhello world\e[0m"hem konsola hem de X11 terminalinize yazarak ve farkı görerek test edebilirsiniz . Bu nedenle, bu hack kötüye kullanım terimleri, kalın / altı çizili için hangi kodların çıkarması gerektiği konusunda LESS'e yalan söyler ve bunun yerine renk kaçış kodları üretmeye zorlar.
Kent Fredric

7
Aslında, altı çizili çizginin maviye çevrilmesi, orijinal PC grafik adaptörleri MDA ve CGA’nın metin modlarına (aslında CGA metin modları hâlâ mevcuttur) geri dönmek için tarihi nedenlere sahiptir. Bu grafik bağdaştırıcıları karakter başına iki bayt depoladı: Biri ASCII kodunu, diğeri nitelikleri taşıyan. MDA, öznitelik baytını altı çizili, parlak, yanıp sönen ve tersinin bir kombinasyonu olarak yorumladı; CGA ise bu baytı ön plan ve arka plan rengi olarak yorumladı. Ve altı çizili için MDA özniteliği siyah üzerine mavi CGA özniteliği ile aynı oldu.
celtschk

3
Bu Konsole veya Gnome-terminalinde çalışmıyor. Onları ayarladım ve tek renk değişikliği imleç ve durum sayfası içindir. İhtiyacım çıkıyor: export GROFF_NO_SGR=1.
CMCDragonkai

2
Bu bir sürü alt kabuk yarattı. Bu basit yaklaşımın avantajı nedir ?
Tom Hale

1
@TomHale, esas olarak çapraz sistem / terminal uyumluluğu (ve betiği başkalarıyla net bir şekilde paylaşma yeteneği). Kendinizi farklı kontrol kodları kullanan bir kutu üzerinde çalışırken bulursanız ve kabuk profilinizi ona göre scp / rsync yaparsanız, kontrol kodlarının tümü bu örnekte olduğu gibi sabit kodlandığında hedefte beklendiği gibi çalışmayabilir. makine ve bozuk çıktı ile sona erebilir. Elbette, senaryo yalnızca bir veya iki bilinen makinede / terminal-emusta çalışacaksa, kodlanmış yaklaşım gayet iyi.
Mark G.

15

Örneğin, farklı bir çağrı cihazı kullanarak bu sorunu çözebilirsiniz most. manaslında PAGERortam değişkeninde belirtilen programı kullanacaktır . Gönderen adam (1) kılavuz sayfasında:

MANPAGER, PAGER

$ MANPAGER veya $ PAGER ayarlanırsa ($ MANPAGER tercih edilirse), değeri manuel sayfayı görüntülemek için kullanılan programın adı olarak kullanılır. Varsayılan olarak, çağrı cihazı -s kullanılır.

Değer basit bir komut adı veya argümanları içeren bir komut olabilir ve kabuk alıntılamayı (ters eğik çizgi, tek tırnak işareti veya çift tırnak işareti) kullanabilir.

Birden çok komutu bağlamak için borular kullanamaz; Buna ihtiyacınız varsa, dosyayı bağımsız değişken olarak veya standart girdi olarak görüntülemek için dosyayı alabilecek bir sarmalayıcı komut dosyası kullanın.

Eğer mostsisteminizde yüklü, başlatmadan önce bu deneyin man:

export PAGER=most

2
mostBunun çalışması için kurulmalıdır.
enzotib 14:11

3
mostyapılandırılabilir olmayan tuhaf tuş bağları var.
Mateen Ulhaq

10

Varsayılan alt çizgi gözlerimi incitiyor. Bu kurulum, mansayfa okumamı büyük ölçüde geliştiriyor :

Renkli adam sayfa örneği

Aşağıdakileri `~ .bashrc 'dosyasına ekleyin:

# Have less display colours
# from: https://wiki.archlinux.org/index.php/Color_output_in_console#man
export LESS_TERMCAP_mb=$'\e[1;31m'     # begin bold
export LESS_TERMCAP_md=$'\e[1;33m'     # begin blink
export LESS_TERMCAP_so=$'\e[01;44;37m' # begin reverse video
export LESS_TERMCAP_us=$'\e[01;37m'    # begin underline
export LESS_TERMCAP_me=$'\e[0m'        # reset bold/blink
export LESS_TERMCAP_se=$'\e[0m'        # reset reverse video
export LESS_TERMCAP_ue=$'\e[0m'        # reset underline
export GROFF_NO_SGR=1                  # for konsole and gnome-terminal

Kazanma için, yüzdesini belgede görüntülemek üzere export MANPAGER='less -s -M +Gg' (kaynak) ile birleştirin .


3
@ CMCDragonkai'nin bir başka cevaba yaptığı yorumda da belirtildiği gibi, bu export GROFF_NO_SGR=1bazı terminal emülatörleri üzerinde çalışmayı gerektirir .
Ben

1
Kazanmak için!! % Display export MANPAGER='less -s -M +Gg'adds'ı seviyorum .
MikeyE

5

Eğer kullanırsanız Zsh Oh My , ekleyebilir colored-man-pagesiçin pluginssizin de dizideki .zshrcdosyası.


3

Israrla 'çoğunu' kaydet

Terminali Aç ( Ctrl+ Alt+ T)

  1. 'Most' programını kurun.

    sudo apt-get install most
    
  2. düzenle .bashrc, şunu yazın:

    nano ~/.bashrc
    
  3. Bu satırları ekle:

    # color man-pages persistently
    export PAGER='most'
    
  4. Kayıt etmek

    ( Ctrl+ O) -> Enter-> ( Ctrl+ X)

  5. Yenile

    source ~/.bashrc
    
  6. Ölçek

    man ln
    

Bu aynı zamanda xterm ile de çalışır.


nano'yu açmaktan kaçınmak için, terminalden bashrc'ye ekleyebilirsiniz: sudo apt install most; eko "ihracat PAGER = 'en" ">> ~ / .bashrc; Kaynak ~ / .bashrc
Will

1

Alındığı http://nion.modprobe.de/blog/archives/569-colored-manpages.html

Alıntı:

$ mkdir ~/.terminfo/ && cd ~/.terminfo

Şimdi terminfoaçıklamayı alın (aşağıdakini en çok.txt olarak kaydedin):

# Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-pcolor
mostlike|manpages with color looking like most, 
    am, hs, km, mir, msgr, xenl, 
    cols#80, it#8, lines#24, wsl#40, 
    acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
    bel=^G, bold=\E[1m\E[31m, clear=\E[H\E[2J, cr=^M, 
    csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 
    cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, 
    cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, 
    dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, 
    dsl=\E]0;\007, ed=\E[J, el=\E[K, enacs=\E)0, fsl=^G, 
    home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, 
    is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^H, 
    kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
    kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, 
    kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, 
    kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, 
    kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, 
    kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, 
    kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, 
    kslt=\E[4~, rc=\E8, rev=\E[7m\E[34m, ri=\EM, rmacs=^O, 
    rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>, 
    rmso=\E[m, rmul=\E[m, 
    rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7, 
    sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h, 
    smkx=\E[?1h\E=, smso=\E[1;30m\E[47m, smul=\E[32m, 
    tbc=\E[3g, tsl=\E]0;, u6=\E[%i%d;%dR, u7=\E[6n, 
    u8=\E[?1;2c, u9=\E[c, 

Şimdi kullanarak derleyin tic(terminfo giriş-açıklama derleyicisi):

$ tic mostlike.txt

( mostlike.txtDerledikten sonra dosyayı silmek isteyebilirsiniz .)

Ve sonra sadece *rcfavori kabuğunuzun dosyasında bir takma ad tanımlayın .

$ alias man="TERMINFO=~/.terminfo/ LESS=C TERM=mostlike PAGER=less man"

Terminfo dosyasını değiştirmek istiyorsanız infocmp mostlike, içeriğini daha sonra almak için kullanın .


11
Buradaki kaynağı özetlerseniz yardımcı olur, böylece insanlar tıklama yapmak zorunda kalmadan ne dediklerini görebilirler (ve sitenin düşmesi durumunda)
Michael Mrozek

3
Lütfen sadece cevaplara linkler değil cevaplar verin. Bununla birlikte, cevabınızı destekleyen bağlantılar sağlamak çok iyidir. Bu soru için Googling olduğumu düşünün --- StackExchange'te iyi bir cevap, sonuçların ilk sayfasına hızlı bir şekilde ulaşacaktır.
Stefan Lasiewski

Bağlantı öldü.
farzan

Bunu mostlike.txtçevrimiçi olarak buldum.
Kaushal Modi

Çıktı neye benziyor?
Tom Hale,

1

Dirtybit'in cevabını alarak , vurgulanan arama sonuçlarının rengini değiştirmek istedim. Buna "standout modu" denir, işte "xterm-yellow.ti" örnek dosyası:

xterm-yellow|yellow standout mode,
# exit standout mode
  rmso=\e[m,
# begin standout mode
  smso=\e[5;30;43m,
# similar terminal
  use=xterm,

Dosyayı derleyin ve kurun:

tic xterm-yellow.ti

"~ / .Profile" veya benzeri bir satır ekleyin:

TERM=xterm-yellow
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.