คำถามนี้ได้รับการตอบที่นี่: เมื่อใช้งานหน้าจอบน OSX คำสั่ง + r ทำให้ปุ่มลูกศรขึ้นเป็นกลุ่มในทุกหน้าจอ
คัดลอกคำตอบ:
ในฐานะผู้สนับสนุน Vim ที่ดีฉันรู้สึกผูกพันที่จะบอกให้คุณเรียนรู้การใช้ hjkl เป็นปุ่มเคอร์เซอร์ของคุณ ผ่านครึ่งทางของการสำรวจปัญหาฉันคิดว่ามันได้แก้ไขตัวเองอย่างลึกลับจนกระทั่งฉันรู้ว่าฉันกำลังทดสอบโดยใช้ hjkl แทนที่จะเป็นปุ่มลูกศรจริง
อย่างไรก็ตามตอนนี้สำหรับคำตอบที่แท้จริง
แทนที่จะปิดหน้าจอทั้งหมดและเริ่มใหม่คุณสามารถใช้ประโยชน์จากความสามารถของหน้าจอในการเลื่อนไปมาระหว่างเทอร์มินัล กด CTRL + A CTRL + D เพื่อแยกหน้าจอจากเทอร์มินัลของคุณจากนั้นเรียกใช้หน้าจอ -D -R เพื่อติดตั้งใหม่ สิ่งนี้จะทำให้ปุ่มลูกศรทำงานอีกครั้ง
หากคุณไม่ได้อยู่ในหน้าจอ แต่เป็น Vim คุณสามารถ CTRL + Z แล้วพิมพ์ fg เพื่อเอฟเฟกต์เดียวกัน
คุณสามารถแก้ไขปัญหาเคอร์เซอร์คีย์ใน Vim ได้ แต่การรีเซ็ตอาจมีการเปลี่ยนแปลงตัวเลือกเทอร์มินัลอื่น ๆ ดังนั้นจึงปลอดภัยกว่าที่จะทำตามที่อธิบายไว้ข้างต้นเพื่อไม่ให้คุณเห็นปัญหาการแสดงผล / คีย์บอร์ดแบบสุ่มอื่น ๆ หากคุณต้องการการแมปใหม่นี่คือ:
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>
รายละเอียดสกปรก:
ทั้งกลุ่มและหน้าจอใช้ไลบรารี ncurses เพื่อจัดการเทอร์มินัล หนึ่งในสิ่งที่ ncurses กำลังทำเมื่อใช้การควบคุมของเทอร์มินัลที่ใช้งานร่วมกับ VT100 ได้คือการเปลี่ยนปุ่มลูกศรเป็น "โหมดแอปพลิเคชัน" ซึ่งจะเปลี่ยนรหัสที่ปล่อยออกมา เช่นปุ่มลูกศรขึ้นเช่นเปลี่ยนจาก Esc [A เป็น Esc O A รหัสควบคุม VT100 ที่ปล่อยออกมาคือ Esc [? 1 ชม. คำสั่งรีเซ็ตเทอร์มินัลที่ส่งโดย Command + R รีเซ็ตเคอร์เซอร์คีย์เป็นค่าเริ่มต้น
หน้าจอการถอดและติดตั้งใหม่ทำให้ ncurses ทำการควบคุมสถานีอีกครั้งซึ่งจะนำการตั้งค่าทั้งหมดที่ชอบมาใช้ใหม่ซึ่งอาจเป็นวิธีที่พกพาได้และน่าเชื่อถือที่สุดในการคืนค่าสิ่งต่าง ๆ ให้เป็นปกติ
รหัสควบคุม VT100: http://www.handshake.de/infobase/dfue/prgrmmer/t322.htm