Teclas numéricas del teclado en vi insertar letras en lugar de números

8

Soy nuevo en vi. En realidad lo estoy usando solo para modificar pequeños archivos de texto. Creo que tengo un problema grave e inusual con el teclado numérico, como sigue: escribo vi INy presiono enter. Esto me hace acceder al archivo llamado IN. Luego uso las teclas de flecha (o hjkl) para mover el cursor por el archivo. Luego presiono ipara activar insert modey escribir. Aquí viene el problema: el teclado numérico no funciona correctamente, ya que aparece pqrstuvwxylcuando presiono 0123456789+( ,.-*/=todavía funciona).

Enrico Maria De Angelis
fuente
1
¿Por qué mi pregunta fue migrada aquí? El problema no era sobre Mac sino sobre Vi. De hecho, como dije, el teclado numérico no funcionaba solo en Vi . Por el contrario, siempre ha funcionado en el terminal o en otras aplicaciones.
Enrico Maria De Angelis

Respuestas:

8

Según tengo entendido, hay dos modos posibles para los teclados numéricos de los terminales VT100: el modo normal de teclado numérico y el modo de teclado de aplicación . El último tiene las teclas del teclado que no envían números, sino secuencias de escape. Por ejemplo, la tecla '1' envía <ESC>[Oq, la tecla '2' envía <ESC>[Or, de las cuales solo las letras q y r son visibles en la pantalla. Estas son secuencias de control que el programa (host) puede interpretar como comandos para algunas características. Entonces, en este modo, las teclas del teclado se usan prácticamente como teclas de función adicionales.

De acuerdo con el estándar del terminal VT100, un programa (host) puede 'pedir' al terminal que cambie el teclado al modo de aplicación. (Puede hacer esto enviando una secuencia de control específica al terminal). Vi y Vim son conocidos por hacer esto. El cambio de modo no es universal, sino que se basa en un programa a base de programa: solo está activo en el programa que lo solicitó. En otros programas, incluido el shell, el teclado permanece en modo Número. La configuración predeterminada en Terminal.app de OS X es permitir que los programas cambien al modo de aplicación, que es lo que ahora deshabilitó desmarcando la opción "Permitir el modo de teclado de la aplicación VT100". (Por cierto: en OS X 10.7 esta opción está etiquetada como "Comportamiento estricto del teclado VT100").

Ver también:

http://www.vt100.net/docs/vt100-ug/chapter3.html https://ttssh2.osdn.jp/manual/en/usage/tips/appkeypad.html

Dictionarics Anonymous
fuente
Quizás no entendí lo que escribiste. Cuando estoy en la terminal, el teclado funciona bien (inserta números). El comportamiento "extraño" estaba ocurriendo solo en el modo de inserción de Vi.
Enrico Maria De Angelis
1
El interruptor de modo solo está activo en el programa que lo solicitó (en este caso: vi). Por lo tanto, el teclado funciona normalmente en otros programas, incluido el shell. He agregado esta aclaración a la respuesta.
Dictionarics Anonymous
9

Resolví el problema por mi cuenta, pero me gustaría saber POR QUÉ funciona mi solución. Deseleccioné la opción que indica la flecha roja en la siguiente imagen entrar Esto es italiano, pero la versión en inglés de la misma ventana está aquí

Pero no recuerdo haber habilitado esto, pero ahí está.

Enrico Maria De Angelis
fuente
La edición es engañosa. Es falso que " no recuerdo haber habilitado esto "; Por el contrario, estoy seguro de que nunca lo habilité en esta ventana .
Enrico Maria De Angelis
Además, hubo una parte en la que le pedí a alguien que me dijera por qué esta opción tenía esa consecuencia, si hay otras consecuencias, y si es posible que lo haya habilitado por el efecto secundario de un error tipográfico.
Enrico Maria De Angelis
AFAIK la opción está habilitada por defecto (al menos también está habilitada en mi Mac y estoy bastante seguro de que no la habilité deliberadamente). En cuanto a su segundo comentario: vea el comentario en el historial de edición sobre las preguntas de seguimiento ocultas en las respuestas.
nohillside
1
La referencia es que siempre usé el teclado numérico para insertar números en Vi. De todos modos, tal vez la opción podría haber sido activada por la actualización de Yosemite a El Capitán (todavía estoy seguro de que usé el teclado numérico para insertar los números después de la actualización).
Enrico Maria De Angelis
1
Solía ​​estar activado por defecto. A partir de OS X 10.11 El Capitan, está desactivado de forma predeterminada. Vim está habilitando el modo de teclado de aplicación (DECKPAM) sin proporcionar ninguna asignación predeterminada. No he podido descubrir por qué Vim hace esto. Creo que debería proporcionar asignaciones predeterminadas o no habilitar DECKPAM de forma predeterminada.
Chris Page