jline3 - 无法让输入行编辑在 JLine3 中工作
问题描述
我正在努力让一个简单的控制台应用程序与 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
解决方案
如果你想为运行 JVM 的真实控制台创建一个终端,你宁愿使用:
terminal = TerminalBuilder
.builder()
.system(true)
.build();
那应该会更好...
推荐阅读
- python - 在 Chatterbot 中使用 Ubuntu 数据集时出现 RuntimeError
- java - JasperReport 在 WildFly 中找不到符号 JREvaluator,无需服务器即可工作
- r - 如何避免for-loop *or*如何在迭代过程中动态更新purrr::map得到的结果?
- django - DetailView 中的多个独立表单
- javascript - Axios - 设置拦截器以在错误时重试原始请求
- php - WooCommerce 我的帐户仪表板:编辑帐单地址的直接链接
- java - 如何在 Java 中打开不阻止外部“安全保存”的文件?
- pandas - pd.read_sql_query 字符串列表参数折叠到第一个元素
- inno-setup - 在源中使用 {src} 时,Inno 设置中的“文件不存在”错误
- firebase - 使用 Python 3.7 和 firebase 的 Google 云函数构建错误