限制 man 的列数(或更少)

限制 man 的列数(或更少)

我经常在控制台中使用手册页(没有 GUI),但我使用的宽屏幕在文本模式下确实有很多列。行太长,读起来不舒服。

man有没有办法限制(或less,哪个人在内部使用)使用的列数?

答案1

假设您使用的是动态格式化手册的 Linux 系统,请将COLUMNSMANWIDTH环境变量设置为您想要的行宽:

COLUMNS=72 man ...

您可能希望MANWIDTH在 shell 的启动文件中设置一个合理的值,COLUMNS除此之外许多其他程序也使用该值man

export MANWIDTH=72

在使用的系统上mandocman,与选项 一起使用-O width=7272其中 是您要使用的宽度。系统mandoc使用默认宽度78,因此获得过长的行通常不是问题;我只是在这里提到它,以防您想将宽度修改为更窄的值。

在这些系统上,您可以为交互式 shell 定义一个别名,如下所示:

alias man='man -O width=72'

...或重载名称的 shell 函数man

man () {
    command man -O width=72 "$@"
}

穷人的选择是在将文本通过管道fold传输到以下位置之前先将其传递less

man ... | fold -s -w 72 | less

这会在显示输出 man之前折叠第 72 列或之前的最后一个空格处的输出。是一个标准的 Unix 实用程序。lessfold

管道可以用重载man名称的 shell 函数来表示,如下所示:

man () {
    command man "$@" | fold -s -w 72 | less
}

尽管不是标准的,但该实用程序很常见,并且可能比折叠长线的实用程序fmt做得更好。fold替换上面管道中的 来尝试一下fold -s -w 72fmt -w 72

相关内容