Je sais que dans vim je peux ajouter
set nocompatible
dans .vimrc
Afin d' éviter que les touches flèche afficher A, B, C, D en mode d'insertion.
Mais j'utilise vi Version 4.0 (gritter) 25/12/06 .
Comment puis-je obtenir le même comportement?
== MODIFIER == (1)
J'utilise la version vi d'Arch Linux qui est construite à partir de ce référentiel CVS (dernier commit le 24 février 2007) avec la commande suivante:
make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \
TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8"
et avec ces trois correctifs: fix-tubesize-short-overflow.patch , navkeys.patch et preserve-dir.patch .
== MODIFIER (2) ==
Les problèmes se produisent dans LXTerminal 0.2.0 , Termite 10-1 , Tilda 1.2.4-1 , Terminator 0.98-1 et xterm 320-2 mais pas dans urxvt v9.21 ni dans les consoles virtuelles Linux.
== MODIFIER (3) ==
Selon le Single Unix Specification sur la flèche gauche, flèche vers le bas, flèche droite, flèche haut correspondent respectivement à la capname suivante: kcub1
, kcud1
, kcuf1
et kcuu1
. La comparaison des entrées terminfo de xterm
et rxvt-unicode-256color
pour ces capterms donne:
$ 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'.
Modification de l'entrée terminfo xterm par substituing '\EOD'
, '\EOB'
, '\EOC'
, '\EOA'
par '\E[D'
, '\E[B'
, '\E[C'
, '\E[A'
devrait résoudre le problème , mais est - ce une bonne idée? Peut-être que cela cassera l'utilisation des touches fléchées des autres programmes?
TERM
dans les bases de données termcap
ou terminfo
n'est pas synchronisée avec les codes produits par le clavier. La solution n'est pas de changer le TERM
, mais de savoir si votre vi
est lié à termcap
ou terminfo
, de trouver les codes clés émis par le clavier et de corriger la base de données correspondante en conséquence. Se plaindre à l'administrateur système peut également fonctionner.
terminfo
.