如何减少将选项卡显示为选项卡?

如何减少将选项卡显示为选项卡?

当我在 中查看带有制表符的数据时less,制表符会扩展为空格。如果我使用 ctrl-c 将它们直接从终端复制出来,它们会复制为空格。另一方面,more保留制表符,就像许多其他命令一样,如tailhead。有什么办法可以less保持标签完好无损吗?

-r即使与声称将制表符视为控制字符的 结合使用,似乎也没有任何效果-U。我没有看到任何其他相关选项less

答案1

联机帮助页less似乎具有误导性。

通过组合使用-r-U选项,您可以防止less在从输入读取行并填充其输出缓冲区时将制表符转换为空格。但是,当输出缓冲区写入终端(而不是写入文件或管道)时,write()由于 termio 设置,在调用中会进行制表符到空格的第二次转换,这与阅读联机帮助页时可能预期的行为相矛盾。

如果您less从源代码进行编译,并注释掉或、、 或中的行#ifdef(版本 487 中的第 398-411 行和 489 行)XTABSOXTABSTAB3s.c_oflagscreen.c:raw_mode()lessless),如果使用 调用,您将获得一个输出制表符的版本-r -U

我找不到任何现有的命令行选项来产生所需的行为,尽管很容易生成一个可切换此行为的版本。

使用足够愚蠢的终端也应该可以。

相关内容