Sé que en vim puedo agregar
set nocompatible
en .vimrc
Para evitar que las teclas de flecha de la pantalla A, B, C, D en el modo de inserción.
Pero estoy usando vi Versión 4.0 (gritter) 25/12/06 .
¿Cómo puedo obtener el mismo comportamiento?
== EDITAR == (1)
Estoy usando la versión vi de Arch Linux, que está construida a partir de este repositorio CVS (última confirmación el 24 de febrero de 2007) con el siguiente comando:
make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \
TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8"
y con estos tres parches: fix-tubesize-short-overflow.patch , navkeys.patch y preserve-dir.patch .
== EDITAR (2) ==
Los problemas ocurren en LXTerminal 0.2.0 , Termite 10-1 , Tilda 1.2.4-1 , Terminator 0.98-1 y xterm 320-2, pero no en urxvt v9.21 ni en las consolas virtuales de Linux.
== EDITAR (3) ==
De acuerdo con la Single Unix Specification flecha a la izquierda, flecha hacia abajo, haga flecha, flecha hacia arriba, respectivamente, corresponden a los siguientes capname: kcub1
, kcud1
, kcuf1
y kcuu1
. La comparación de las entradas terminfo de xterm
y rxvt-unicode-256color
para estos capterms da:
$ 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'.
La modificación de la xterm terminfo entrada por substituing '\EOD'
, '\EOB'
, '\EOC'
, '\EOA'
por '\E[D'
, '\E[B'
, '\E[C'
, '\E[A'
debe resolver el problema, pero es una idea buena? ¿Quizás interrumpirá el uso de otras teclas de flecha de programas?
TERM
en la termcap
o terminfo
las bases de datos está fuera de sincronía con los códigos producidos por el teclado. La solución no es cambiar el TERM
, sino averiguar si su vi
enlace está relacionado con termcap
o terminfo
, encontrar los códigos de teclas emitidos por el teclado y corregir la base de datos correspondiente en consecuencia. Quejarse al administrador del sistema también podría funcionar.
terminfo
.