vi problemas de atualização dentro da tela

2

Eu tenho que usar um sistema que requer login através de algumas virtualizações do Citrix / Windows para eventualmente acessar um sistema RedHat EL 6 onde eu estou experimentando um comportamento muito estranho que os administradores não foram capazes de corrigir.

Basicamente, vi e vim parecem funcionar bem, a menos que eu esteja usando uma tela. Uma vez dentro da tela, há sérios problemas de redesenho que ocorrem durante as inserções se eu sair do conteúdo inicial exibido (ou seja, movido para o final ou meio do arquivo que é maior do que a tela pode mostrar ou rolar para baixo na linha inferior ou dois). Quando isso acontece, o - INSERT - que é desenhado na parte inferior da tela do terminal empurra tudo para cima de uma linha. Se suas edições são pequenas (ou seja, não se movendo e fazendo muitas alterações em linhas diferentes), geralmente é OK, mas as coisas são redesenhadas incorretamente (às vezes o feedback adicional do próprio vi rola a linha anterior para cima e você acaba com dois - INSERIR - linhas, ou outro texto) Mas, se você se movimentar após uma inserção, especialmente se você forçar o conteúdo da janela a rolar ou ser desenhado completamente, é uma bagunça total. Mover o cursor para o final da linha ou o que não segue o que é mostrado na tela.

Para tornar as coisas um pouco mais frustrantes, esse sistema estranho pode ser acessado de duas maneiras: 1 através de uma sessão de terminal (através de um navegador IE virtualizado) e 1 através de um desktop VNC (através da mesma virtualização). Infelizmente, a área de trabalho do VNC é completamente inutilizável para a linha de comando devido a problemas de atualização e caracteres presos (caracteres aleatórios sendo repetidos centenas de vezes). Mas, apesar desses problemas, o vi funciona dentro de telas.

Eu joguei as variáveis dos dois tipos de sessões do vi em arquivos e elas são diferentes, mas não sei bem o suficiente para saber quais variáveis poderiam ser as culpadas.

FWIW, ambos estão usando o mesmo binário VIM 7.2.411 (o problema persiste com / bin / vi) e a tela 4.00.03 Ambos estão na mesma máquina

Quando eu enviei um ticket de helpdesk, os administradores instalaram uma versão mais nova do VIM, o que na verdade tornou muito menos grave, mas ainda é inutilizável para editar arquivos além de pequenas alterações.

    
por user632657 13.04.2017 / 20:12

1 resposta

1

O problema pode ser que sua tela esteja configurada para usar a última linha da janela do terminal como a linha de hardstatus, e você abre uma janela em sua screenrc antes configurando a linha de hardstatus. Sua configuração de tela contém algo assim?

screen 1
# ...
hardstatus alwayslastline "..."

Neste caso, a janela aberta pelo comando screen no screenrc não possui o número correto de linhas configuradas - não leva em conta a linha usada pela linha hardstatus. Outras janelas devem estar bem, no entanto (compare a saída de stty size na janela inicial, aberta pelo screenrc e outras janelas).

Eu abri um bug para esse problema aqui . Embora faça algum sentido em retrospectiva que o comando de tela que precede a configuração do hardstatus possa ter esse efeito, é bastante inesperado do ponto de vista do usuário (muitos arquivos de configuração não possuem uma noção de sequenciamento). Além disso, curiosamente, se você fizer algo como:

screen 1
screen 2
screen 3
# ...
hardstatus alwayslastline "..."

Apenas a janela 3 está configurada incorretamente.

    
por 18.02.2018 / 11:22

Tags