私は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エントリを比較すると、以下が得られます。kcud1
kcuf1
kcuu1
xterm
rxvt-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
に対してリンクされているかどうかを確認し、キーボードから出力されるキーコードを見つけて、それに応じて対応するデータベースを修正することです。システム管理者への苦情もうまくいくかもしれません。termcap
terminfo
terminfo
。