我怎样才能让 man 命令不使用寻呼机?

我怎样才能让 man 命令不使用寻呼机?

我怎样才能强制man命令不使用分页器,而是一次输出整个手册页并保持所有内容突出显示?

如果我使用man -P catman | cat,则会失去突出显示。

答案1

经过长时间阅读 man、less、groff 和 grotty 手册,我终于找到了答案

默认情况下,使用退格序列进行突出显示:c\bc=> 粗体 c,_\bc=> 下划线 c。但如果使用 cat as pager 输出,则在两种情况下都只会输出纯 c。此外,空白行也会被压缩,因此要实现所有这些,必须将 pager 设置为ul | cat -s

Pager 有多种设置方式:

  1. 使用 MANPAGER 或 PAGER 变量(MANPAGER 更好,因为 PAGER 不仅影响 man 命令)

    export MANPAGER='ul | cat -s'
    
  2. 在 man.conf 中

    PAGER       ul | cat -s
    
  3. 使用 -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 文件:突出显示没有丢失。

相关内容