การตั้งค่าตัวแปร $ TERM ถูกต้องหรือไม่


10

ฉันตั้งค่า$TERMตัวแปรเพิ่มบรรทัดXTerm*termName: xterm-256colorใน.Xresourcesไฟล์ของฉัน เมื่อฉันทำฉันไม่ทราบว่าสิ่งที่ตั้งใจ (ฉันทำตามคำแนะนำออนไลน์เพื่อเปลี่ยนรูปลักษณ์ของxterm) แต่ตอนนี้ฉันได้อ่านอีกเล็กน้อยและกังวลถ้าสิ่งที่ฉันทำผิด โดยเฉพาะฉันต้องการทราบว่ามีบางสิ่งไม่ดีในการตั้งค่า$TERMตัวแปรด้วยตนเองและในกรณีที่เป็นเช่นนั้นฉันจะเปลี่ยนความผิดพลาดได้อย่างไร

ในกรณีที่คุณต้องการฉันทำงาน Fedora xterm20


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

@uprego คุณช่วยอธิบายเกี่ยวกับ "abscence of remote connections" ได้ไหม?
Santaru72

คุณอาจกำลังใช้เซสชันtmuxแบบถาวรด้วยตัวเลือก 256 สี แต่ถ้าคุณแนบจากเซสชัน ssh สถานการณ์ที่เป็นไปได้จะขยายมากเกินไปที่จะแสดงรายการ แต่ละแอปพลิเคชันจะมีหรือไม่ได้ผลที่ต้องการขึ้นอยู่กับความสามารถของโปรแกรมเมอร์แต่ละคน ตามที่ @ goldilocks ชี้ให้เห็นในคำตอบของเขาไม่ควรเป็นอันตราย แต่มีความแตกต่างระหว่าง "ไม่ควร" และ "ไม่สามารถเป็น"
41754

@uprego: แนบเนียนฉันควรจะพูดว่า "ไม่สามารถ" เว้นแต่คุณจะนับผลลัพธ์ที่อ่านไม่ออกว่า "อันตราย"
goldilocks

คำตอบ:


7

ส่วนใหญ่คุณไม่ควรตั้งค่าTERMด้วยตนเอง ตัวแปรจะถูกตั้งค่าโดยอัตโนมัติเสมอและมีชุดสถานการณ์ที่แคบซึ่งค่าเริ่มต้นไม่ถูกต้องเท่านั้น

ค่าของTERMความต้องการที่จะอ้างอิงในฐานข้อมูลterminfoของระบบ(หรือสำหรับระบบที่ล้าสมัยสองสามตัวในฐานข้อมูลtermcap ) Terminfo และประเภทเทอร์มินัลแผนที่ Termcap กับคำอธิบายของความสามารถของเทอร์มินัลที่ใช้งาน ค่าของTERMเป็นประเภทอาคาร

เหตุผลหลักว่าทำไมบางครั้งคุณอาจต้องเปลี่ยนTERMคือถ้าคุณเข้าสู่ระบบจากระยะไกลเมื่อเครื่องท้องถิ่นและเครื่องระยะไกลมีฐานข้อมูลสถานีที่แตกต่างกัน

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

ตัวอย่างของสิ่งนี้คือ xterm ที่มี 16 สีเทียบกับ xterm ที่มี 256 สี xterm แบบดั้งเดิมรองรับเพียง 16 สีเท่านั้นนั่นคือสิ่งที่xtermฐานข้อมูลเทอร์มินัลระบุ การเปลี่ยนxtermรายการจะทำให้ผู้ใช้รุ่น xterm รุ่นใหม่มีความสุข แต่จะแยกการกำหนดค่าของผู้ใช้รุ่น xterm รุ่นเก่าที่เข้าสู่ระบบจากระยะไกล การเปลี่ยนเป็นชื่อใหม่ -  xterm-256color- มอบความสามารถที่ใหม่กว่าเมื่อใดก็ตามที่มี แต่จะไม่รู้จักถ้าคุณล็อกอินจากเครื่องด้วยฐานข้อมูลเทอร์มินัลรุ่นเก่า เนื่องจากไม่มีวิธีแก้ปัญหาที่สามารถตอบสนองทุกคนคุณจะได้รับตัวเลือก: ติดกับxtermและไม่ได้รับ 256 สีหรือใช้xterm-256colorซึ่งไม่ได้ผลถ้าคุณเข้าสู่เครื่องระยะไกลที่ไม่สนับสนุน

การปล่อยให้ค่าเริ่มต้นxtermและการตั้งค่าtermNameทรัพยากรเป็นxterm-256color(ซึ่งทำให้ตัวแปรสภาพแวดล้อมTERMถูกตั้งค่าเป็นค่าเดียวกัน) จึงเป็นตัวเลือกที่สมเหตุสมผล การตั้งค่าTERMตามอำเภอใจจะไม่ทำงาน แต่ทั้งคู่xtermและxterm-256colorสมเหตุสมผล


3

ฉันตั้งค่าตัวแปร $ TERM เพิ่มบรรทัด XTerm * termName: xterm-256color เป็นไฟล์. Xresources ของฉัน

ไม่เป็นไรตราบใดที่คุณตระหนักถึงสิ่งที่คุณทำ เทอร์มินัล GUI ส่วนใหญ่รองรับสิ่งนี้

คุณยังสามารถตั้งค่าได้จากบรรทัดคำสั่งหรือในสคริปต์

export TERM=xterm-256color

สิ่งนี้ใช้ได้กับเทอร์มินัลนั้นหรือลูก ๆ

ค่าเริ่มต้นแบบพกพาจะเป็นเพียงxtermซึ่งหมายความว่ารองรับ 16 สี หากคุณมีชุด 256 สีและเทอร์มินัลของคุณไม่รองรับการใช้งานแอพ TUI 256 สีจะดูแปลก ๆ คุณอาจสังเกตเห็นได้ทันที แต่ไม่ควรเป็นอันตราย


ดังนั้นการตั้งค่าXTerm*termName: xtermแทนXTerm*termName: xterm-256colorฉันควรจะดีใช่ไหม
Santaru72

ถ้านั่นคือสิ่งที่คุณต้องการอย่าตั้งอะไรเลย xtermเป็นค่าเริ่มต้นสำหรับxterm;) แต่มันหมายถึง 16 สี จุดสำคัญของการใช้xterm-256colorคือการบอกการใช้งานที่สนับสนุนขั้ว 256 สี หากคุณไม่ทำเช่นนั้นพวกเขาจะเข้าใจ 16 สี
goldilocks
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.