ปัญหาพื้นฐานคือการทำแผนที่โดยscreen
ระหว่างเทอร์มินัลจริง (ระบุโดยTERM
ตัวแปรสภาพแวดล้อมภายนอกscreen
) และการจำลองภายในscreen
ไม่สมบูรณ์
หากคุณเกิดขึ้นในการทดสอบ (ใช้vttestหรือตะปู ), คุณอาจสังเกตเห็นข้อบกพร่องสำหรับ
ความพยายามที่จะแก้ไขปัญหาเหล่านี้โดยการตั้งค่าterm
ใน.screenrc
มีข้อเสียเปรียบที่ว่ามันทำงานเฉพาะสำหรับการให้เกิดขึ้นจริงขั้วและไม่ได้พกพาไปใช้งานสถานีอื่น ๆ เอกสารบันทึก
การใช้คำสั่ง term ไม่ได้รับการสนับสนุนเพื่อจุดประสงค์ที่ไม่ใช่ค่าเริ่มต้น
มีวิธีแก้ไขปัญหาอื่น (ที่มีข้อเสียเปรียบที่แตกต่างกัน) โดยใช้คุณสมบัตินี้จากscreen
เอกสาร :
เมื่อหน้าจอพยายามคิดชื่อเทอร์มินัลสำหรับตัวเองอันดับแรกจะค้นหารายการที่มีชื่อหน้าจอ term , โดยที่termเป็นเนื้อหาของ$TERM
ตัวแปรของคุณ หากไม่มีรายการดังกล่าวอยู่หน้าจอจะพยายามscreen
(หรือscreen-w
ถ้าเทอร์มินัลนั้นมีความกว้าง (132 cols ขึ้นไป)) หากไม่พบรายการvt100
นี้จะใช้เป็นตัวทดแทน
ncurses จัดเตรียมคำอธิบายเทอร์มินัลสำรองที่มีประโยชน์หลายอย่างสำหรับกรณีนี้เช่นscreen.xterm-newเพื่อซ่อมแซมปัญหาในการแม็พของหน้าจอ ในทางปฏิบัติฉันใช้TERM=xterm-new
และเมื่อใช้งานหน้าจอจะได้รับการแมปปุ่มฟังก์ชั่นที่ใช้งานได้
อ้างอิงการterm
ตั้งค่าของหน้าจอในการทดสอบคุณอาจสังเกตเห็นว่ายังคงมีปัญหากับการทำแผนที่ซึ่งจะระบุไว้ในทางเลือกเหล่านี้ ถ้ามันเป็นไปได้ที่จะได้รับรายละเอียดที่ถูกต้องโดยใช้ขั้วทางเลือกเหล่านี้จะเป็นนามแฝงง่ายต่อการterm
screen
พวกเขาจะไม่.
ncurses ไม่ได้ให้บริการscreen.xterm
(sic) เพราะ:
TERM=xterm
ถูกนำไปใช้ในวงกว้างสำหรับเทอร์มินัลอีมูเลเตอร์ซึ่งแตกต่างจาก xterm; การเพิ่มการจับคู่นี้จะทำให้สถานการณ์ยิ่งแย่ลงเท่านั้น (ดูตัวอย่างทำไมไม่ใช้เพียงชุดคำว่า "xterm"ในคำถามที่พบบ่อย ncurses)
- ชื่อสำรอง
screen.xterm
มีโอกาสน้อยที่จะติดตั้งบนระบบระยะไกล (ดูความคิดเห็นเปลี่ยนจากมิถุนายน 2015ในฐานข้อมูล terminal)
อย่างไรก็ตามโดยรวมแล้วการใช้ชื่อทางเลือกเป็นการปรับปรุงมากกว่าการใช้term
ในของคุณ.screenrc
: มันแก้ปัญหาได้มากกว่าที่สร้างขึ้น ย้อนกลับเป็นจริงของการterm
ตั้งค่า
term xterm
ของฉัน~/.screenrc
แก้ไขให้ฉันด้วย ขอบคุณอีกครั้ง!