Làm thế nào để bạn chạy `less` và để nó tự động chạy một mẫu tìm kiếm?


14

Tôi đang cố gắng chạy lesstrong Linux và tôi muốn nó tìm kiếm thứ gì đó ngay sau khi khởi chạy.

Về cơ bản, nó giống như làm điều này:

$ less

Sau đó nhấn '/', nhập một mẫu tìm kiếm như thế "^commit \w+$", sau đó nhấn enter và nhấn 'n'để tìm từng kết quả tiếp theo.

Tôi muốn ít hơn để được đưa ra, và sau đó tìm kiếm một mẫu. Dường như không có bất cứ điều gì trong trang hướng dẫn về việc bắt đầu bằng một mẫu, nhưng có lẽ bạn có thể gửi các lệnh như Vim.


1
Tuyệt vời, hãy đặt cái này trong cấu hình git của bạn: core.pager = less -cFRX --pattern='^commit'và bạn sẽ có thể đi đến cam kết tiếp theo với phím 'n' ngay lập tức.
Neil

Câu trả lời:


8

Từ mantrang:

   -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.

Điều này hoạt động như mong đợi bằng cách sử dụng phiên bản mới nhất của less( 436 ).


17

Bạn có thể sử dụng + để gửi các lệnh tùy ý. Ví dụ:

less +/pattern

-p PATTERN(như được đăng bởi nik) tương đương với +/PATTERN.


2
Tôi thích câu trả lời này, vì nó đầy đủ hơn. Tùy chọn +/patternnày tương đương với --pattern=pattern, nhưng nó có thể làm nhiều hơn, chẳng hạn như bắt đầu ít hơn ở cuối tệp, làm less +G. Các +tùy chọn cung cấp cho bạn tất cả mọi thứ -p|--patternkhông cộng với toàn bộ các lệnh khác để chạy trong ít hơn, vì vậy tôi nói không bận tâm ghi nhớ -pvà chỉ sử dụng +/để tìm kiếm giống như bạn sẽ từ bên trong ít hơn.
DrStrangepork

4

Bạn có ý nghĩa như?

tên tập tin ít hơn

Đó là trong hướng dẫn.


4

Thực tế có hai cách để làm điều này. Như mọi người khác đã đề cập, bạn có thể sử dụng -p/ --patterntùy chọn:

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

Mẫu của bạn sẽ phải được bọc trong dấu ngoặc kép vì nó chứa một khoảng trắng.

Tuy nhiên, thực sự có một cách thứ hai để làm điều này:

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

Phương pháp thứ hai có một lợi thế khác biệt. Nó có thể được sử dụng với các lệnh khác sử dụng ít hơn để phân trang!:

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

Điều này hoàn toàn có thể được mở rộng để tìm kiếm trang bash man cho tất cả các lệnh dựng sẵn. Tôi đã có một chút mang đi một ngày và người đàn ông "cố định" cho bash dựng .


3

Thực sự có một cái gì đó trong trang ít hơn.

Bạn có thể thử :

less -p<pattern>

hoặc là

less --pattern=<patern>

0

Một tùy chọn khác là khi bạn chạy lesskiểu gõ &patternsở thích của bạn.

Bằng cách này bạn có thể nhận được chỉ đường có bạn patternquan tâm không tất cả các dòng. Ý nghĩa chỉ hiển thị các dòng phù hợp .

&/ <pattern_of_interest>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.