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

Tim*_*Tim 4 less man

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

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

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

谢谢。

在此处输入图片说明

Sté*_*las 6

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

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

同样,对于下划线,你会写_<backspace>Xwhich 会写Xunderscore 之上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命令。