我怎样才能少用男人呢?


21

默认情况下,man用于less输出文本。我怎样才能告诉它只是输出到stdout?我的终端仿真器具有滚动条和搜索功能,我想使用这些键代替箭头键。

Answers:


31

实际上,它使用环境变量MANPAGER或中指定的任何内容PAGER

根据您的man实现和版本,可能还会有一个命令行开关来指定寻呼机。

通过man-db实现,我使用以下所有方式工作:

MANPAGER=cat man man

PAGER=cat man man

MANOPT='-P cat' man man

man -P cat man

要永久设置它,只需将其添加到您的~/.bashrc(或您的shell使用的其他初始化文件中):

export MANPAGER=cat

这也适用于某些较旧的man实现,而MANOPT特定于man-db:

export MANOPT='-P cat'

(最好不要这样设置PAGER。很多其他应用程序也使用该方法。)

也可能有一个全局配置文件。man-db具有/etc/man_db.conf/etc/manpath.config。您可以在此处设置:

DEFINE    pager    cat

但不幸的是,只有MANPAGERPAGER设置或未设置时,才考虑这一点。


2
好答案。回复:~/.bashrc,你也可以换一个条件的出口,因此只设置呼叫器,如果它是正确的端子/仿真器:if [ "x$TERM" = "xxterm" ]; then export MANPAGER=cat; fi; 显然要替换xterm为适当的模拟器。
凯文

1
实际上,通过设计将manpath.config稍后考虑是一件好事。PAGER和MANPAGER都是用户级别,其中配置文件是系统级别。如果系统级优先,则用户根本无法覆盖。
Paul de Vrieze,2011年

@PauldeVrieze,您说对了MANPAGER。我使用“不幸的”这个词是因为该行为也适用于PAGER,这是一个通用设置(由许多工具使用),我希望它不要覆盖特定设置(仅由一个工具使用),即使那样一是系统级别。
manatwork,2011年

如果要覆盖单个工具的特定设置,则始终可以通过创建别名,shell函数或包装脚本来实现。其中任何一项将PAGER=cat manalias man='PAGER=cat MANPAGER=cat man'
总计

6

只需通过管道将输出man发送到cat

man ls | cat   # useful use of cat

6
请注意,根据man实现的不同,要么1)出现错误,2)在终端中显示troff格式代码,3)删除所有格式,4)正常工作。
manatwork,2011年

2
我从来没有见过比4,做其他
基思·汤普森

@KeithThompson macOS man似乎会使用设置的分页器,MANPAGER即使输出是文件还是管道。如果分页器为less,那么这一切都很好,因为less其行为类似于cat输出是管道时的行为……但是,如果您使用其他东西(例如我使用的Vim),那么效果就不好了。
大师

1

尝试使用以下命令在不使用寻呼机的情况下生成man输出。

  • man ls | cat (生成的固定宽度)

  • man -P cat ls (生成的可变宽度)

我在GNU linux系统上


1

另一个角度:类似于托尼的答案。

您还可以将man输出重定向到文件中,并使用您喜欢的文本编辑器进行查看,甚至可以向其添加书签,注释等。

man bash  > bashman.txt

我有bash手册页的副本以及bash流控制和bash测试标志中作为文本文件保存在bin目录中的部分,因此我可以将它们直接加载到文本编辑器(kate)中以供参考。编写bash脚本。


警告:根据您的系统和手册页,以上命令可能会导致格式化信息和文件中的控制字符。

为避免这种情况,请按照以下建议进行操作LESS='+/^TIPS' man man

To  get a  plain  text  version  of a man page, without backspaces and
underscores, try

  # man foo | col -b > foo.mantxt

1
@Wildcard-谢谢。我不知道
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.