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?
la source
TERM
dans les bases de donnéestermcap
outerminfo
n'est pas synchronisée avec les codes produits par le clavier. La solution n'est pas de changer leTERM
, mais de savoir si votrevi
est lié àtermcap
outerminfo
, 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
.Réponses:
Vous pouvez créer un alias qui définit votre
$TERM
variableAjoutez cela au fichier rc de votre shell et il devrait être défini pour chaque terminal que vous lancez.
la source
Parfois, un tel comportement peut résulter d'une configuration inhabituelle de mappages de touches dans votre
.vimrc
- par exemple, si vous avez quelque chose qui mappe deux ESCpressions de touches:Ensuite, cela peut entraîner un dysfonctionnement de vim avec les touches fléchées.
la source