Bagaimana cara mendapatkan halaman manual berwarna di bawah cangkang ikan?

12

Tampaknya ada cara untuk membuat halaman manual ditampilkan dalam warna (lihat di sini . Ini melibatkan pengaturan variabel lingkungan yang terkait dengan lebih sedikit dan menambahkan definisi ini ke .bashrc. Saya mencoba melakukan hal yang sama config.fishuntuk shell ikan, tetapi tidak mendapatkan output warna.

Bagaimana cara mendapatkan halaman manual berwarna di kulit ikan?

Ashwin Nanjappa
sumber
@ bodhi.zazen Fish menggunakan perintah set alih-alih ekspor. Itu tidak membuat halaman manual tampil berwarna. Karena itu pertanyaan saya di atas :-)
Ashwin Nanjappa
Anda harus "mengatur" variabel-variabel tersebut (dari wiki lengkung) untuk kurang atau (lagi dari wiki lengkung) paling.
Panther
@ bodhi.zazen Ya. Saya telah melakukan itu. Tidak ada warna di halaman manual :-(
Ashwin Nanjappa

Jawaban:

6

Anda dapat mengatur konfigurasi dengan perintah berikut,

set -x LESS_TERMCAP_mb (printf "\033[01;31m")  
set -x LESS_TERMCAP_md (printf "\033[01;31m")  
set -x LESS_TERMCAP_me (printf "\033[0m")  
set -x LESS_TERMCAP_se (printf "\033[0m")  
set -x LESS_TERMCAP_so (printf "\033[01;44;33m")  
set -x LESS_TERMCAP_ue (printf "\033[0m")  
set -x LESS_TERMCAP_us (printf "\033[01;32m")  
sebelas.i386
sumber
7

Jika Anda ingin warna-warna ini ditambahkan hanya ketika melihat halaman manual, bukan untuk semua yang Anda lihat less, Anda harus mengatur variabel-variabel ini dalam fungsi wrapper untuk manbukannya meletakkannya di halaman Anda config.fish.

Seluruh proses adalah membuat file baru di ~/.config/fish/functions/man.fish, dan di dalamnya menentukan fungsi manyang menetapkan variabel lingkungan yang diperlukan, kemudian memanggil yang asli manmenggunakan command, meneruskan argumen menggunakan $argv.

Ini adalah versi saya dari fungsi wrapper:

~/.config/fish/functions/man.fish
function man --description "wrap the 'man' manual page opener to use color in formatting"
  # based on this group of settings and explanation for them:
  # http://boredzo.org/blog/archives/2016-08-15/colorized-man-pages-understood-and-customized
  # converted to Fish shell syntax thanks to this page:
  # http://askubuntu.com/questions/522599/how-to-get-color-man-pages-under-fish-shell/650192

  # start of bold:
  set -x LESS_TERMCAP_md (set_color --bold red)
  # end of all formatting:
  set -x LESS_TERMCAP_me (set_color normal)

  # start of standout (inverted colors):
  #set -x LESS_TERMCAP_so (set_color --reverse)
  # end of standout (inverted colors):
  #set -x LESS_TERMCAP_se (set_color normal)
  # (no change – I like the default)

  # start of underline:
  #set -x LESS_TERMCAP_us (set_color --underline)
  # end of underline:
  #set -x LESS_TERMCAP_ue (set_color normal)
  # (no change – I like the default)

  command man $argv
end
Rory O'Kane
sumber
2
Keren terima kasih! Dan untuk mendapatkan lebih banyak mencurigakan Anda dapat menggunakan set_colorperintah. misalnya: set -x LESS_TERMCAP_md (set_color -o red),set -x LESS_TERMCAP_me (set_color normal)
Chris Clark
3

Dengan asumsi Anda menggunakan lebih sedikit sebagai pager Anda, masukkan ini ~/.config/fish/config.fish:

set -x LESS_TERMCAP_mb (printf "\e[01;31m")
set -x LESS_TERMCAP_md (printf "\e[01;31m")
set -x LESS_TERMCAP_me (printf "\e[0m")
set -x LESS_TERMCAP_se (printf "\e[0m")
set -x LESS_TERMCAP_so (printf "\e[01;44;33m")
set -x LESS_TERMCAP_ue (printf "\e[0m")
set -x LESS_TERMCAP_us (printf "\e[01;32m")

Jika Anda melihat \e[0mdll muncul ketika Anda melihat halaman manual, coba tambahkan baris ini juga:

set -x LESS "-R"
bobbaluba
sumber
Tidak bekerja Saya melihat string \ e [01 ketika saya melakukan "man ls".
Ashwin Nanjappa
Aneh, saya percaya ini langsung dari file konfigurasi saya. Saya belum benar-benar mencobanya di Ubuntu, karena saya menjalankan distro yang berbeda sendiri. Mungkin Anda bisa mencoba menambahkan set -x LESS="-R"ke akhir konfigurasi Anda?
bobbaluba
Menambahkan itu tidak membantu. Masih melihat string yang sama di manpage.
Ashwin Nanjappa
1

Dimungkinkan untuk menggunakan set_colorbukannya urutan ANSI langsung. Bahkan, ini memungkinkan Anda untuk menggunakan warna apa pun yang Anda inginkan, dengan menggunakan 24-bit warna heksadesimal lolos, seperti (set_color FF55AA).

set -x LESS_TERMCAP_mb (set_color brred)
set -x LESS_TERMCAP_md (set_color brred)
set -x LESS_TERMCAP_me (set_color normal)
set -x LESS_TERMCAP_se (set_color normal)
set -x LESS_TERMCAP_so (set_color -b blue bryellow)
set -x LESS_TERMCAP_ue (set_color normal)
set -x LESS_TERMCAP_us (set_color brgreen)
Konrad Borowski
sumber