เอาต์พุต git สีเป็น eshell


10

ฉันใช้ emacs ภายในมินต์ (กำหนดว่าจะเป็นขั้ว xterm-256color) บน cygwin list-colors-displayทำงานได้ดี และสีที่จะแสดงใน dired รายชื่ออื่น ๆ ตอนนี้ผมตั้งค่าสีสำหรับสาขาในปัจจุบันจะเป็นgit branch yellow reverseอย่างไรก็ตามทั้งเชลล์และหน้าต่าง eshell ไม่แสดงสีที่ถูกต้อง สาขาปัจจุบันจะแสดงเป็นสีเริ่มต้นแทน ในansi-termหน้าต่างหรือด้านนอกของ emacs ภายในเทอร์มินัลเดียวกันจะแสดงตามที่ควร

ฉันมีสิ่งนี้ใน.emacs:

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

มีวิธีใดที่จะทำให้สีเหล่านี้แสดงภายในเชลล์หรือหน้าต่าง eshell


1
ฉันไม่สามารถทำซ้ำใน eshell กับกราฟิก Emacs มีชุดทำงานgit config --global color.ui always git diffคุณสามารถระบุขั้นตอนเพิ่มเติมโดยละเอียดได้หรือไม่
rekado

คำตอบของฉันด้านล่างช่วยคุณหรืออะไรที่เกี่ยวกับเรื่องนี้ไม่ชัดเจน?
rekado

คำตอบ:


5

Eshell และshell-modeทั้งสองใช้ansi-color.elเพื่อเปลี่ยนรหัสสี ansi ให้เป็นใบหน้า ansi-color.elรองรับใบหน้าต่อไปนี้:

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

"รูปภาพเชิงลบ" คือ "ย้อนกลับ" และถูกจับคู่กับerrorใบหน้า เมื่อฉันกำหนดค่าที่เก็บของฉันเช่น ...

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

... และเรียกใช้git branchฉันเห็นสาขาในพื้นที่ของฉันและสาขาปัจจุบันแสดงเป็นสีเหลืองเข้ม เมื่อฉันชี้ไปที่ข้อความสีเหลืองและเรียกใช้describe-faceฉันเห็นว่ามันเป็นความจริงที่แสดงกับerrorใบหน้า

คุณสามารถปรับแต่งansi-color-faces-vectorเพื่อกำหนดใบหน้าที่แตกต่างจากerror"ภาพเชิงลบ" / "ย้อนกลับ"

คุณไม่จำเป็นต้อง(add-hook 'eshell-preoutput-filter-functions 'ansi-color-apply)ใช้สี ansi ใน eshell

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.