Jak uruchamiasz „mniej” i automatycznie uruchamiasz wzorzec wyszukiwania?

14

Próbuję uruchomić lessw systemie Linux i chcę, aby szukał czegoś natychmiast po uruchomieniu.

Zasadniczo przypomina to:

$ less

Następnie naciśnij '/', wpisz wzorzec wyszukiwania jak "^commit \w+$", następnie naciśnij enter i naciśnij, 'n'aby znaleźć każdy kolejny wynik.

Chciałbym uruchomić mniej, a następnie wyszukać wzór. Wygląda na to, że na stronie podręcznika nic nie ma na temat rozpoczynania od wzoru, ale być może możesz wysłać mu polecenia takie jak Vim.

Neil
źródło
1
Wspaniale, umieść to w git config: core.pager = less -cFRX --pattern='^commit'a będziesz mógł przejść do następnego zatwierdzenia za pomocą klawisza 'n' od razu.
Neil,

Odpowiedzi:

8

Ze manstrony:

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

Działa to zgodnie z oczekiwaniami przy użyciu najnowszej wersji less( 436 ).

goldPseudo
źródło
17

Możesz użyć +, aby wysłać dowolne polecenia. Na przykład:

less +/pattern

-p PATTERN(opublikowane przez nik) jest równoważne z +/PATTERN.

Matthew Flaschen
źródło
2
Wolę tę odpowiedź, ponieważ jest ona bardziej kompletna. Ta opcja +/patternjest równoważna --pattern=pattern, ale może zrobić więcej, np. Zacząć mniej na końcu pliku, wykonaj less +G. Ta +opcja daje ci wszystko, co -p|--patternrobi, plus cały zestaw innych poleceń, które działają mniej, więc mówię, nie zawracaj sobie głowy zapamiętywaniem -pi po prostu używaj +/wyszukiwania tak, jakbyś od wewnątrz mniej.
DrStrangepork
4

Masz na myśli?

mniej -p WZÓR nazwy pliku

To jest w instrukcji.

nik
źródło
4

Istnieją dwa sposoby, aby to zrobić. Jak wszyscy wspomnieli, możesz użyć opcji -p/ --pattern:

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

Twój wzór będzie musiał być zawinięty w cudzysłów, ponieważ zawiera spację.

Jest jednak tak naprawdę drugi sposób:

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

Druga metoda ma jedną wyraźną zaletę. Można go używać z innymi poleceniami, które używają mniej do paginacji !:

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

Można to dosłownie rozszerzyć, aby przeszukać stronę podręcznika bash pod kątem wszystkich wbudowanych poleceń. Pewnego dnia trochę mnie poniosło i „naprawiłem” człowieka do wbudowanych bashów .

Adam Stewart
źródło
3

Rzeczywiście coś jest na mniejszej stronie.

Możesz spróbować :

less -p<pattern>

lub

less --pattern=<patern>
slubman
źródło
0

Inną opcją jest to, że po uruchomieniu lesswpisz wtedy &i patternswoje zainteresowanie.

W ten sposób możesz uzyskać tylko te linie, które Cię patterninteresują, a nie wszystkie linie. Znaczenie pokazuje tylko pasujące linie .

&/ <pattern_of_interest>
Dan Art
źródło