`ansi-terminal`如何在Haskell中获取光标位置

3
ansi-terminal库是一个非常好用的小型库,可以让您移动光标等操作(而不需要像基于ncurses的库那样添加所有额外内容)。唯一的问题是它没有提供获取光标位置的方法。无论如何,只要使用或兼容该库的其余部分,我都可以做到这一点。我知道一种方法是跟踪光标走过的每个位置,但我想允许外部putStr等函数的调用。
1个回答

4
根据维基百科,DSR终端命令应该可以获取您的位置,并且还有保存和恢复位置的命令。我不知道为什么ansi-terminal不支持这些功能;也许您应该提交一个错误报告。
更新:现在ansi-terminal已经支持保存和恢复光标位置了!(链接)

比我预期的还要好!这个库简直是不完整的!(我担心你找不到它在哪里,像ncurses这样的东西会知道因为它有记录。) - PyRulez
1
@PyRulez,我刚刚提交了一张工单 - dfeuer
我的猜测是Windows可能不支持这个。(ansi-terminal最重要的特点是可移植性;毕竟,如果你只想要ANSI转义,你可以轻松地自己实现...) - MathematicalOrchid
@MathematicalOrchid,我相信“可移植”通常被理解为“在除了Windows之外的所有平台上都能运行”。 - dfeuer
@dfeuer: 有趣的是,我本来会说“仅适用于Unix”的代码是*不可移植的,但是嘿... - MathematicalOrchid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接