当我在 中查看带有制表符的数据时less,制表符会扩展为空格。如果我然后使用 ctrl-c 将它们直接从终端复制出来,它们会复制为空格。另一方面,more保留制表符,就像许多其他命令一样tail和head。有什么办法可以less保持标签完好无损?
-r-U即使与声称将制表符视为控制字符的 结合使用,似乎也没有任何效果。我没有看到任何其他相关选项less。
当我在 中查看带有制表符的数据时less,制表符会扩展为空格。如果我然后使用 ctrl-c 将它们直接从终端复制出来,它们会复制为空格。另一方面,more保留制表符,就像许多其他命令一样tail和head。有什么办法可以less保持标签完好无损?
-r-U即使与声称将制表符视为控制字符的 结合使用,似乎也没有任何效果。我没有看到任何其他相关选项less。
的手册页
less似乎具有误导性。通过组合使用
-r和-U选项,您将防止less在它从输入读取行并填充其输出缓冲区时将制表符转换为空格。但是,当将输出缓冲区写入终端(而不是写入文件或管道)时,write()由于 termio 设置,在调用中会进行第二次制表符到空格的转换,这与阅读手册页可能期望的行为相矛盾.如果您
less从源代码编译,并注释或#ifdef删除 which 或XTABS、OXTABS或TAB3intos.c_oflagin 的screen.c:raw_mode()行(第 487 版中的第 398-411 和 489 行less),您将获得一个版本,less如果使用-r -U.我找不到任何现有的命令行选项来产生所需的行为,尽管很容易产生一个可以切换此行为的版本。
使用足够笨的终端也应该有效。