gpt4 book ai didi

java - jline 在底部保持提示

转载 作者:行者123 更新时间:2023-11-30 06:32:12 30 4
gpt4 key购买 nike

我正在使用 jline我有一个简洁的 ConsoleReader 并且一切正常。但是,如果您在提示符中键入内容并且在 stdout 上有输出(来自另一个线程),则输出会拆分您正在键入的单词/命令。

如何在终端底部保留 jline 提示符?

我正在使用 jline 1,但如果它足够稳定,我愿意使用 jline 2。

最佳答案

终于想通了...这就是您要做的。首先,定义这些函数:

private ConsoleReader console = ...;
private CursorBuffer stashed;

private void stashLine() {
this.stashed = this.console.getCursorBuffer().copy();
try {
this.console.getOutput().write("\u001b[1G\u001b[K");
this.console.flush();
} catch (IOException e) {
// ignore
}
}

private void unstashLine() {
try {
this.console.resetPromptLine(this.console.getPrompt(),
this.stashed.toString(), this.stashed.cursor);
} catch (IOException e) {
// ignore
}
}

然后当你想输出新的数据时,首先调用stashLine()来保存当前的控制台输入,然后输出任何新的输出行,然后调用unstashLine() 恢复它。

关于java - jline 在底部保持提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9010099/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com