1

我正在努力让一个简单的控制台应用程序与 JLine3 一起工作。

我已经像这样初始化它:

    terminal = TerminalBuilder.builder()
                .streams(System.in, System.out)
                .build();
    lineReader = LineReaderBuilder.builder().terminal(terminal).build();

我试着读这样的一行:

    String in = lineReader.readLine("/>").trim();

如果用户只是正确输入文本,我会得到正确的输入。退格键用于更正输入。但是使用左箭头键向后移动光标不会;而不是光标移动,我看到^[0D显示在屏幕上。

我尝试了各种其他选项,但没有任何改变。我想在适当的时候继续利用历史记录和自动完成功能,但我在第一步就失败了。

我显然错过了一些基本的东西(但文档不好......)

在 MacOS 10.13.6 上使用 JLine 3.13.3

4

1 回答 1

0

如果你想为运行 JVM 的真实控制台创建一个终端,你宁愿使用:

     terminal = TerminalBuilder
                .builder()
                .system(true)
                .build();

那应该会更好...

于 2020-03-27T09:28:52.330 回答