您如何运行`less`并使其自动运行搜索模式?


14

我正在尝试less在Linux中运行,并且希望它在启动后立即搜索。

基本上就像这样:

$ less

然后按'/',输入类似的搜索模式"^commit \w+$",然后按Enter,然后按'n'查找每个后续结果。

我希望减少启动,然后搜索模式。手册页上似乎没有关于从模式开始的任何信息,但是也许您可以向其发送诸如Vim之类的命令。


1
太好了,将其放入您的git config中:core.pager = less -cFRX --pattern='^commit'您将可以立即使用“ n”键转到下一个提交。
尼尔2010年

Answers:


8

man页面:

   -ppattern or --pattern=pattern
          The  -p  option  on the command line is equivalent to specifying
          +/pattern; that is, it tells less to start at the  first  occur-
          rence of pattern in the file.

使用最新版本的less436)可以正常工作。


17

您可以使用+发送任意命令。例如:

less +/pattern

-p PATTERN(由nik发布)等效于+/PATTERN


2
我更喜欢这个答案,因为它更完整。该选项+/pattern等效于--pattern=pattern,但它可以执行更多操作,例如从文件末尾开始执行do less +G。该+选项为您提供了一切所需的一切-p|--pattern,以及使您可以在更少的时间内运行的其他所有命令的集合,因此我想说的是不要着急记住,-p+/只是像从更少的内部那样进行搜索。
DrStrangepork

4

你是说喜欢吗?

less -p PATTERN文件名

那是在手册中。


4

实际上有两种方法可以做到这一点。正如其他人所提到的,您可以使用-p/ --pattern选项:

less -p<pattern>
less --pattern=<pattern>

您的模式必须包含引号,因为它包含空格。

但是,实际上还有另一种方法可以做到这一点:

LESS=-p<pattern> less
LESS=--pattern=<pattern> less

第二种方法具有一个明显的优势。它可以与其他用于分页的命令一起使用!:

LESS=-p"^       read \[" man bash

从字面上可以扩展此范围以搜索bash手册页中的所有内置命令。一天,我被带走了一点,为固定bash的人“固定”了人


3

较少的帮助页面确实有很多东西。

您可以尝试:

less -p<pattern>

要么

less --pattern=<patern>

0

另一个选择是,当您运行lessthen时,键入您感兴趣的&and pattern

这样,您就可以得到只能有你行pattern的兴趣不是所有行。含义仅显示匹配的行

&/ <pattern_of_interest>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.