我正在编写一个小的程序,该程序需要包装文本以在终端屏幕上产生多列输出。这非常简单,除了必须考虑硬制表符,而我不知道制表符停止设置是什么,就无法做到。有没有一种方法可以查询制表位设置?在OSX上,该tabs
命令似乎用于设置选项卡,但似乎不报告它们。我可以解析infocmp
输出的it
值,但这似乎只是默认的制表符宽度,它可能与整个制表位停止符对齐。
是否有一种规范的方式可以在类似Unix的终端上拉动制表符停止设置?在Windows上?
该tabs
程序使用终端数据库中的数据来告诉终端使用哪些制表位。
计算机不了解制表位:使用stty
可以将终端驱动程序设置为使用硬制表位还是软制表位(每个制表位通常扩展8列)。无论您设置硬标签还是软标签,无论如何,系统上的大多数应用程序都将采用8。
终端数据库不提供确定将制表位设置为什么的标准方法。对于xterm等中广泛使用的VT100仿真,可以通过使用光标位置报告来确定此信息。有人可以编写一个编写选项卡的应用程序,使用光标报告查看光标结束的位置,然后计算制表位。(resize
程序使用光标位置报告来确定屏幕尺寸)。
ncurses的终端数据库提供了u6
尝试描述光标位置报告的功能,但出于实际目的,仅支持VT100样式的报告。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句