Saya tahu bahwa dalam vim saya dapat menambahkan
set nocompatible
in .vimrc
untuk menghindari tombol panah menampilkan A, B, C, D dalam mode insert
Tapi saya menggunakan vi Versi 4.0 (gritter) 12/25/06 .
Bagaimana saya bisa mendapatkan perilaku yang sama?
== EDIT == (1)
Saya menggunakan versi vi dari Arch Linux yang dibangun dari repositori CVS ini (komit terakhir 24 Februari 2007) dengan perintah berikut:
make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \
TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8"
dan dengan tiga tesis ini: fix-tubesize-short-overflow.patch , navkeys.patch dan preserve-dir.patch .
== EDIT (2) ==
Masalah terjadi di LXTerminal 0.2.0 , Rayap 10-1 , Tilda 1.2.4-1 , Terminator 0.98-1 dan xterm 320-2 tetapi tidak di urxvt v9.21 atau di konsol virtual Linux.
== EDIT (3) ==
Menurut Spesifikasi Single Unix kiri-panah, turun-panah, kanan panah, up-panah sesuai dengan masing-masing capname berikut: kcub1
, kcud1
, kcuf1
dan kcuu1
. Membandingkan entri terminfo dari xterm
dan rxvt-unicode-256color
untuk capterms ini memberi:
$ 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'.
Memodifikasi xterm terminfo entri dengan substituing '\EOD'
, '\EOB'
, '\EOC'
, '\EOA'
oleh '\E[D'
, '\E[B'
, '\E[C'
, '\E[A'
harus memecahkan masalah tetapi apakah itu ide yang baik? Mungkin itu akan merusak penggunaan tombol panah program lain?
TERM
di termcap
atau terminfo
database tidak selaras dengan kode yang dihasilkan oleh keyboard. Solusinya bukan mengubah TERM
, tetapi untuk mengetahui apakah Anda vi
terhubung dengan termcap
atau terminfo
, temukan kode kunci yang dipancarkan oleh keyboard, dan perbaiki database yang sesuai. Mengeluh kepada sysadmin mungkin berhasil juga.
terminfo
.