บทนำ
คำถามของฉันเกิดขึ้นจากความจำเป็นของการทำความเข้าใจว่าทำไมฉันมีตอนนี้ (หลังจากการทดลองหลาย) เทอร์มิและtmuxสนับสนุน 256 สีและtput colors
บอกฉันมีเพียง 8 ของพวกเขา
พื้นหลัง
ให้เริ่มต้นจากจุดเริ่มต้น.
ฉันใช้กล่องUbuntu , Guake , tmux , Vimและฉันชอบธีมของโซลาริเซชั่น พวกเขาดูน่ากลัวมากดังนั้นฉันตัดสินใจเปิดใช้งานการสนับสนุน 256 สีและเล่นไปรอบ ๆ
ลองมาดูสิ่งที่เกิดขึ้นสำหรับฉันเทอร์มิ tput colors
บอกว่ามี 8 สี โดยส่วนตัวผมตั้งไว้ที่สีม่วงด้านซ้ายและแน่นอนทางด้านขวาเรามีสีฟ้า 2 เฉด กล่าวว่า$TERM
xterm
(มีสีls
ฉันeval
นี้ในของฉัน.bashrc
.)
Vimยังดูดีแม้ว่าฉันจะเรียกมันด้วย256
ค่าสถานะในสภาพแวดล้อมที่ไม่รองรับ256 สี
set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized
ผู้ชายเพียงคนเดียวที่บ่นเกี่ยวกับพื้นที่สีลดลงเป็นtmux การโทรtmux
ให้ผลลัพธ์ที่คาดหวังไว้ "ผิด"
แต่เรียกร้องtmux
กับ-2
ธงทำให้ทุกอย่างทำงานได้ดีอย่างน่าอัศจรรย์
ตอนนี้สิ่งเดียวที่ฉันเข้าใจ-2
คือเทียบเท่าexport TERM=screen-256color
( แหล่งที่มา )
Guakeทำงาน analogously เพื่อเทอร์และทั้งสองของพวกเขาตอบคำถามที่xterm
echo $TERM
คำถาม
โดยพื้นฐานแล้วไม่มีใครเข้าใจว่าทำไมทุกอย่างถึงทำงานไม่ได้
- ฉันเป็นคนซาดิสต์ที่บ่นว่าทำไมสิ่งต่าง ๆ ถึงได้ผล อาจจะ.
- มีเหตุผลที่ดีกว่านี้ไหม แน่นอน: ฉันต้องการแก้ไขลักษณะที่ปรากฏของกล่อง Ubuntu อื่น ๆ ในสำนักงานของฉันและฉันต้องการที่จะเข้าใจว่าทำไมสิ่งต่าง ๆ ทำงานหรือไม่ทำงาน
การทดลองเพิ่มเติม
การเรียกใช้สคริปต์นี้ (แก้ไขเล็กน้อย) ที่ฉันxterm
ให้ผลลัพธ์ต่อไปนี้: 256 สี แต่มีเพียง 16 เท่านั้นที่แสดงอย่างถูกต้อง
จากนั้นการเปลี่ยนโปรไฟล์ของเทอร์มินัล 16 สีเหล่านี้ก็เปลี่ยนไปด้วย
มีการทดสอบเพิ่มเติมดังนี้
จากซ้ายไปขวาบนลงล่างเรามีsolarizedชุดรูปแบบสี, dircolor
ansi-dark
และ256dark
แล้ว (เริ่มต้นTango ) โทนสี, และdircolor
ansi-dark
256dark
สังเกต : ในทฤษฎีdircolor
ansi-dark
บนsolarizeddircolor
256dark
โทนสีที่ควรจะมีการแข่งขันอย่างใกล้ชิด สิ่งนี้ไม่ได้เกิดขึ้นอย่างชัดเจนสำหรับไฟล์ที่ระบุในรายการ แต่นี้ค่อนข้างเกิดขึ้นเมื่ออยู่ในไดเรกทอรีการทำงานมีโฟลเดอร์ , ไฟล์ข้อความและการเชื่อมโยงสัญลักษณ์ สรุป : ไม่มีความสนใจเท่าที่จ่ายในขณะที่เข้ารหัส256dark
สี
ข้อสรุปเบื้องต้น
xterm
สนับสนุน 256 สีแม้สิ่งที่tput colors
กล่าวว่า โปรแกรมสามารถอ้างถึงansi
จานสี (ปรับแต่งโดยผู้ใช้) หรือกำหนดสีของพวกเขาเลือกจากทั้งหมด 256 สี
tput colors
เป็นการทดสอบที่ไม่น่าเชื่อถือ คุณช่วยตรวจสอบข้อสรุปเบื้องต้นของฉันได้ไหม
tput colors
สามารถคืนค่าได้หนึ่งค่าและในเทอร์มินัลที่รองรับ 2,8,16,88 หรือ 256 สีใด ๆ จะส่งคืนเฉพาะค่าแรก (8 ในกรณีของคุณ) ในการรับค่าที่แท้จริงใช้สคริปต์จากความคิดเห็นล่าสุดของฉัน อะไรที่ส่งคืน?