gpt4 book ai didi

Java 的 Scanner 类 : using left- and right buttons with Bash

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:34 26 4
gpt4 key购买 nike

我对 Linux/Bash 不太熟悉,所以我找不到合适的术语来搜索。

摘取片段:

public class Main {
public static void main(String[] args) {
java.util.Scanner keyboard = new java.util.Scanner(System.in);
while(true) {
System.out.print("$ ");
String in = keyboard.nextLine();
if(in.equals("q")) break;
System.out.println(" "+in);
}
}
}

如果我使用 Bash 在我的 Linux 机器上运行它,我不能使用任何箭头按钮(我只对 left- 和 right 感兴趣按钮,顺便说一句)。例如,如果我键入“test”,然后尝试按左键返回,^[[D 出现,而​​不是我的光标返回一个位置:

$ test^[[D  

我试过更新的 Console类也是如此,但最终结果是一样的。在 Windows 的 cmd.exe shell 上,我没有这个问题。

所以,问题是:有没有一种方法可以更改我的 Java 代码,这样我就可以使用箭头键,而无需 Bash 按 ^[[D 之类的顺序转换它们,但实际上是移动光标?

我希望我能在“编程层面”解决这个问题。如果这不可能,那么我想我最好在 Superuser 上试试运气。查看我的 Bash 控制台是否需要更改某些内容。

提前致谢。

最佳答案

Bash 是外壳,不是终端;从您的程序中,您正在与终端通话。为了提供该功能,bash 和许多其他程序使用 readline - 似乎有一个 Java wrapper为此,但我从未使用过它。我相信其他人会给出更明确的答案。

关于Java 的 Scanner 类 : using left- and right buttons with Bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2526417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com