ปัญหาพื้นฐานคือการทำแผนที่โดย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แก้ไขให้ฉันด้วย ขอบคุณอีกครั้ง!