我现在的目标是在您运行时显示百分号,例如命令
man emacs
如果你运行它,你会得到'byte 3300'。
Alex's answer建议我需要通过
创建一个单独的shell函数man "$1"| col -b > /tmp/manual
less /tmp/manual
其中$ 1表示第一个参数。
新问题发生在thread。 感谢Yuliy的难关!
答案 0 :(得分:22)
knitatoms' answer的手动版本较少
结合Alex Marteilli's answer
效果很好:通过其寻呼机选项将+Gg
选项传递给less
。
例如,尝试
man -P 'less -s -M +Gg' man
这可以通过
永久实现export MANPAGER='less -s -M +Gg'
在你的一个shell配置文件中(上面的语法是针对Bash和
ZSH)。现在,例如,man man
显示百分比
想!
您应该不将+Gg
放入LESS
变量中!例如,
做
export LESS='-M +Gg'
读取非常大的文件时,会导致问题。例如,
yes | LESS='-M +Gg' less
效果不好......
正如其他答案所解释的那样,问题是less
不能说
你知道文件有多长,你在文件中的百分比是多少
是,并且在读取时默认情况下它不会读到文件的末尾
从管道。
来自OPTIONS
的{{1}}部分:
man less
+ If a command line option begins with +, the remainder of that
option is taken to be an initial command to less. For exam‐
ple, +G tells less to start at the end of the file rather than
the beginning, and +/xyz tells it to start at the first occur‐
rence of "xyz" in the file. As a special case, +<number> acts
like +<number>g; that is, it starts the display at the speci‐
fied line number (however, see the caveat under the "g" com‐
mand above). If the option starts with ++, the initial com‐
mand applies to every file being viewed, not just the first
one. The + command described previously may also be used to
set (or change) an initial command for every file.
表示“返回文件开头”。
来自g
:
man man
答案 1 :(得分:13)
export LESS="-m"
更一般地说,LESS
环境变量可能包含与运行less
时可以显式传递的命令行标志等效的选项 - 这里,-m
选项告诉它提示更多丰富(包括百分比,如你所说)。您可以在该单个环境变量中传递多个选项,方法是使用$
结束每个选项。有关详细信息,请参阅less's manpage。
编辑:它当然是可能的(取决于你如何使用更少,例如,如果你正在使用它而不是在文件上调用它)那么知道它将显示的总大小,在这种情况下它当然不能显示% - 在这种情况下它会提示它有什么小信息,例如,它显示了多少文本至今。例如,man
通过管道确实使用less
。
因此,如果您需要查看man
中的%(而不是直接在文件上调用less
),则需要使用“备用寻呼机”(环境变量{{1在MANPAGER
命令行上切换-P
,这是一个简单的脚本,将man
的输出保存到临时文件,然后对后者使用man
。 (这可能会失去人类自己的“着色”,除非你玩更深入的技巧等等 - 同样你可以使用less
的“预格式页面”选项并将这样的预格式化页面解压缩到临时文件上运行man
等,但这开始成为一个有点复杂的“简单脚本”; - )。
答案 2 :(得分:10)
在Linux上,我只需使用 Shift + G 进入手册页的末尾,然后使用 g 返回到开头。 (或者您可以使用&#39; &#39; )返回到之前的位置。
少则有足够的信息来显示您通过文件的距离百分比。 (您可能需要输入-M
才能获得长提示。)
这有点像黑客但只有两次按键。不确定这是否适用于OS / X.
答案 3 :(得分:8)
添加到Alex Martelli的回答:
请注意,您也可以在运行时将任何命令行参数传递给less,只需输入(包括 - ),然后输入key即可。所以你只需输入
即可-m<Enter>
进入少跑以切换长提示。
这对于需要在运行时更改的选项特别有用,例如: -S(线路折叠开/关)。
答案 4 :(得分:3)
对于实时admin/users
运行时,我使用了less
。
那&#34; -M
输入&#34;在-M
提示符下运行较少。
对于非常大的缓冲区,我还必须走到最后才能发现&#34;他们的大小。 结束并返回 Home 。
注意:我会将评论发布为@sleske的答案,但最后我记得,评论不支持:
代码。
答案 5 :(得分:1)
我的环境中有这个。它会在底部打印<filename> - Lines X-Y of Z
,或者至少打印出与此相同的信息。
export LESS='-P?f%f - .?ltLine?lbs. %lt?lb-%lb.?L of %L.:?pt%pt\%:?btByte %bt:-...'