Cygwin al escribir las teclas de flecha genera caracteres "falsos"

Cygwin al escribir las teclas de flecha genera caracteres "falsos"

Cuando ejecuto una aplicación de línea de comando ( $ gradle runde hecho, no sé si esto podría ser significativo), si sin darme cuenta presiono la flecha hacia arriba y luego presiono la flecha hacia abajo para volver a la línea de aviso (es decir, en mi app) y presione Retorno, y examine la cadena ingresada. Veré algo como esto:

No index open
> q
you entered: |a aaaq|

... aquí solo escribí " q<Return>" después de usar las teclas de flecha... pero agregaron algunas cosas divertidas antes de la 'q'.

Para obtener la entrada del usuario, estoy haciendo esto (Groovy):

response = System.in.newReader().readLine()

¿Hay alguna forma de hacer que las teclas de flecha (y otras que puedan hacer algo similar) sean "silenciosas"? NB: no tengo idea de si esto también se aplica a *nix BASH...

Respuesta1

Como gradle es un programa Java y Cygwin no tiene su propia máquina Java, está ejecutando un programa de Windows (máquina Java) dentro de la terminal Mintty.

Como tal, se aplican las restricciones habituales:

Al interactuar con programas que utilizan una API nativa de Windows para la interacción del usuario mediante la línea de comandos (“modo consola”), se observan una serie de efectos no deseados; este es el problema de incompatibilidad de pty y el problema de incompatibilidad de codificación de caracteres. Básicamente, esto afecta a todos los programas no compilados en un entorno cygwin o msys (y tenga en cuenta que MinGW no es msys en este contexto).

Se informa más información y alguna posible solución parcial en
https://github.com/mintty/mintty/wiki/Tips#inputoutput-interaction-with-alien-programs

información relacionada