Pergunta

Eu uso vim (7.1) em OpenVMS V7.3-2.

eu ligar para VMS através de uma sessão de telnet com SmartTerm, um emulador de terminal.

Ele funciona muito bem.

Mas quando eu iniciar uma sessão de telnet de uma sessão de VMS (conectado via SmartTerm) para outra sessão VMS, algumas teclas não funciona corretamente.

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

Insert, Delete, Home, End, Page Up e Page Down são como ~ em modo normal (upcase para minúsculas ou vice-versa)

Qualquer idéia?

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

Editar

Eu só percebi que eu não mencionar que a segunda telneted sessão é no mesmo caixa de VMS.

Eu faço isso porque eu preciso fazer alguma coisa com os direitos de outro usuário.

Foi útil?

Solução

Além de ajustes que emulação de terminal é utilizado, também é uma boa idéia para aprender as teclas digitadas do vim para as ações que você está tentando executar. Estes são mais confiáveis ??e não dependem do terminal ou do teclado. Por exemplo:

  • Inserir: i
  • Home: ^ vai para primeiro caractere não-espaço em branco, 0 vai para primeira coluna sempre
  • End: $
  • PageUp, PageDown: ctrl-u, Ctrl-D mover uma meia-página de cada vez

Outras dicas

Eu experimentei problemas semelhantes, enquanto ressuscitar uma caixa Solaris velho e empoeirado. Eu estava com preguiça de procurar como devo definir o meu t_ ... variáveis ??corretamente, então eu remapeado as sequências de escape terminais defeituosos em vez disso:

: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 você quiser configurar este coisa certa condenado, RTFMing pode comer algum nervo e tempo:

:h terminal-options

Normalmente, isso é por causa da emulação de terminal - assim que algo não está passando as chaves certas thru. Tem sido idades desde que eu fiz isso, mas olhar para coisas como VT-100 e similares. Duvido que seja específica para o vim, ou:)

Desculpe eu não posso ser de mais ajuda.

A primeira pergunta a fazer é simplesmente: O que você está sentado em frente? Você está realmente no console de um VAX ou Alpha OpenVMS correndo? Meu palpite é que a resposta é não.

No caso improvável de que a resposta é sim, basta digitar:

$ MOSTRA TERMINAL

e certifique-se de que a variável TERM no host UNIX remoto corresponde a esta exatamente.

Se o meu palpite é correto e você está sentado na frente de um PC ou um Mac rodando algum tipo de emulador de terminal como massa de vidraceiro ou Terminal, então você precisa para explorar as opções do seu software para garantir que o terminal está emulando é corretamente refletida tanto em visão de mundo do sistema VMS e que do host UNIX remoto.

Uma vez que você descobriu que tipo de terminal que você está emulando, use o comando VMS acima, mais uma vez no sistema VMS estiver conectado a assegurar que existe uma correspondência.

Se não, simplesmente corrigir a situação, digitando:

$ SET TERMINAL / DEVICE = (seu nome termainal - por exemplo vt100)

e, em seguida, certifique-se de que prazo sobre os jogos anfitrião UNIX remotos que o sistema VMS está definido para.

Depois de fazer tudo isso, tudo deve funcionar bem.

Além de como definir env variáveis ??sobre a compatibilidade do dispositivo terminal, uma dica sobre o cliente Telnet em si pode ser útil:

Antes habitual Esc utilização combinação Ctrl + [, v.g. para sair vim

Ctrl+[ Esc :q!
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top