Не удается заставить редактирование строки ввода работать в JLine3

Я изо всех сил пытаюсь заставить простое консольное приложение работать с JLine3.

Я инициализировал его так:

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

и я пытаюсь прочитать такую ​​строку:

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

и если пользователь просто правильно набирает текст, я получаю правильный ввод. Backspace работает для исправления ввода. Но перемещение курсора назад с помощью клавиши со стрелкой влево - нет; вместо перемещения курсора я вижу^[0D отображается на экране.

Я пробовал другие варианты, но ничего не изменилось. Я хочу со временем перейти к использованию истории и автозаполнения, но я терплю неудачу на первых шагах.

Я явно пропустил что-то базовое (но документация плохая...)

Использование JLine 3.13.3 в MacOS 10.13.6

1 ответ

Если вы хотите создать терминал для реальной консоли, в которой работает JVM, вам лучше использовать:

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

Так должно работать лучше...

Другие вопросы по тегам