Sistema:
Estoy escribiendo un script de Python 3 utilizando secuencias de escape ANSI en un Intel iMac Pro que ejecuta Monterey actualizado.
El problema:
Oculto el cursor cuando imprimo muchas animaciones ASCII en la pantalla. Cuando termino me gusta reiniciar la pantalla como última acción.
Pero el envío de "\033[?25h"
a la pantalla después de que un script se haya ejecutado durante un tiempo no devuelve el cursor. Si envío el código de ocultar, luego sólo dormir durante 3 segundos, luego enviar la secuencia de mostrar-cursor, parece que funciona.
Investigación / Intentos:
También tuve la idea de "guardar el estado del cursor", y luego restaurar el estado del cursor, pero eso tampoco funcionó. He probado tanto la configuración ANSI ( ESC[7
y ESC[8
) y los comandos VT ( ESC[s
y ESC[u
)
También he probado a utilizar curses.curs_set(0)
y más tarde curses.curs_set(1)
Tampoco ha funcionado. Esto no sólo deja el cursor invisible, sino que el eco de los caracteres también se desactiva, y creo que tal vez el salto de línea se estropea también.
También he probado los comandos unix " reset ; stty sane ; clear
", pero eso tampoco lo restablece. Esto me sorprendió mucho; la única solución que me queda es abrir una nueva pestaña de la terminal.
Vi un post (que no puedo encontrar ahora) que decía que tal vez había algo de estado problema con el programa Terminal de Mac, que a veces no funciona, pero otras veces sí, dependiendo de lo que se haya enviado previamente. Esto parece ser consistente con mi experiencia (que si restauro de inmediato funciona, pero después de mucho tráfico, no lo hace. Teniendo esto en cuenta, probé a enviar el comando de visibilidad un montón de veces, eso no ayudó.
También he intentado introducir las cadenas de escape en el código de Python de un par de maneras diferentes, como en "\e[?25h"
y "\033[?25h"
; por supuesto, eso no sirvió de nada.
0 votos
¿Puede añadir un Ejemplo mínimo y reproducible para que otros puedan reproducir el problema y probar sus ideas antes de ¿los publican como respuesta?