Jak uzyskać kolorowe strony man pod skorupą ryby?

12

Wydaje się, że istnieje sposób, aby strony podręcznika wyświetlały się w kolorze (patrz tutaj . Obejmuje to ustawianie zmiennych środowiskowych związanych z less i dodawanie tych definicji do .bashrc. Próbowałem zrobić to samo config.fishdla skorupy ryby, ale nie uzyskałem kolorów wyjściowych.

Jak uzyskać kolorowe strony man w skorupce ryby?

Ashwin Nanjappa
źródło
@ bodhi.zazen Fish używa polecenia set zamiast eksportu. To nie sprawiło, że strony podręcznika były kolorowe. Stąd moje pytanie powyżej :-)
Ashwin Nanjappa,
musisz „ustawić” te zmienne (z arch wiki) za mniej lub (ponownie z arch wiki) najbardziej.
Panther
@ bodhi.zazen Tak. Zrobiłem to. Brak kolorów na stronach
podręcznika

Odpowiedzi:

6

Możesz ustawić konfigurację za pomocą następujących poleceń:

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")  
jedenaście i 386
źródło
7

Jeśli chcesz, aby te kolory były dodawane tylko podczas przeglądania stron podręcznika, a nie do wszystkiego, co przeglądasz less, powinieneś ustawić te zmienne w funkcji otoki manzamiast wstawiać je do swojego config.fish.

Cały proces polega na utworzeniu nowego pliku w ~/.config/fish/functions/man.fish, a wewnątrz niego zdefiniowaniu funkcji, manktóra ustawia niezbędne zmienne środowiskowe, a następnie wywołuje oryginał manza pomocą command, przekazując argumenty za pomocą $argv.

To jest moja wersja funkcji otoki:

~/.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
źródło
2
Wielkie dzieki! Aby uzyskać jeszcze więcej podejrzeń, możesz użyć set_colorpolecenia. np: set -x LESS_TERMCAP_md (set_color -o red),set -x LESS_TERMCAP_me (set_color normal)
Chris Clark
3

Zakładając, że używasz mniej jako pager, wstaw to ~/.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")

Jeśli widzisz \e[0mitp. Pojawiające się podczas przeglądania strony podręcznika, spróbuj również dodać ten wiersz:

set -x LESS "-R"
Bobbaluba
źródło
Nie działa. Widzę ciągi „e [01”, gdy wykonuję „man ls”.
Ashwin Nanjappa
Dziwne, myślę, że to prosto z mojego pliku konfiguracyjnego. Jednak tak naprawdę nie próbowałem tego na Ubuntu, ponieważ sam prowadzę inną dystrybucję. Może mógłbyś spróbować dodać set -x LESS="-R"na końcu swojej konfiguracji?
bobbaluba
Dodanie tego nie pomogło. Ciągle widzę te same \ e [01 ciągi na stronie podręcznika.
Ashwin Nanjappa
1

Możliwe jest użycie set_colorzamiast bezpośrednich sekwencji ANSI. W rzeczywistości pozwala to na użycie dowolnego koloru, za pomocą 24-bitowego koloru ucieczki szesnastkowej (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
źródło