Cygwin 键入箭头键会产生“虚假”字符

Cygwin 键入箭头键会产生“虚假”字符

当运行命令行应用程序时(事实上$ gradle run,我不知道这是否重要),如果我无意中按下向上箭头,然后按向下箭头返回到提示行(即在我的应用程序中)并按回车键,并检查输入的字符串,我会看到类似这样的内容:

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

...这里我只q<Return>在使用箭头键后输入了“”...但他们在“q”之前添加了一些有趣的东西。

为了获取用户输入我正在这样做(Groovy):

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

有什么方法可以让箭头键(以及其他可能执行类似操作的键)“静音”吗?NB:我不知道这是否也适用于 *nix BASH...

答案1

由于 gradle 是一个 Java 程序,而 Cygwin 没有自己的 Java 机器,因此您在 Mintty 终端内运行 Windows 程序(Java 机器)。

因此适用通常的限制:

当与使用本机 Windows API 进行命令行用户交互(“控制台模式”)的程序交互时,会观察到许多不良影响;这是 pty 不兼容问题和字符编码不兼容问题。这基本上影响所有未在 cygwin 或 msys 环境中编译的程序(请注意,在这种情况下 MinGW 不是 msys)。

有关更多信息和一些可能的部分解决方法的报告
https://github.com/mintty/mintty/wiki/Tips#inputoutput-interaction-with-alien-programs

相关内容