从 man 输出保存的文件中不需要的 ctrl+h

从 man 输出保存的文件中不需要的 ctrl+h

之后man less(并且可以选择点击h“较少命令的摘要”),因为man用于less显示文本,所以我点击s将文本保存到文件中。

当我在 emacs 或 vi 中打开文件时,出现不需要的 ctrl+h,并且某些字符出现不需要的重复。这是为什么?如何正确保存“less命令摘要”?

为什么将输出重定向man less到文件没有问题?

谢谢。

在此输入图像描述

答案1

这可以追溯到 70 年代的电传打字机(ttys!)。

发送X<backspace>X^H作为 ASCII BS 字符)到电传打字机,使其写入 X,返回一个字符并在其自身之上再次写入 X。它被写了两次,使它看起来像大胆的

类似地,对于下划线,你可以写_<backspace>X它会写X下划线

roff,所使用的排版系统man是 70 年代为 Unix 编写的第一批系统之一,因为这就是 Unix 作者获得资金的方式。

man在电传打字机上使用then 会将这些序列发送为粗体和下划线。

电传打字机很快就被阴极射线管终端所取代。在那里,BS 字符只是向后移动光标,并且字符覆盖下面的字符。

所以发送X<backspace>X_<backspace>X那里只是显示X。 CRT 的屏幕空间也有限(与电传打字机中的纸张相反),因此寻呼机就像more出生一样。

寻呼机得到了增强,可以理解这些X<BS>X序列并使用相应的转义序列告诉终端显示粗体或下划线。

如今寻呼机,包括morelessmostw3m仍然可以理解这些序列。

man当输出发送到寻呼机时,仍然使用它们显示粗体或下划线。

man(至少某些实现)检测到输出没有发送到终端时,它不会调用寻呼机并且不会使用这些序列,这就是为什么当您重定向到文件时看不到它们的原因。

如果你想删除这些序列,可以使用该col -b命令。

相关内容