bash: halaman manual berwarna

15

Di mana saya harus melihat dalam sistem untuk mewarnai halaman manual?

Halaman manual dilihat dengan lebih sedikit, jadi saya mencoba menambahkan baris berikut ke .bashrc saya untuk mengubah warna: (Yang berfungsi dengan baik, btw.)

 #
 #   L E S S   C O L O R S   F O R   M A N   P A G E S
 #

 # CHANGE FIRST NUMBER PAIR FOR COMMAND AND FLAG COLOR
 # currently 0;33 a.k.a. brown, which is dark yellow for me 
    export LESS_TERMCAP_md=$'\E[0;33;5;74m'  # begin bold

 # CHANGE FIRST NUMBER PAIR FOR PARAMETER COLOR
 # currently 0;36 a.k.a. cyan
    export LESS_TERMCAP_us=$'\E[0;36;5;146m' # begin underline

 # don't change anything here
    export LESS_TERMCAP_mb=$'\E[1;31m'       # begin blinking
    export LESS_TERMCAP_me=$'\E[0m'           # end mode
    export LESS_TERMCAP_se=$'\E[0m'           # end standout-mode
    export LESS_TERMCAP_so=$'\E[38;5;246m'    # begin standout-mode - info box
    export LESS_TERMCAP_ue=$'\E[0m'           # end underline

 #########################################
 # Colorcodes:
 # Black       0;30     Dark Gray     1;30
 # Red         0;31     Light Red     1;31
 # Green       0;32     Light Green   1;32
 # Brown       0;33     Yellow        1;33
 # Blue        0;34     Light Blue    1;34
 # Purple      0;35     Light Purple  1;35
 # Cyan        0;36     Light Cyan    1;36
 # Light Gray  0;37     White         1;37
 #########################################

Untuk rasa malu saya, saya harus mengakui bahwa saya tidak mengetahui apa yang pasangan angka kedua berarti, ie 5;74dan 5;146.

Bisakah seseorang mengklarifikasi lebih lanjut?

sja
sumber
Ada apa dengan suara dekat? Saya telah mengetahui tautan wikipedia sebelumnya dan saya masih tidak tahu apa arti urutan urutannya. Percobaan dan kesalahan dan pengaturan nilai yang berbeda tidak membantu saya sama sekali. "Go RTFM" sederhana tidak membantu saya di sini.
sjas
Anda pasti bercanda ... ini luar biasa! Di mana barang-barang ini didokumentasikan? Saya mencari di halaman manual BASH dan KURANG tetapi tidak dapat menemukan string LESS_TERMCAP.
ysap
OK, temukan ini sebagai permulaan: unix.stackexchange.com/questions/119/colors-in-man-pages
ysap
Ini: " for name [ [ in [ word ... ] ] ; ] do list ; done" lebih masuk akal sekarang, berwarna ... 8-)
ysap
@ysap: Belum melihat tautan itu, dan tidak dapat mengingat di mana saya menemukan ini. Letakkan ini di sini untuk keperluan dokumentasi dan bertanya tentang urutan pelarian dalam proses. :)
sjas

Jawaban:

1
export LESS_TERMCAP_md=$'\E[0;33;5;74m'  # begin bold
export LESS_TERMCAP_us=$'\E[0;36;5;146m' # begin underline

Dalam dua kasus ini, semua warna dan atribut diatur ulang (0), warna latar depan beralih ke kuning / coklat (33) atau cyan (36), kemudian berkedip dihidupkan (5), dan kemudian sesuatu yang lain terjadi ( 74 atau 146) yang mungkin tidak terdefinisi dan tidak diinginkan.

export LESS_TERMCAP_so=$'\E[38;5;246m'

Yang ini berbeda, karena 38 mengambil parameter numerik tambahan. Ini adalah singkatan dari foreground color yang diperluas (dan juga 48 akan sama untuk latar belakang), dan jika diikuti oleh 5 sebagai parameter berikutnya (yang tidak ada hubungannya dengan berkedip kali ini) angka ketiga menentukan indeks warna ( dari 0 hingga 255: 16 warna warisan standar, diikuti oleh kubus RGB 6x6x6, diikuti oleh 24 warna skala abu-abu), lihat misalnya di sini .

Emulator terminal tertentu juga mendukung warna RGB langsung yang sewenang-wenang, dalam hal ini 38 harus diikuti oleh 2, dan kemudian dengan tiga angka desimal dalam kisaran 0-255 untuk R, G, B masing-masing, misalnya # BADA55 adalah

\E[38;2;186;218;85m
egmont
sumber
1
Sangat buruk bahwa Anda tidak bisa tahu yang ;merupakan parameter tambahan dari yang sebelumnya dan yang merupakan merek baru tanpa melihat angka pastinya. Jadi direkomendasikan bahwa parameter tambahan harus dipisahkan oleh :gantinya. Misalnya, untuk mengatur ulang semuanya, lalu beralih ke warna # 246, dan nyalakan juga berkedip, alih-alih seperti yang 0;38;5;246;5Anda katakan 0;38:5:246;5. Sayangnya itu didukung oleh terminal yang lebih sedikit.
egmont
5

"\ e [... m" adalah kode SGR CSI. Halaman Wikipedia pada "kode pelarian ANSI", "kode CSI" menjelaskannya.

Ignacio Vazquez-Abrams
sumber
1

Dengan bantuan http://invisible-island.net/xterm/ctlseqs/ctlseqs.html dan tautan wikipedia saya sampai pada kesimpulan yang 5berarti 5 Blink: Slow less than 150 per minute.

Angka terakhir terdengar seperti ini:

 If 88- or 256-color support is compiled, the following apply. 
 P s = 3 8 ; 5 ; P s  Set foreground color to the second P s . 
 P s = 4 8 ; 5 ; P s  Set background color to the second P s .

Juga tampaknya jumlah angka tidak penting, hanya urutan kronologisnya.

sja
sumber
0

Bukan solusi bash, tapi masih relevan, gunakan:

PAGER = ~ / bin / vimpager

dan masukkan ini ke ~ / bin: https://github.com/rkitover/vimpager

Bruce Edge
sumber