【发布时间】:2016-06-11 19:56:23
【问题描述】:
标准输入和输出连接到实现 ANSI 转义序列但尺寸未知的终端。
我需要知道终端有多大,以便在其上绘制全屏文本 UI。如何获得尺寸?
正确的大小未加载到环境变量中。我不能使用 TIOCGETS;调用将返回成功,但值不正确——内核也不知道大小。
搜索 stackoverflow 的答案有很多,但它们都依赖于操作系统以一种或另一种方式提供答案;但这次不是这样。
我能找到的最好的线索是返回当前光标位置的 DSR 命令;但没有移动到底部/右侧命令。
【问题讨论】:
-
gnu.org/software/termutils/manual/termcap-1.3/html_mono/… :: "co" 和 "li"
-
OP 已经表明不行。
-
@wildplasser:ansi 没有能力 co 和 li。
-
好的,好的。我站得更正了。那么我们假设 80*24,对于残缺的终端(并且可能允许在客户端使用命令行标志进行覆盖)
-
OP 需要澄清 ANSI 序列;
resize是一个很好的例子,因为它做了 OP 真正需要知道的事情。
标签: terminal language-agnostic ansi ansi-escape