Tenho que usar um sistema que requer login por meio de algumas virtualizações Citrix/Windows para eventualmente acessar um sistema RedHat EL 6, onde estou enfrentando um comportamento realmente estranho que os administradores não conseguiram corrigir.
Basicamente, vi
e vim
ambos parecem funcionar bem, a menos que eu esteja usando dentro de uma tela. Uma vez dentro da tela, há sérios problemas de redesenho que ocorrem durante as inserções se eu mover para fora do conteúdo inicial exibido (ou seja, mover para o final ou meio do arquivo que é mais longo do que a tela pode mostrar, ou rolar para baixo além da linha inferior ou dois). Quando isso acontece, o -- INSERT -- desenhado na parte inferior da tela do terminal empurra tudo para cima em uma linha. Se suas edições forem pequenas (ou seja, não se movimentar e fazer muitas alterações em linhas diferentes), geralmente está tudo bem, mas as coisas são redesenhadas incorretamente (às vezes, o feedback adicional do próprio vi rola a linha anterior para cima, então você acaba com dois - INSERT -- linhas ou outro texto) Mas, se você se mover após uma inserção, especialmente se forçar o conteúdo da janela a rolar ou ser desenhado completamente, será uma bagunça total. Mover o cursor até o final da linha ou qualquer outra coisa 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 VNC é completamente inutilizável para linha de comando devido a problemas de atualização e caracteres travados (caracteres aleatórios repetidos centenas de vezes). Mas, apesar desses problemas, o vi funciona dentro de telas.
Joguei as variáveis de ambos os tipos de sessões do vi em arquivos e elas são diferentes, mas não conheço o vi bem o suficiente para saber quais variáveis podem ser as culpadas.
FWIW, ambos estão usando o mesmo binário VIM 7.2.411 (o problema persiste com /bin/vi) e tela 4.00.03 Ambos estão na mesma máquina
Quando enviei um tíquete de suporte técnico, os administradores instalaram uma versão mais recente do VIM, o que na verdade o tornou muito menos severo, mas ainda é inutilizável para editar arquivos além de pequenas alterações.
Responder1
O problema pode ser que sua tela esteja configurada para usar a última linha da janela do terminal como a linha de status rígido e você abra uma janela no seu screenrcantesconfigurando a linha hardstatus. A configuração da sua 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 consideração a linha utilizada pela linha hardstatus. Outras janelas devem funcionar bem (compare a saída da stty size
janela inicial, aberta pelo screenrc, e outras janelas).
Abri um bug para esse problemaaqui. Embora faça algum sentido, em retrospectiva, que o comando screen que precede a configuração do hardstatus possa ter esse efeito, é bastante inesperado da perspectiva do usuário (muitos arquivos de configuração não têm 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.