我经常在控制台中使用手册页(没有 GUI),但我使用的宽屏幕在文本模式下确实有很多列。行太长,读起来不舒服。
man
有没有办法限制(或less
,哪个人在内部使用)使用的列数?
答案1
假设您使用的是动态格式化手册的 Linux 系统,请将COLUMNS
或MANWIDTH
环境变量设置为您想要的行宽:
COLUMNS=72 man ...
您可能希望MANWIDTH
在 shell 的启动文件中设置一个合理的值,COLUMNS
除此之外许多其他程序也使用该值man
:
export MANWIDTH=72
在使用的系统上mandoc
man
,与选项 一起使用-O width=72
,72
其中 是您要使用的宽度。系统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 实用程序。less
fold
管道可以用重载man
名称的 shell 函数来表示,如下所示:
man () {
command man "$@" | fold -s -w 72 | less
}
尽管不是标准的,但该实用程序很常见,并且可能比折叠长线的实用程序fmt
做得更好。fold
替换上面管道中的 来尝试一下fold -s -w 72
。fmt -w 72