我怎样才能强制man
命令不使用分页器,而是一次输出整个手册页并保持所有内容突出显示?
如果我使用man -P cat
或man | cat
,则会失去突出显示。
答案1
经过长时间阅读 man、less、groff 和 grotty 手册,我终于找到了答案
默认情况下,使用退格序列进行突出显示:c\bc
=> 粗体 c,_\bc
=> 下划线 c。但如果使用 cat as pager 输出,则在两种情况下都只会输出纯 c。此外,空白行也会被压缩,因此要实现所有这些,必须将 pager 设置为ul | cat -s
。
Pager 有多种设置方式:
使用 MANPAGER 或 PAGER 变量(MANPAGER 更好,因为 PAGER 不仅影响 man 命令)
export MANPAGER='ul | cat -s'
在 man.conf 中
PAGER ul | cat -s
使用 -P 参数
cat -P 'ul | cat -s' …
或者
alias man='man -P "ul | cat -s"'
答案2
男人男人
...
PAGER A program to use for interactively delivering
man's output to the screen. If not set,
`more -s' is used. See more(1).
这意味着分页器由 PAGER 环境变量控制,因此只需将 PAGER 定义为
setenv PAGER cat
享受。
答案3
另外,总有一个-P
开关:
man -P cat foo
答案4
这不完全是您想要的(您不会在控制台中获得输出)但您可以生成一个包含手册内容的 dvi 文件,如 man 的 man 中所述:
man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi
此命令将解压缩 nroff 源手册页 ./foo.1x.gz 并将其格式化为设备独立 (dvi) 文件。重定向是必需的,因为 -T 标志会导致输出定向到没有分页程序的标准输出。可以使用 xdvi 等程序查看输出,或使用 dvips 等程序将其进一步处理为 PostScript。
我刚刚测试了这一点,并用 evince 打开了 dvi 文件:突出显示没有丢失。