检测终端Tabstop设置

布罗迪

我正在编写一个小的程序,该程序需要包装文本以在终端屏幕上产生多列输出。这非常简单,除了必须考虑硬制表符,而我不知道制表符停止设置是什么,就无法做到。有没有一种方法可以查询制表位设置?在OSX上,该tabs命令似乎用于设置选项卡,但似乎不报告它们。我可以解析infocmp输出的it值,但这似乎只是默认的制表符宽度,它可能与整个制表位停止符对齐。

是否有一种规范的方式可以在类似Unix的终端上拉动制表符停止设置?在Windows上?

托马斯·迪基

tabs程序使用终端数据库中的数据来告诉终端使用哪些制表位。

计算机不了解制表位:使用stty可以将终端驱动程序设置为使用硬制表位还是软制表位(每个制表位通常扩展8列)。无论您设置硬标签还是软标签,无论如何,系统上的大多数应用程序都将采用8。

终端数据库不提供确定将制表位设置为什么标准方法对于xterm等中广泛使用的VT100仿真,可以通过使用光标位置报告来确定此信息。有人可以编写一个编写选项卡的应用程序,使用光标报告查看光标结束的位置,然后计算制表位。resize程序使用光标位置报告来确定屏幕尺寸)。

ncurses的终端数据库提供了u6尝试描述光标位置报告的功能,但出于实际目的,仅支持VT100样式的报告。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章