如何使用Java获取终端中当前插入符号的位置?

如何使用Java获取终端中当前插入符号的位置?,java,terminal,Java,Terminal,我已经研究了JLine、Lanterna和其他工具,但是我没有看到使用这些工具查找终端中当前插入符号位置的简单方法。我已经研究了许多转义码、tput等,但是,我正在寻找用Java获取插入符号所在的当前列和行的最简单方法。也许我在这些图书馆里找不到合适的电话 在终端中获取插入符号行和列的最简单方法是什么 我正在寻找一个纯文本库,以便可以重新编写缓冲区。我知道ansi转义码以及如何操纵它们来产生我想要的效果。我试图做的是在Inquirer.js for Node的基础上创建一个Java提示库。它有许

我已经研究了JLine、Lanterna和其他工具,但是我没有看到使用这些工具查找终端中当前插入符号位置的简单方法。我已经研究了许多转义码、tput等,但是,我正在寻找用Java获取插入符号所在的当前列和行的最简单方法。也许我在这些图书馆里找不到合适的电话

在终端中获取插入符号行和列的最简单方法是什么


我正在寻找一个纯文本库,以便可以重新编写缓冲区。我知道ansi转义码以及如何操纵它们来产生我想要的效果。我试图做的是在Inquirer.js for Node的基础上创建一个Java提示库。它有许多从用户那里获取信息的简单方法(列表、问题、拆分列表等)。所有这些都是文本——所以所有这些都没有UI,所以没有swing。我不想要swing,我只想要一个像样的终端UI体验。

Edit2

使用插入符号接口,您可以创建一个插入符号列表对象来查找插入符号位置

因此,您必须使用getDot()方法创建一个新的CaretListener来响应GUI

这可能有助于。。。不管怎样,用代码。

现在,这只适用于GUI/SwingComponents,我不确定这是否适用于终端应用程序,这正是您想要的,我假设您将使用命令行参数等使事情正常工作

我不认为您可以这样做,因为我认为终端实际上只是打印输出,但无论如何,我将继续检查一会儿

如果你能告诉我你想用插入符号做什么,这将有助于我的努力

希望这有帮助

如果没有,您可能需要查看更多的文本工具包,例如

  • JCurses-

  • 沙瓦-


对不起,我说的光标不是鼠标光标。。。我指的是插入符号。我的错误。文本意义上的行和列。这可能会有帮助。我会尽快检查并回复!我正在寻找一个纯文本库,以便可以重新编写缓冲区。我知道ansi转义码以及如何操纵它们来产生我想要的效果。我试图做的是在Inquirer.js for Node的基础上创建一个Java提示库。它有许多从用户那里获取信息的简单方法(列表、问题、拆分列表等)。所有这些都是文本——所以所有这些都没有UI,所以没有swing。我不想要swing,我只是想要一个像样的终端UI体验。好的,对不起,我希望有更多的知识可以帮助你。祝你好运您是需要此功能来为多个操作系统工作,还是只需要一个操作系统?我有一种感觉,如果您不担心支持,可能需要一些本地代码使用看起来很有希望Windows@Sam我在找尼克西版本。我在Mac电脑上工作,所以如果只是那个平台,那就足够公平了。我意识到让它工作可能是一个巨大的痛苦,所以这不是一个标准。@Sam ANSI控制字符让我靠近,但我不知道他们如何让我得到插入符号位置(行,列)。。。所以我可能遗漏了什么…?输出
[6n
应该返回类似
[{Row};{Column}R
的输入,其中
取决于您使用的终端类型。可以找到bash风格的解决方案。