Salida de color git en eshell

10

Estoy usando emacs dentro de un terminal mintty (configurado para decir que es xterm-256color) en cygwin. list-colors-displayfunciona bien. y los colores se muestran en listas directas, etc. Ahora configuro el color para git branchla rama actual yellow reverse. Sin embargo, ni las ventanas shell ni eshell muestran el color correcto; en cambio, la rama actual se muestra en color predeterminado. En una ansi-termventana, o Fuera de emacs, dentro del mismo terminal, se muestra como debería.

Tengo esto en mi .emacs:

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

¿Alguna forma de hacer que estos colores se muestren dentro de las ventanas de shell o eshell?


fuente
1
No puedo reproducir esto en eshell con un Emacs gráfico, después de haber configurado la git config --global color.ui alwaysejecución git diff. ¿Podría proporcionar pasos más detallados?
rekado
¿Mi respuesta a continuación le ayuda o no hay nada claro?
rekado

Respuestas:

5

Eshell y shell-modeambos usan ansi-color.elpara convertir los códigos de colores ansi en caras. ansi-color.elsoporta las siguientes caras:

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

La "imagen negativa" es "inversa" y se asigna a la errorcara. Cuando configuro mi repositorio como ...

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

... y corro git branchveo mis ramas locales, y la rama actual se muestra en negrita amarilla. Cuando pongo el punto en el texto amarillo y corro describe-face, veo que de hecho se representa con la errorcara.

Puede personalizar ansi-color-faces-vectorpara asignar una cara diferente que no sea error"imagen negativa" / "reversa".

No es necesario (add-hook 'eshell-preoutput-filter-functions 'ansi-color-apply)usar colores ansi en eshell.

rekado
fuente