Неверное поведение клавиш со стрелками при использовании SBT в Windows 7
Я использую SBT 0.13.6 в Windows 7 и использую Cygwin (оболочка bash). У меня проблема с клавишами со стрелками: стрелка вверх перемещает курсор вверх, тогда как я хочу, чтобы он циклически проходил по истории команд (и я думаю, что именно это он должен делать по умолчанию).
Кажется, проблема в том, что напечатано в терминале. Когда я нажимаю: [стрелка вверх] [ввод], он выполняет предыдущую команду. Но то, что я вижу в терминале, это курсор, перемещающийся вверх на одну строку, и после ввода он печатает предыдущую команду и выполняет ее.
Конечно, он должен печатать предыдущую команду сразу после нажатия стрелки вверх и не должен перемещать курсор (по крайней мере, не по вертикали)
Командная строка в SBT обрабатывается JLine 2. Запустив JLine в режиме трассировки, я вижу, что он распознает нажатия клавиш и сопоставил стрелку вверх с "предыдущей историей", но терминал не обновляется правильно.
У меня также была проблема с тем, что мне приходилось вручную вставлять символ конца строки для вводимой команды, что было исправлено добавлением следующей опции в мой стартовый скрипт SBT:
-Djline.terminal=unix
Я пробовал и другие варианты (победа, авто, выкл. И т. Д.). Я поместил следующие строки в файл jline.inputrc в моем домашнем каталоге, но это не помогает:
"\e[A": previous-history
"\e[B": next-history
И на самом деле я не думал, что это должно помочь, потому что я вижу, что нажатия клавиш распознаются правильно и отображаются на правильную команду.
Поведение не зависит от того, какие клавиши со стрелками я использую (те, на цифровой клавиатуре или нет).
Обходной путь - запустить SBT непосредственно из командной оболочки Windows (cmd.exe).
Кто-нибудь знает способ исправить это, чтобы циклическая история команд работала так, как ожидалось в Cygwin?