使用 col 命令删除退格符

如果通过定向符号输出 man 文档到文件,然后通过 vi 打开会看到很多蓝色的 ^H 符号。
如果是用 catlessmore 等命令查看(输出到屏幕)就不会看到。

^H 是控制字符,表示退格符 backspace。

知道原理之后,就可以将这些符号和它们之前的一个字符删除::%s/.^H//g

那么如何将 man 文档正确的定向输出到文件呢?

使用 col -b 可以过滤掉退格符。

man command | col -b > filename

知乎有人建议在 .bashrc 中重载 man 命令:

function man {
    /usr/bin/man $* | col -b | /usr/local/bin/view -c 'set ft=man nomod nolist nonumber' -
}

相关命令:col