代码之家  ›  专栏  ›  技术社区  ›  Bart Kiers

Java的Scanner类:在Bash中使用左右按钮

  •  3
  • Bart Kiers  · 技术社区  · 15 年前

    以片段为例:

    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);
            }
        }
    }
    

    left -以及 right 按钮,顺便说一句)。例如,如果我键入“test”,然后按左键返回, ^[[D 出现,而不是我的光标返回一个位置:

    $ test^[[D  
    

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

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

    Superuser 看看我的Bash控制台上是否有需要更改的内容。

    提前谢谢。

    2 回复  |  直到 8 年前
        1
  •  3
  •   Cascabel    15 年前

    Bash是外壳,而不是终端;从你的程序里你正在和终端通话。为了提供这种功能,bash和许多其他程序都使用readline—似乎有一个 Java wrapper

        2
  •  2
  •   Dennis Williamson    15 年前
    推荐文章