Pregunta

Uso vim (7.1) en OpenVMS V7.3-2.

Me conecto a VMS a través de una sesión de telnet con SmartTerm, un emulador de terminal.

Funciona bien.

Pero cuando comienzo una sesión de telnet desde una sesión de VMS (conectada a través de SmartTerm) a otra sesión de VMS, algunas teclas no funcionan correctamente.

|--------------| telnet   |-------------| telnet   |-----------------|
|  Smartterm   | ------>  | VMS, Vim OK | ------>  | VMS, Vim broken |
|--------------|          |-------------|          |-----------------|

Insertar, Eliminar, Inicio, Fin, RePág y AvPág. son como ~ en modo normal (mayúsculas a minúsculas o viceversa)

¿Alguna idea?

=============================================

Editar

Me acabo de dar cuenta de que no mencioné que la segunda sesión telneted está en la misma caja de VMS.

Hago eso porque necesito hacer algo con los derechos de otro usuario.

¿Fue útil?

Solución

Además de ajustar qué emulación de terminal se usa, también es una buena idea aprender las pulsaciones de vim para las acciones que intenta realizar. Estos son más confiables y no dependen del terminal o del teclado. Por ejemplo:

  • Insertar: i
  • Inicio: ^ va a la primera letra que no es un espacio en blanco, 0 va a la primera columna siempre
  • Fin: $
  • PageUp, PageDown: ctrl-u, ctrl-d mueve media página a la vez

Otros consejos

He experimentado problemas similares al resucitar una vieja y polvorienta caja de Solaris. Era demasiado perezoso para buscar la forma en que debería configurar mis variables t_ ... correctamente, por lo que volví a asignar las secuencias de escape del terminal defectuosas:

:map xxx 0          (press <C-v><Home> in place of xxx)
:map xxx <C-b>      (press <C-v><PgUp> in place of xxx)
... etc

Si quieres configurar este maldito derecho, RTFMing puede comerse un poco de nervios y tiempo:

:h terminal-options

Por lo general, esto se debe a la emulación del terminal, por lo que algo no está pasando las claves correctas. Hace años que no hago esto, pero busca cosas como VT-100 y similares. Dudo que sea específico para vim, tampoco :)

Lo siento, no puedo ser de más ayuda.

La primera pregunta que debes hacer es simplemente: ¿de qué estás sentado delante? ¿Está realmente en la consola de un VAX o Alpha ejecutando OpenVMS? Mi conjetura es que la respuesta es no.

En el improbable caso de que la respuesta sea sí, simplemente ingrese:

$ SHOW TERMINAL

y asegúrese de que la variable TERM en el host remoto de UNIX coincida exactamente con esto.

Si mi suposición es correcta y está sentado frente a una PC o una Mac que ejecuta algún tipo de emulador de terminal como PuTTY o Terminal, debe explorar las opciones de su software para asegurarse de que el terminal que emula se refleje correctamente tanto en la visión del mundo del sistema VMS como en la del host remoto de UNIX.

Una vez que hayas descubierto qué tipo de terminal estás emulando, usa el comando VMS anterior una vez más en el sistema VMS al que estás conectado para asegurarte de que haya una coincidencia.

Si no es así, simplemente corrija la situación escribiendo:

$ SET TERMINAL / DEVICE = (su nombre de término de terminal, por ejemplo, vt100)

y luego asegúrese de que TERM en el host remoto de Unix coincida con lo que está configurado el sistema VMS.

Una vez que hagas todo esto, todo debería funcionar bien.

Además de cómo configurar las variables env en la compatibilidad del dispositivo terminal, una sugerencia sobre el propio cliente telnet podría ser útil:

Antes de la combinación Esc habitual, use Ctrl + [, por ejemplo, para salir de vim

Ctrl+[ Esc :q!
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top