Kolorowe wyjście git w eshell

10

Używam emacsa w miętowym (skonfigurowanym tak, że to xterm-256color) terminalu na cygwinie. list-colors-displaydziała w porządku. i kolory są wyświetlane na listach dired itp. Teraz ustawiam kolor git branchbieżącej gałęzi yellow reverse. Jednak ani okno powłoki ani eshell nie wyświetla prawidłowego koloru; zamiast tego bieżąca gałąź jest wyświetlana w domyślnym kolorze. W ansi-termoknie lub poza emacsem wewnątrz tego samego terminala wyświetla się tak, jak powinien.

Mam to w moim .emacs:

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

Czy jest jakiś sposób na wyświetlenie tych kolorów w oknach powłoki lub eshell?


źródło
1
Nie mogę odtworzyć tego w eshell z graficznym Emacsem, po git config --global color.ui alwaysuruchomieniu git diff. Czy możesz podać bardziej szczegółowe kroki?
rekado
czy moja odpowiedź poniżej pomaga tobie, czy jest coś niejasnego?
rekado

Odpowiedzi:

5

Eshell i shell-modeoba służą ansi-color.eldo przekształcania kodów kolorów ansi w twarze. ansi-color.elobsługuje następujące twarze:

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

„negatywny obraz” jest „odwrócony” i jest odwzorowany na errortwarz. Kiedy konfiguruję moje repozytorium takie ...

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

... i biegnę git branch, widzę moje lokalne oddziały, a bieżąca gałąź jest wytłuszczona na żółto. Kiedy wskazuję żółty tekst i biegnę describe-face, widzę, że w rzeczywistości jest on renderowany za pomocą errortwarzy.

Możesz dostosować, ansi-color-faces-vectoraby przypisać inną twarz niż error„negatywne zdjęcie” / „odwrócenie”.

W (add-hook 'eshell-preoutput-filter-functions 'ansi-color-apply)eshell nie trzeba używać kolorów ansi.

rekado
źródło