Не удается заставить редактирование строки ввода работать в 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();
Так должно работать лучше...