私はvimに私が追加できることを知っています
set nocompatible
で.vimrc矢印キーが挿入モードではA、B、C、Dを表示することを回避します。
しかし、私はvi バージョン4.0(グリッター)12/25/06を使用しています。
同じ動作を取得するにはどうすればよいですか?
==編集==(1)
私が使用しているアーチのLinuxからviのバージョンこのことから構築されているCVSリポジトリを次のコマンドで(前回2007年2月24日をコミット):
make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \
TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8"
そして、これらの3つのパッチ:fix-tubesize-short-overflow.patch、navkeys.patchおよびpreserve-dir.patch。
==編集(2)==
この問題は、LXTerminal 0.2.0、Termite 10-1、Tilda 1.2.4-1、Terminator 0.98-1、xterm 320-2で発生しますが、urxvt v9.21でもLinux仮想コンソールでも発生しません。
==編集(3)==
よると、単一のUNIX仕様左矢印、それぞれ以下のcapnameに対応して上向き矢印、右矢印、下矢印、: 、、kcub1 と。これらのcapterms からのterminfoエントリを比較すると、以下が得られます。kcud1kcuf1kcuu1xtermrxvt-unicode-256color
$ 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'.
substituingによってエントリのterminfoのxtermを変更'\EOD'、'\EOB'、'\EOC'、'\EOA' で'\E[D'、'\E[B'、'\E[C'、'\E[A'問題を解決するが、それは良い考えである必要がありますか?たぶんそれは他のプログラムの矢印キーの使用を壊しますか?
TERM内termcapまたはterminfoデータベースは、キーボードで生成コードと同期から外れています。解決策は、を変更するのTERMではなく、またはviに対してリンクされているかどうかを確認し、キーボードから出力されるキーコードを見つけて、それに応じて対応するデータベースを修正することです。システム管理者への苦情もうまくいくかもしれません。termcapterminfo
terminfo。