Domanda

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

Mi collego a VMS attraverso una sessione telnet con SmartTerm, un emulatore di terminale.

Funziona bene.

Ma quando avvio una sessione Telnet da una sessione VMS (connessa tramite SmartTerm) a un'altra sessione VMS, alcune chiavi non funzionano correttamente.

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

Inserisci, Elimina, Home, Fine, PageUp e PageDown sono come ~ in modalità normale (da maiuscolo a minuscolo o viceversa)

Qualche idea?

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

Modifica

Mi sono appena reso conto di non aver menzionato che la seconda sessione telneted si trova sulla stessa casella VMS.

Lo faccio perché devo fare qualcosa con i diritti di un altro utente.

È stato utile?

Soluzione

Oltre a modificare quale emulazione terminale viene utilizzata, è anche una buona idea imparare le sequenze di tasti di Vim per le azioni che si sta tentando di eseguire. Questi sono più affidabili e non dipendono dal terminale o dalla tastiera. Ad esempio:

  • Inserisci: i
  • Home: ^ passa al primo carattere non vuoto, 0 va sempre alla prima colonna
  • Fine: $
  • PageUp, PageDown: ctrl-u, ctrl-d sposta una mezza pagina alla volta

Altri suggerimenti

Ho riscontrato problemi simili durante la risurrezione di una vecchia scatola polverosa di Solaris. Ero troppo pigro per cercare come avrei dovuto impostare correttamente le mie variabili t_ , quindi ho rimappato invece le sequenze di escape del terminale difettose:

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

Se vuoi impostare correttamente questa dannata cosa, RTFMing potrebbe mangiare un po 'di nervosismo e tempo:

:h terminal-options

Di solito questo è dovuto all'emulazione terminale - quindi qualcosa non passa attraverso i tasti giusti. Sono anni che non lo faccio, ma cerco cose come VT-100 e simili. Dubito che sia specifico anche per Vim :)

Mi dispiace non poter essere più di aiuto.

La prima domanda da porsi è semplicemente: cosa stai seduto di fronte? Sei davvero sulla console di un VAX o Alpha con OpenVMS? Suppongo che la risposta sia no.

Nel caso improbabile che la risposta sia affermativa, inserisci semplicemente:

$ SHOW TERMINAL

e assicurati che la variabile TERM sull'host UNIX remoto corrisponda esattamente a questo.

Se la mia ipotesi è corretta e sei seduto di fronte a un PC o un Mac con una sorta di emulatore di terminale come PuTTY o Terminale, allora devi esplorare le opzioni del tuo software per assicurarti che il terminale che emula sia riflesso correttamente sia nella visione del mondo del sistema VMS che in quella dell'host UNIX remoto.

Dopo aver capito che tipo di terminale stai emulando, usa nuovamente il comando VMS sopra sul sistema VMS a cui sei connesso per assicurarti che ci sia una corrispondenza.

In caso contrario, correggi semplicemente la situazione digitando:

$ SET TERMINAL / DEVICE = (il tuo nome termainal - ad es. vt100)

e quindi assicurarsi che TERM sull'host unix remoto corrisponda a quello su cui è impostato il sistema VMS.

Una volta fatto tutto ciò, tutto dovrebbe funzionare bene.

Oltre a come impostare le variabili env sulla compatibilità dei dispositivi terminali, potrebbe essere utile un suggerimento sul client telnet stesso:

Prima della solita combinazione Esc utilizzare Ctrl + [, ad es. per uscire da vim

Ctrl+[ Esc :q!
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top