รับมากกว่า 8 สีในโปรแกรมจำลองเทอร์มินัลภายใน Emacs


14

ความเข้าใจของฉันคือที่ansi-termรองรับเพียง 8 สี (การอภิปรายที่ดีของสิ่งนี้ใน reddit ที่นี่ )

ในขณะเดียวกันจำนวนเทอร์มินัลอีมูเลเตอร์ (เช่นtmuxหรือiTerm2ใน OS X) เพิ่มขึ้นTrue color(24 บิตหรือ16 ล้านสี) รายการดีสามารถพบได้ที่นี่

  • หากฝาสี 8 สีมีลักษณะเฉพาะansi-termจะมีแพ็คเกจอื่น ๆ สำหรับการจำลองเทอร์มินัลที่พยายามแก้ไขข้อ จำกัด นี้หรือไม่?
  • มีแผนการที่จะนำTrue colorการสนับสนุนไปยังเทอร์มินัลอีมูเลเตอร์ใน Emacs หรือไม่?

และอาจจะยืนยัน:

  • มีวิธีใดบ้างที่จะมีansi-termบัฟเฟอร์มากกว่า 8 สีอย่างมีประสิทธิภาพ ?
  • การปรับแต่งสีansi-color-names-vectorยังเป็นวิธีที่แนะนำansi-termใน Emacs 25หรือไม่?

วิธีทดสอบว่าอีมูเลเตอร์รองรับ " True color ":

นี่คือตัวอย่างจากลิงค์ด้านบนที่จะทดสอบว่าตัวจำลองสนับสนุนสีจริงหรือไม่:

awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    for (colnum = 0; colnum<77; colnum++) {
        r = 255-(colnum*255/76);
        g = (colnum*510/76);
        b = (colnum*255/76);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}'

หากได้รับการสนับสนุนบรรทัดล่างจะแสดงการไล่ระดับสีที่ดีเช่นเดียวกับที่แสดงด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่


จากสิ่งที่ฉันอ่านNeoVim (โปรแกรมแก้ไข VIM) ได้เพิ่มการสนับสนุนในปี 2558 และมีการร้องขอไปยังบั๊ก Emacs เพื่อเพิ่ม


ตั้งแต่วันที่ 26 Emacs ฉันไม่สามารถมองเห็นansi-color-names-vectorตัวแปรที่ฉันสามารถกำหนดเองได้ นอกจากนั้นฉันก็วิ่งmulti-termและใช้zsh เป็นเปลือก สคริปต์ของคุณไม่สร้างผลลัพธ์ที่เป็นบวก :-(
spav

คำตอบ:


2

ถูกต้องที่คำว่า ansi รองรับเพียง 8 สีเท่านั้น แต่การใช้ xterm-color.el แทน ansi-color.el คุณจะได้รับ 256 สี

"ตัวแปลคุณสมบัติข้อความสี ANSI & xterm-256 สำหรับ Emacs"

https://github.com/atomontage/xterm-color


ฉันจะใช้มันกับansi-termEmacs ได้อย่างไร?
Amelio Vazquez-Reina

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