Wie bekomme ich Farbmanpages unter Fischschalen?

11

Es scheint eine Möglichkeit zu geben, Manpages in Farbe anzuzeigen (siehe hier . Dazu müssen Umgebungsvariablen festgelegt werden, die mit weniger verknüpft sind, und diese Definitionen hinzugefügt werden .bashrc. Ich habe versucht, dasselbe config.fishfür die Fischschale zu tun , aber keine Farbausgabe erhalten.

Wie bekomme ich Farbmanpages in die Fischschale?

Ashwin Nanjappa
quelle
@ bodhi.zazen Fish verwendet den Befehl set anstelle von export. Dadurch wurden die Manpages nicht farbig angezeigt. Daher meine Frage oben :-)
Ashwin Nanjappa
Sie müssen diese Variablen (aus dem Arch-Wiki) für weniger oder (wieder aus dem Arch-Wiki) für die meisten "einstellen".
Panther
@ bodhi.zazen Ja. Ich hatte das getan Keine Farbe in Manpages :-(
Ashwin Nanjappa

Antworten:

6

Sie können die Konfiguration mit den folgenden Befehlen festlegen:

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")  
elf.i386
quelle
6

Wenn Sie möchten, dass diese Farben nur beim Anzeigen von Manpages hinzugefügt werden, nicht für alles, was Sie anzeigen less, sollten Sie diese Variablen in einer Wrapper-Funktion festlegen, mananstatt sie in Ihre einzufügen config.fish.

Der gesamte Prozess besteht darin, eine neue Datei unter zu erstellen ~/.config/fish/functions/man.fishund darin eine Funktion zu definieren man, die die erforderlichen Umgebungsvariablen festlegt, dann das ursprüngliche manusing aufruft commandund Argumente mit übergibt $argv.

Dies ist meine Version der Wrapper-Funktion:

~/.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
quelle
2
Super danke! Und um noch fauler zu werden, können Sie den set_colorBefehl verwenden. zB: set -x LESS_TERMCAP_md (set_color -o red),set -x LESS_TERMCAP_me (set_color normal)
Chris Clark
3

Angenommen, Sie verwenden weniger als Pager, geben Sie Folgendes ein ~/.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")

Wenn \e[0mbeim Anzeigen der Manpage usw. angezeigt wird, fügen Sie auch diese Zeile hinzu:

set -x LESS "-R"
Bobbaluba
quelle
Funktioniert nicht. Ich sehe die \ e [01-Zeichenfolgen, wenn ich "man ls" mache.
Ashwin Nanjappa
Seltsam, ich glaube, das war direkt aus meiner Konfigurationsdatei. Ich habe es jedoch nicht unter Ubuntu ausprobiert, da ich selbst eine andere Distribution betreibe. Vielleicht könnten Sie versuchen set -x LESS="-R", am Ende Ihrer Konfiguration hinzuzufügen ?
Bobbaluba
Das hinzuzufügen hat nicht geholfen. Es werden immer noch dieselben \ e [01-Zeichenfolgen in der Manpage angezeigt.
Ashwin Nanjappa
1

Es ist möglich, set_coloranstelle von direkten ANSI-Sequenzen zu verwenden. Auf diese Weise können Sie jede gewünschte Farbe verwenden, indem Sie hexadezimale 24-Bit-Farb-Escapezeichen verwenden, z (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
quelle