我正在编写一个小程序,需要将文本换行以在终端屏幕上生成多列输出。这相当简单,除了必须考虑硬制表符,如果不知道制表位设置是什么,我就无法做到这一点。有没有办法查询制表位设置?在 OSX 上,该tabs命令似乎设置了选项卡,但似乎没有报告它们。我可能会解析infocmp该it值的输出,但这似乎只是默认的制表符宽度,它可能会或可能不会与全套制表位对齐。
是否有在类 Unix 终端上拉制表位设置的规范方法?在 Windows 上?
该tabs程序使用终端数据库中的数据来告诉终端要使用哪些制表位。
计算机不知道制表位:使用stty您可以将终端驱动程序设置为使用硬制表位或软制表位(通常每个制表位扩展 8 列)。无论您设置硬/软选项卡,系统上的大多数应用程序都将假定为 8。
终端数据库并没有提供一种标准方法来确定什么样的制表位设置到。对于 xterm 等中广泛使用的 VT100 仿真,可以通过使用光标位置报告来确定此信息。有人可以编写一个写制表符的应用程序,使用光标报告来查看光标的结束位置,并计算制表位。(resize程序使用光标位置报告来确定屏幕大小)。
ncurses 的终端数据库提供了u6尝试描述光标位置报告的功能,但实际上仅支持 VT100 样式的报告。
| 归档时间: |
|
| 查看次数: |
450 次 |
| 最近记录: |