tmux, Vim และ Solarized


19

สถานที่

การเรียกดูรอบ ๆtmux , VimและSolarizedฉันสามารถค้นหาข้อร้องเรียนจำนวนมากเกี่ยวกับ 256 สีและ "ประสบการณ์ผู้ใช้" ดีฉันมีตรงข้าม "ปัญหา" คือเป็นกลุ่มทำงานได้ดีกับเต็มsolarizedธีมเฉพาะในtmux

พื้นหลัง

ตอนนี้ฉันได้ปรับแต่งและปรับแต่งด้วยเทอร์มินัลUbuntuและโทนสีของGuakeแล้วและฉันก็เกือบจะถึงความสมบูรณ์แบบที่เข้าถึงได้เมื่อฉันใช้tmuxซึ่งหมายความว่าตลอดเวลา ตอนนี้ฉันกำลังพยายามที่จะเข้าใจว่าทำไมสิ่งนี้จึงเกิดขึ้น

ที่นี่ด้านล่างมีสองเทอร์มินัลหนึ่งทางด้านซ้ายกำลังเรียกใช้เฉพาะกลุ่ม (แสดงปัจจุบัน.vimrc) ในขณะที่อีกกลุ่มกำลังเรียกใช้กลุ่มภายในกลุ่มเซสชั่นtmux อย่างที่คุณเห็นชัดเจนเฉพาะในเซสชั่นtmuxตัวอักษรมีความหนาซึ่งฉันเดาว่าถูกต้อง (หรือไม่?)

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

คำถาม

ทำไมtmuxอนุญาตให้ใช้ฟอนต์ตัวหนาในขณะที่เทอร์มินัลซึ่งtmuxรันอยู่ไม่ได้? มันเป็นข้อบกพร่องหรือคุณสมบัติ?


อะไรคือผลลัพธ์ของการecho $TERMเข้าและออกจากtmux?
jasonwryan

tmuxกล่าวว่าscreenในขณะที่เทอร์กล่าวว่าxterm:)
Atcold

@jasonwryan อ่านคำถามอื่น ๆ OP ของที่นี่และคำตอบ Gilles เพื่อหนึ่งที่คล้ายกันที่นี่ เห็นได้ชัดว่า$TERMไม่เกี่ยวข้อง
terdon

@terdon เป็นเนื้อหาในกรณีนี้: tmux ต้องการให้ตั้งค่าคำเป็นหน้าจอ (หรือตัวแปร) และ xterm คือตามค่าเริ่มต้นคือ 8 สี นั่นเป็นสาเหตุที่ OP เห็นความแตกต่าง
jasonwryan

ใส่xterm*termName: xterm-256colorของคุณ~/.Xresourcesและดูว่ามันสร้างความแตกต่างหรือไม่ ...
jasonwryan

คำตอบ:


22

คำตอบสั้น ๆ

มันเป็นข้อผิดพลาด

คำตอบแบบเต็ม

ดูเหมือนว่าการสร้างภาพข้อมูลที่ "ถูกต้อง" นั้นอยู่ทางด้านซ้ายซึ่งตัวอักษรตัวหนาจะไม่แสดงผล สำหรับสิ่งที่ฉันสามารถเข้าใจ ( นี่คือการอ้างอิง) แอตทริบิวต์ตัวหนาถูกนำมาใช้อย่างชาญฉลาด, การตั้งค่าที่ไฮไลต์รุ่น 8 สีฐาน

ในอดีตมีการติดต่อกันแบบหนึ่งต่อหนึ่งระหว่างรุ่น ANSI สีเริ่มต้น 8 ตัวหนาและรุ่นสว่างของสีเริ่มต้น 8 สี ย้อนกลับไปในวันที่เมื่อโปรแกรมสีเรียกร้องให้แสดงข้อความที่เป็นตัวหนามันอาจจะง่ายกว่าสำหรับเทอร์มินัลอีมูเลเตอร์ที่จะแสดงเวอร์ชั่นที่สว่างกว่าของสีใด ๆ ก็ตามที่เป็นข้อความ (และคาดว่าผู้ใช้จะตีความ แบบอักษรที่มีน้ำหนักตัวหนา

โดยทั่วไปสิ่งที่เกิดขึ้นที่นี่คือว่าในเพื่อที่จะใช้เต็มsolarizedจานสีกับสีส้ม , สีม่วงและทุกระดับของสีเทา , สีจะเรียกว่ามีแอตทริบิวต์ที่เป็นตัวหนาซึ่งจะหมายถึงทางเลือก 8 สีของ จานสี ANSI

เทอร์มินัลเข้าใจสิ่งนี้อย่างถูกต้องและแสดงสีส้มและสีเทาความคิดเห็นในการเรียงพิมพ์ปกติในขณะที่tmuxเพิ่มฟอนต์ตัวหนาที่ไม่จำเป็น กล่าวโดยสรุปทางด้านซ้ายนั้นถูกต้องในขณะที่ด้านขวาไม่ถูกต้อง

คำถามที่ 2

มีวิธีปิดใช้งานการเรนเดอร์ที่ชัดเจนของtmuxหรือไม่?
ฉันยังต้องทำวิจัยเกี่ยวกับเรื่องนี้และฉันจะอัปเดตคำตอบนี้ทันทีที่ฉันพบบางอย่าง

คำตอบ 2

และที่นี่เรามีทางออก! :)

เพื่อให้tmuxทำงานอย่างถูกต้องเราต้องเรียกมันว่าบอกเขาว่าเราอยู่ในสภาพแวดล้อมที่เปิดใช้งาน 256 สี

TERM=xterm-256color /usr/bin/tmux

เพื่อความสะดวกเราสามารถทำได้alias(เช่นคุณเพิ่มalias tmux="<the line above>"ในของคุณ~/.bashrc)

tmux ตีความสี "ตัวเลือกทางเลือก" ที่ไม่ใช่ตัวหนาอย่างถูกต้อง

โทรtmuxเป็นtmux -2สำหรับการบังคับtmuxในการทำงานด้วยการสนับสนุน 256 สี (แทนการกําหนดTERMตัวแปรสิ่งแวดล้อม) จะไม่อนุญาตให้มีการตีความที่ถูกต้องของ "ตัวหนาทางเลือก" 8 สี (เช่นตัวแปรที่สดใสนอกจากนี้ยังจะส่งผลให้มีการเรียงพิมพ์ตัวหนา) ดังนั้นผมขอแนะนำให้ใช้วิธีการแก้ปัญหาที่นี่ดังกล่าวข้างต้นมีทั้งที่ถูกต้องตีความ 256 สีและไม่ใช่ตัวหนาสี "ตัวหนาทางเลือก"


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