Cómo asignar las teclas PageDown y PageUp para que funcionen normalmente

Cómo asignar las teclas PageDown y PageUp para que funcionen normalmente

Cuando abro un documento usando vio vim, no puedo navegar por la página usando las teclas Page Upy Page Down. Al presionar estas teclas, vim parece comportarse de manera anormal y cambia el carácter entre mayúsculas y minúsculas debajo del cursor. Luego, tardará unos segundos en volver al insertmodo.

Por favor, hágamelo saber cómo asignar estas teclas para que, al presionarlas, pueda desplazarme por las páginas sin problemas, como Ctrl+ ( f/ b/ u/ d ).

Actualizar

Información de la máquina y Vim

$ cat /etc/*-release  
Red Hat Enterprise Linux Server release 5.5 (Tikanga)


$ vim --version
VIM - Vi IMproved 7.0 (2006 May 7, compiled Jun 12 2009 07:08:36)

Nota

Estoy usando Putty para conectarme a esta máquina.

Respuesta1

Actualizar:

Estoy usando Putty para conectarme a esta máquina.

Entonces adiviné correctamente y mi respuesta a continuación probablemente se aplique.


Respuesta original:

No hay suficiente información en su pregunta para estar seguro de su problema. Mientras esperamos, permítame contarle a la audiencia una pequeña historia:

El emulador de terminal y el editor

Si accede a una computadora Linux usando un emulador xterm como Putty, su clave PgUp envía cuatro caracteres Escape [ 5 ~al sistema Linux.

El sistema Linux procesa esto y luego pasa las pulsaciones de teclas no realizadas a la aplicación.

La aplicación, vim, utiliza una biblioteca del sistema (creo) para traducir secuencias de caracteres nuevamente en "claves" según el valor de la variable de entorno TERM y la entrada correspondiente enterminfo

Si terminfo no define PgUp (o cualquier otra clave) como Escape [ 5 ~, Vim (probablemente) procesará los cuatro caracteres individualmente.

"Muchos códigos de teclas del cursor comienzan con Esc. Vim debe averiguar si se trata de una sola pulsación de la tecla Esc o del inicio de una secuencia de teclas del cursor. Espera a que llegue el siguiente carácter. Si no llega en un segundo Se asume una sola Esc."Entonces vim espera un poco para ver si Esc desea salir del modo de inserción.

[y 5son comandos Vim válidos. Pero tal vez Vim ve el Esc como una señal del inicio de una secuencia de escape que no reconoce: tiene que adivinar dónde termina esa secuencia y reiniciar la interpretación de caracteres como comandos o datos desde ese punto.

~es un comando vim para alternar entre mayúsculas y minúsculas del carácter debajo del cursor.

Un final feliz

Configure TERM correctamente (para que coincida con la configuración de PuTTY/emulador) y asegúrese de que terminfo tenga una definición de PgUp, etc. En Unix-land, los teclados existían antes de que naciera la PC IBM, algunos de ellos tenían una Previous Pagetecla, por lo que esta capacidad de tecla se llama kpp.

  $ infocmp xterm | grep kpp
    knp=\E[6~, kpp=\E[5~, kri=\E[1;2A, mc0=\E[i, mc4=\E[4i,

Posdata

cómo mapear estas claves

Hasta donde yo sé, Putty no tiene una capacidad de asignación de teclas arbitraria (creo que estaba en la lista de deseos) Entonces...

  1. Configure Putty para emular un tipo de terminal conocido y bien definido. Desafortunadamente no hay ninguno, por lo que algo como xterm tendrá que ser suficiente.

  2. Asegúrese de que Putty le indique al cuadro de Linux qué tipo de terminal está emulando. En parte, esto se debe a la configuración de Putty y en parte al uso de un protocolo que comunica TERM (por ejemplo, el soporte ssh de Putty) en lugar de uno que no lo hace (el soporte telnet de Putty).

  3. Asegúrese de que TERM esté realmente configurado en lo que debería ser ( echo $TERM).

  4. Asegúrese de que la entrada terminfo para esos valores TERM defina las claves que desea (ver arriba).

  5. Asegúrese de que la tecla RePág envíe lo que debería. En Vim ingrese al modo de inserción y presione Ctrl+ VluegoPgUp

Respuesta2

export TERM=xterm debería solucionar su problema

información relacionada