ฉันรู้ว่าในกลุ่มฉันสามารถเพิ่มได้
set nocompatible
ใน.vimrc
เพื่อหลีกเลี่ยงปุ่มลูกศรที่แสดง A, B, C, D ในโหมดแทรก
แต่ฉันใช้ vi เวอร์ชัน 4.0 (gritter) 12/25/06
ฉันจะได้รับพฤติกรรมเดียวกันได้อย่างไร
== แก้ไข == (1)
ฉันใช้รุ่น vi จาก Arch Linuxซึ่งสร้างจากที่เก็บ CVSนี้(ส่งมอบครั้งล่าสุด 24 กุมภาพันธ์ 2550) ด้วยคำสั่งต่อไปนี้:
make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \
TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8"
และวิทยานิพนธ์สามแพทช์: การแก้ไข tubesize-สั้น overflow.patch , navkeys.patchและรักษา-dir.patch
== แก้ไข (2) ==
ปัญหาเกิดขึ้นในLXTerminal 0.2.0 , ปลวก 10-1 , Tilda 1.2.4-1 , Terminator 0.98-1และxterm 320-2แต่ไม่ใช่ในurxvt v9.21หรือในคอนโซลเสมือนของ Linux
== แก้ไข (3) ==
ตามที่สเปก Unix เดี่ยวลูกศรซ้ายลงลูกศรขวาลูกศรลูกศรขึ้นสอดคล้องกับลำดับ capname ต่อไปนี้: kcub1
, kcud1
, และkcuf1
kcuu1
การเปรียบเทียบรายการ terminfo จากxterm
และrxvt-unicode-256color
สำหรับ capterms เหล่านี้จะให้:
$ infocmp xterm rxvt-unicode-256color | grep -E 'kcuf1|kcub1|kcud1|kcuu1'
kcub1: '\EOD', '\E[D'.
kcud1: '\EOB', '\E[B'.
kcuf1: '\EOC', '\E[C'.
kcuu1: '\EOA', '\E[A'.
แก้ไข xterm terminfo รายการโดย substituing '\EOD'
, '\EOB'
, '\EOC'
, '\EOA'
โดย'\E[D'
, '\E[B'
, '\E[C'
, '\E[A'
ควรจะแก้ปัญหาที่เกิดขึ้น แต่มันเป็นความคิดที่ดีหรือไม่? อาจจะเป็นการแบ่งโปรแกรมอื่น ๆ ที่ใช้ปุ่มลูกศรใช่ไหม
TERM
ในtermcap
หรือterminfo
ฐานข้อมูลไม่สอดคล้องกับรหัสที่ผลิตโดยแป้นพิมพ์ วิธีการแก้ปัญหาคือไม่เปลี่ยนTERM
แต่เพื่อดูว่าคุณvi
เชื่อมโยงกับtermcap
หรือterminfo
ค้นหารหัสที่ปล่อยออกมาจากแป้นพิมพ์และแก้ไขฐานข้อมูลที่สอดคล้องกัน การร้องเรียนกับดูแลระบบอาจทำงานได้เช่นกัน
terminfo
ก็ควรใช้แล้ว