Output git berwarna dalam eshell

10

Saya menggunakan emacs di dalam mintty (dikonfigurasi untuk mengatakan itu xterm-256color) terminal di cygwin. list-colors-displaybekerja dengan baik. dan warna ditampilkan dalam daftar dired dll. Sekarang saya mengatur warna untuk git branchcabang saat ini menjadi yellow reverse. Namun, baik windows shell maupun eshell tidak menampilkan warna yang benar; sebaliknya, cabang saat ini ditampilkan dalam warna default. Di ansi-termjendela, atau Di Luar emacs, di dalam terminal yang sama, itu ditampilkan sebagaimana mestinya.

Saya memiliki ini di .emacs:

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

Adakah cara untuk mendapatkan warna-warna ini untuk ditampilkan di dalam shell atau jendela eshell?


sumber
1
Saya tidak dapat mereproduksi ini dalam eshell dengan Emacs grafis, setelah git config --global color.ui alwaysberjalan git diff. Bisakah Anda memberikan langkah-langkah yang lebih rinci?
rekado
apakah jawaban saya di bawah ini membantu Anda atau ada sesuatu yang tidak jelas?
rekado

Jawaban:

5

Eshell dan shell-modekeduanya digunakan ansi-color.eluntuk mengubah kode warna ansi menjadi wajah. ansi-color.elmendukung wajah-wajah berikut:

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

"gambar negatif" adalah "terbalik" dan dipetakan ke errorwajah. Ketika saya mengkonfigurasi repositori saya seperti ...

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

... dan jalankan git branchsaya melihat cabang lokal saya, dan cabang saat ini diberikan dengan warna kuning tebal. Ketika saya meletakkan titik pada teks kuning dan menjalankan describe-facesaya melihat bahwa itu sebenarnya diberikan dengan errorwajah.

Anda dapat menyesuaikan ansi-color-faces-vectoruntuk menetapkan wajah yang berbeda selain erroruntuk "gambar negatif" / "terbalik".

Anda tidak perlu (add-hook 'eshell-preoutput-filter-functions 'ansi-color-apply)menggunakan warna ansi di eshell.

rekado
sumber