我现在的目标是展示百分号也当您运行,例如,命令
man emacs
如果你运行它,你就会得到例如“3300字节”。
亚历克斯的回答暗示我,我们需要做一个单独的shell功能
man "$1"| col -b > /tmp/manual
less /tmp/manual
其中,$ 1指的是第一个参数。
新的问题是在线程 。 由于Yuliy的关键举措!
我现在的目标是展示百分号也当您运行,例如,命令
man emacs
如果你运行它,你就会得到例如“3300字节”。
亚历克斯的回答暗示我,我们需要做一个单独的shell功能
man "$1"| col -b > /tmp/manual
less /tmp/manual
其中,$ 1指的是第一个参数。
新的问题是在线程 。 由于Yuliy的关键举措!
一个不太手动版knitatoms'答案联合亚历克斯Marteilli的回答工作得很好:在通+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
的部分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
:
-P pager, --pager=pager
Specify which output pager to use. By default, man uses pager
-s. This option overrides the $MANPAGER environment variable,
which in turn overrides the $PAGER environment variable. It
is not used in conjunction with -f or -k.
The value may be a simple command name or a command with argu‐
ments, and may use shell quoting (backslashes, single quotes,
or double quotes). It may not use pipes to connect multiple
commands; if you need that, use a wrapper script, which may
take the file to display either as an argument or on standard
input.
export LESS="-m"
更一般地, LESS
环境变量可以包含等同于命令行标志运行时,你可以明确地传递选项less
-在这里, -m
,告诉它更丰富的提示选项(包括百分比,你问)。 你可以通过用每一结尾也传递单一的环境变量中多个选项$
。 对于更多信息,请参见少的联机帮助 。
编辑 :这当然是可能的(取决于你如何少用,例如,如果你管到它,而不是调用它放在一个文件),少不知道它会显示总规模,在这种情况下,当然,它不能显示% - 在这种情况下它会用什么一点信息也确实有,比如,多少文本已是迄今显示提示。 例如, man
确实使用less
这种方式,通过管道。
所以,如果您的具体需要的是看到了%的man
(而不是调用时less
直接对文件),你需要使用“替代呼机”(环境变量MANPAGER
或切换-P
上man
命令行),这是一个这节省了简单的脚本man
的输出到一个临时文件,然后使用less
后者。 (这可能会失去男人的自己的“着色”,除非你玩还进一步和更深入的技巧,等等等等-同样,你可以使用的“预成型页”选项man
并解压这种预先格式化页面,在其上运行一个临时文件less
,等等,但是这已经开始成为一个有点复杂的“简单的脚本” ;-)。
在Linux上我只是去使用Shift + G,然后返回到开始与克手册页的末尾。 (或者你可以返回到以前的位置“”)。
不到有足够的信息,以显示你有多远通过文件的百分比。 (您可能需要输入-M
,以获得长期的提示。)
这是一个黑客位,但只有两个按键。 不知道这是否适用于OS / X。
要添加到亚历马尔泰利的回答:
请注意,您也可以在运行时通过任何命令行参数少,仅通过键入它(包括 - ),其次是回车键。 所以,你可以只输入
-m<Enter>
到正在运行的少切换长提示。
这对于需要在运行时要被改变的选项是特别有用的,例如,-S(线折叠开/关)。
用活less
运行时我用-M
。
这就是“ -M
进入 ”的:
用更少的运行提示。
有了真正的大缓冲区我也不得不去年底“发现”它们的大小。 结束并回了家 。
注:我会张贴了评论@sleske的答案,但最后我记得,注释不支持<kbd>Keyboard<kbd>
标签。
我有这个在我的环境。 它会打印<filename> - Lines XY of Z
在底部,或者至少尽可能多的,因为它有这些信息。
export LESS='-P?f%f - .?ltLine?lbs. %lt?lb-%lb.?L of %L.:?pt%pt\%:?btByte %bt:-...'