problemas de actualización de vi dentro de la pantalla

problemas de actualización de vi dentro de la pantalla

Tengo que usar un sistema que requiere iniciar sesión a través de algunas virtualizaciones Citrix/Windows para eventualmente acceder a un sistema RedHat EL 6 donde estoy experimentando un comportamiento realmente extraño que los administradores no han podido solucionar.

Básicamente, viambos vimparecen funcionar bien a menos que los use dentro de una pantalla. Una vez dentro de la pantalla, hay serios problemas de redibujado que ocurren durante las inserciones si me muevo fuera del contenido inicial mostrado (es decir, me muevo al final o al medio de un archivo que es más largo de lo que la pantalla puede mostrar, o me desplazo hacia abajo más allá de una línea o dos). Cuando esto sucede, el --INSERT -- que se dibuja en la parte inferior de la pantalla del terminal empuja todo hacia arriba en una línea. Si sus ediciones son menores (es decir, no se mueven y hacen muchos cambios en diferentes líneas), generalmente está bien, pero las cosas se vuelven a dibujar incorrectamente (a veces, los comentarios adicionales del propio vi desplazan la línea anterior hasta uno, por lo que termina con dos: INSERTAR -- líneas u otro texto) Pero, si te mueves después de una inserción, especialmente si fuerzas el contenido de la ventana a desplazarse o dibujarse por completo, es un desastre total. Mover el cursor hasta el final de la línea o lo que sea que no siga lo que se muestra en la pantalla.

Para hacer las cosas un poco más frustrantes, se puede acceder a este extraño sistema de dos maneras: 1 a través de una sesión de terminal (a través de un navegador IE virtualizado) y 1 a través de un escritorio VNC (a través de la misma virtualización). Desafortunadamente, el escritorio VNC es completamente inutilizable para la línea de comandos debido a problemas de actualización y caracteres bloqueados (caracteres aleatorios que se repiten cientos de veces). Pero, a pesar de estos problemas, vi funciona dentro de las pantallas.

He volcado las variables de ambos tipos de sesiones de vi en archivos y son diferentes, pero no conozco vi lo suficiente como para saber qué variables podrían ser las culpables.

FWIW, ambos están usando el mismo binario VIM 7.2.411 (el problema persiste con /bin/vi) y la pantalla 4.00.03 Ambos están en la misma máquina

Cuando envié un ticket al servicio de asistencia técnica, los administradores instalaron una versión más nueva de VIM, lo que en realidad lo hizo mucho menos severo, pero aún no se puede utilizar para editar archivos más allá de cambios muy menores.

Respuesta1

El problema puede ser que su pantalla esté configurada para usar la última línea de la ventana del terminal como línea de estado duro y abra una ventana en su screenrc.antesconfigurando la línea hardstatus. ¿La configuración de su pantalla contiene algo como esto?

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

En este caso, la ventana abierta por el comando de pantalla en screenrc no tiene configurada la cantidad correcta de líneas; no tiene en cuenta la línea utilizada por la línea de estado duro. Sin embargo, otras ventanas deberían estar bien (compare la salida de stty sizela ventana inicial, abierta por screenrc y otras ventanas).


Abrí un error para este problema.aquí. Aunque en retrospectiva tiene cierto sentido que el comando de pantalla que precede a la configuración de estado duro pueda tener este efecto, es bastante inesperado desde la perspectiva del usuario (muchos archivos de configuración no tienen noción de secuenciación). Además, por extraño que parezca, si haces algo como:

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

Sólo la ventana 3 está configurada incorrectamente.

información relacionada