Sortie git colorée en eshell


10

J'utilise emacs dans un terminal Mintty (configuré pour dire que c'est xterm-256color) sur cygwin. list-colors-displayfonctionne bien. et les couleurs sont affichées dans les listes dired, etc. Maintenant, je règle la couleur de git branchla branche actuelle yellow reverse. Cependant, ni les fenêtres shell ni eshell n'affichent la bonne couleur; à la place, la branche actuelle est affichée dans la couleur par défaut. Dans une ansi-termfenêtre, ou en dehors d'emacs, à l'intérieur du même terminal, il s'affiche comme il se doit.

J'ai ceci dans mon .emacs:

(add-hook 'eshell-preoutput-filter-functions  'ansi-color-apply)

Est-il possible d'afficher ces couleurs à l'intérieur des fenêtres shell ou eshell?


1
Je ne peux pas reproduire cela en eshell avec un Emacs graphique, après avoir mis en git config --global color.ui alwaysmarche git diff. Pourriez-vous fournir des étapes plus détaillées?
rekado

ma réponse ci-dessous vous aide-t-elle ou est-ce que quelque chose n'est pas clair?
rekado

Réponses:


5

Eshell et les shell-modedeux permettent ansi-color.elde transformer les codes de couleur ansi en visages. ansi-color.elprend en charge les visages suivants:

Parameter  Description        Face used by default
  0        default            default
  1        bold               bold
  2        faint              default
  3        italic             italic
  4        underlined         underline
  5        slowly blinking    success
  6        rapidly blinking   warning
  7        negative image     error

"l'image négative" est "inversée" et elle est mappée sur le errorvisage. Quand je configure mon référentiel tel ...

[color]
        ui = always
[color "branch"]
        current = yellow reverse

... et git branchje cours, je vois mes branches locales, et la branche actuelle est rendue en jaune gras. Quand je mets un point sur le texte jaune et que describe-faceje cours, je vois qu'il est en fait rendu avec le errorvisage.

Vous pouvez personnaliser ansi-color-faces-vectorpour attribuer un visage différent de celui errorde "l'image négative" / "inverse".

Vous n'avez pas besoin (add-hook 'eshell-preoutput-filter-functions 'ansi-color-apply)d'utiliser les couleurs ansi en eshell.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.