少 '+>' /path/to/file

少 '+>' /path/to/file

所以吉尔斯 聊天室里提到的那:

less '+>' /path/to/file

可以与 一起使用less以反向查看文件。我以前从未见过它。

+>我很好奇 -标题中的运算符是怎么回事?这是 less特定的语法吗?可以用其他方式吗?是否有我应该了解的类似运算符?

答案1

很久很久以前,一些程序将命令行参数(例如)理解为“从行开始”+N+42”(不是“跳过行”,但是“跳过-1 行”,因为第一行是第 1 行)。我能找到的最古老的痕迹是tailUnix V7,但我不确定这是使用开始的地方。具有相同选项的重要程序是更多的。从 more 继承此语法的其他程序包括较少的,,以及当今大多数其他文本编辑器。

随着时间的推移,这种语法逐渐被普遍化。到了 1980 年的 2.8BSD,更多的还支持从包含指定模式的第一行开始。到了 1985 年的 2.10BSD,+/PATTERN支持在启动时运行任意命令,泛化(并非所有版本的 vi 都支持这一点,例如+COMMAND+/PATTERNPOSIX仅指定,但 nvi、Elvis 和 Vim 支持)。命令是-c COMMAND前任命令,即您可以在 后键入的内容:

Less也支持广义(我不知道从什么时候开始,但那是在20世纪)。在 的情况下,就好像您在 less 开头后键入了字符作为输入,但在特殊情况下,它相当于并且您可以省略最后的。+COMMAND++N+g+/PATTERNReturn

less '+>' /path/to/file是该用法的一个示例:启动后执行命令>(转到文件末尾)。你也可以写less +GsinceG>是同义词。您可以组合命令,例如less $'+>?foo\r' /path/to/file转到最后一次出现的foo

让 Less 在启动时执行命令的另一种方法是将它们填充到LESS环境变量中:LESS='+>' less /path/to/file。如果less由另一个程序调用,例如man(例如:阅读和搜索长手册页)。

答案2

它是less特定的(您可以通过运算符周围的引号来猜测这一点,以避免 shell 解释它)。参数+告诉less在打开文件后应用此命令,在本例中,>这是转到文件末尾的击键。您可以通过打开一些(长)文件less并点击 来尝试此操作>+>只是一个捷径。您在野外会发现的一个相当常见的用例是调用less +## /path/to/filewhere##是您想要显示的行号less

至少+##也适用于viemacs

相关内容