如何用更少的百分比表示的位置(How to make Less indicate location

2019-06-24 05:49发布

我现在的目标是展示百分号也当您运行,例如,命令

man emacs

如果你运行它,你就会得到例如“3300字节”。

亚历克斯的回答暗示我,我们需要做一个单独的shell功能

man "$1"| col -b > /tmp/manual
less /tmp/manual

其中,$ 1指的是第一个参数。


新的问题是在线程 。 由于Yuliy的关键举措!

Answer 1:

一个不太手动版knitatoms'答案联合亚历克斯Marteilli的回答工作得很好:在通+Gg选项less通过其寻呼机选项。

例如,尝试

man -P 'less -s -M +Gg' man

这可以永久投入来实现

export MANPAGER='less -s -M +Gg'

在你的shell配置文件中的一个(上面的语法是Bash和ZSH)。 现在,例如, man man显示为你想要的百分比!

警告

应该把+GgLESS变量! 例如,在做

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.


Answer 2:

export LESS="-m"

更一般地, LESS环境变量可以包含等同于命令行标志运行时,你可以明确地传递选项less -在这里, -m ,告诉它更丰富的提示选项(包括百分比,你问)。 你可以通过用每一结尾也传递单一的环境变量中多个选项$ 。 对于更多信息,请参见少的联机帮助 。

编辑 :这当然是可能的(取决于你如何少用,例如,如果你管到它,而不是调用它放在一个文件),少不知道它会显示总规模,在这种情况下,当然,它不能显示% - 在这种情况下它会用什么一点信息也确实有,比如,多少文本已是迄今显示提示。 例如, man确实使用less这种方式,通过管道。

所以,如果您的具体需要的是看到了%的man (而不是调用时less直接对文件),你需要使用“替代呼机”(环境变量MANPAGER或切换-Pman命令行),这是一个这节省了简单的脚本man的输出到一个临时文件,然后使用less后者。 (这可能会失去男人的自己的“着色”,除非你玩还进一步和更深入的技巧,等等等等-同样,你可以使用的“预成型页”选项man并解压这种预先格式化页面,在其上运行一个临时文件less ,等等,但是这已经开始成为一个有点复杂的“简单的脚本” ;-)。



Answer 3:

在Linux上我只是去使用Shift + G,然后返回到开始与手册页的末尾。 (或者你可以返回到以前的位置“”)。

不到有足够的信息,以显示你有多远通过文件的百分比。 (您可能需要输入-M ,以获得长期的提示。)

这是一个黑客位,但只有两个按键。 不知道这是否适用于OS / X。



Answer 4:

要添加到亚历马尔泰利的回答:

请注意,您也可以在运行时通过任何命令行参数少,仅通过键入它(包括 - ),其次是回车键。 所以,你可以只输入

-m<Enter>

到正在运行的少切换长提示。

这对于需要在运行时要被改变的选项是特别有用的,例如,-S(线折叠开/关)。



Answer 5:

用活less运行时我用-M

这就是“ -M 进入 ”的:用更少的运行提示。

有了真正的大缓冲区我也不得不去年底“发现”它们的大小。 结束并回了


注:我会张贴了评论@sleske的答案,但最后我记得,注释不支持<kbd>Keyboard<kbd>标签。



Answer 6:

我有这个在我的环境。 它会打印<filename> - Lines XY of Z在底部,或者至少尽可能多的,因为它有这些信息。

export LESS='-P?f%f - .?ltLine?lbs. %lt?lb-%lb.?L of %L.:?pt%pt\%:?btByte %bt:-...'


文章来源: How to make Less indicate location in percentage
标签: less-unix