Не удается настроить редактирование строки ввода в JLine3 - PullRequest
0 голосов
/ 06 февраля 2020

Я борюсь с основами получения простого консольного приложения для работы с JLine3.

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

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

, и я пытаюсь прочитать строка как это:

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

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

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

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

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

1 Ответ

0 голосов
/ 27 марта 2020

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

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

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

...