Comment obtenir des pages de manuel en couleur sous une coquille de poisson?

12

Il semble y avoir un moyen d'afficher les pages de manuel en couleur (voir ici . Cela implique de définir des variables d'environnement associées à less et d'ajouter ces définitions à .bashrc. J'ai essayé de faire la même chose config.fishpour la coquille de poisson, mais je n'ai obtenu aucune sortie de couleur.

Comment obtenir des pages de manuel en couleur dans la coquille de poisson?

Ashwin Nanjappa
la source
@ bodhi.zazen Fish utilise la commande set au lieu d'exporter. Cela n'a pas fait apparaître les pages de manuel en couleur. D'où ma question ci-dessus :-)
Ashwin Nanjappa
vous devez "définir" ces variables (à partir du wiki arch) pour moins ou (encore une fois à partir du wiki arch) le plus.
Panther
@ bodhi.zazen Oui. J'avais fait ça. Aucune couleur dans les pages de manuel :-(
Ashwin Nanjappa

Réponses:

6

Vous pouvez définir la configuration à l'aide des commandes suivantes,

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")  
eleven.i386
la source
7

Si vous souhaitez que ces couleurs soient ajoutées uniquement lors de l'affichage des pages de manuel, et non pour tout ce que vous affichez less, vous devez définir ces variables dans une fonction wrapper pour manau lieu de les placer dans votre config.fish.

L'ensemble du processus consiste à créer un nouveau fichier dans ~/.config/fish/functions/man.fish, et à l'intérieur, définir une fonction manqui définit les variables d'environnement nécessaires, puis appelle l'original à l' manaide command, en passant des arguments à l'aide de $argv.

Voici ma version de la fonction 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
la source
2
Super merci! Et pour obtenir encore plus de poisson, vous pouvez utiliser la set_colorcommande. par exemple: set -x LESS_TERMCAP_md (set_color -o red),set -x LESS_TERMCAP_me (set_color normal)
Chris Clark
3

En supposant que vous utilisiez moins votre téléavertisseur, mettez ceci dans ~/.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")

Si vous voyez \e[0metc. apparaître lorsque vous consultez la page de manuel, essayez également d'ajouter cette ligne:

set -x LESS "-R"
bobbaluba
la source
Ca ne fonctionne pas. Je vois les chaînes \ e [01 quand je fais "man ls".
Ashwin Nanjappa
Étrange, je crois que cela venait directement de mon fichier de configuration. Je ne l'ai pas encore essayé sur Ubuntu, car je lance moi-même une distribution différente. Peut-être pourriez-vous essayer d'ajouter set -x LESS="-R"à la fin de votre configuration?
bobbaluba
L'ajout de cela n'a pas aidé. Toujours les mêmes chaînes de \ e [01 dans la page de manuel.
Ashwin Nanjappa
1

Il est possible d'utiliser à la set_colorplace des séquences ANSI directes. En fait, cela vous permet d'utiliser n'importe quelle couleur de votre choix, en utilisant des échappements hexadécimaux couleur 24 bits, comme (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
la source