Czy mogę zmusić `man` do dopasowania małych i wielkich liter?


10

Kiedy przeszukuję strony podręcznika, w wyszukiwaniu rozróżniana jest wielkość liter, ale tylko w odniesieniu do wielkich liter. Np. xBędzie pasować xi Xpodczas gdy Xtylko dopasowania x. To jest man-dbwersja man, domyślnie używana w systemach pochodnych fedora i dostępna na innych. man manmówi, że domyślny pager to less -s. $LESSnie jest zdefiniowane w środowisku, moje $PAGERjest sprawiedliwe lessi nie mam aliasów za mniej.

To nie jest zachowanie, gdy sam się wywołuję less.

Czy jest tak czy inaczej, aby zmusić małe litery xdo dopasowania tylko małych liter xpodczas używania man?


1
Domyślnie jest rozróżniana wielkość liter. To, co opisałeś, brzmi jak twoja LESSzmienna środowiskowa -i.
manatwork

1
Jaką masz wersję less? Czy masz ustawiony alias less? Czy ustawione są zmienne LESS lub LESSOPEN env? Domyślnie lesswyszukiwanie xtylko dopasowań x, a nieX
bsd

Czy nie mieliśmy już tego Q? Wydaje mi się, że Hauke ​​zapytał, poszuka go ... (slm wraca, zanim minie 5 minut. W komentarzu ...) Ten nie jest dupkiem, ale wygląda na to, o co pytasz, nie? unix.stackexchange.com/questions/116395/…
slm

@slm, to była też moja pierwsza reakcja, ale ponieważ właściciel pytania uczestniczył w tym pytaniu, chyba o tym wie.
manatwork

@manatwork echo $LESS= nic. Należy pamiętać, że nie jest to niewrażliwe na wielkość liter - ale wymusza tylko czułość WRT. @bdowning alias | grep less= nic. Właśnie zauważyłem, że dotyczy to tylko man(to mandb, btw)., Jednak. Jestem pewien, że gdzieś o tym przeczytałem ...
goldilocks

Odpowiedzi:


3

Człowiek woła mniej; jedyną kontrolą na poziomie człowieka jest wybór opcji, za pomocą których można wywołać Mniej.

Rozróżnianie wielkości liter w wyszukiwaniu Less jest kontrolowane przez dwie opcje.

  • Jeśli -Itak, to wyszukiwania nie rozróżniają wielkości liter: albo aalbo Amogą być użyte do dopasowania obu ai A.
  • Jeśli -idziała, ale nie działa -I, wyszukiwania nie rozróżniają wielkości liter, ale tylko wtedy, gdy wzorzec nie zawiera wielkich liter.

Jeśli ustawisz -Idomyślną opcję Mniej, wszystkie wyszukiwania nie będą rozróżniać wielkości liter, nawet na stronach podręcznika.

Man-db przekazuje dodatkowe opcje do pagera poprzez LESSzmienną środowiskową, która Less interpretuje w taki sam sposób, jak opcje wiersza poleceń. Ustawienie jest zakodowane na stałe w czasie kompilacji i zaczyna się od -i. (Wartość pochodzi "-ix8RmPm%s$PM%s$"z wersji Man-db 2.6.2; P…$część jest łańcuchem zachęty.)

Jeśli nie chcesz, aby wyszukiwania na stronach podręcznika rozróżniały wielkość liter, lub jeśli chcesz, aby zawsze rozróżniała wielkość liter, nie ma możliwości skonfigurowania tego w samym man-db. Możesz utworzyć alias dla manlub skrypt opakowujący, który manipuluje LESSzmienną środowiskową, ponieważ Man-db przygotowuje jej zawartość do bieżącej wartości, jeśli jest obecna:

alias man='LESS="$LESS -I" man'

Aby wyłączyć tę -iopcję i tym samym domyślnie rozróżniać wielkość liter na stronach podręcznika :

alias man='LESS="$LESS -+i" man'

Możesz również na stałe zakodować inną wartość LESS, ustawiając MANLESSzmienną środowiskową, ale jeśli to zrobisz, to manpo prostu ustawisz LESSwartość MANLESS, tracisz niestandardową linię tytułu („Strona instrukcji foo(42)”) i inne gadżety (w szczególności dołącz do -Rpogrubionego i podkreślonego formatowania).


1

W ten sposób less„s -i(przełącznik linii poleceń)«przypadek niewrażliwe»działa w trybie (czyli wciąż jest wrażliwy na duże litery). Jak zauważa Gilles, użycie tego jest kompilowane do man-db.

Oprócz sposobów wskazanych w odpowiedzi Gilles'a na ustawienie WRT aliasu +-ilub niestandardowego MANLESS, możesz przełączać ścisłe dopasowanie wielkości liter po otwarciu strony podręcznika -i(co włącza i wyłącza przełącznik); zobaczysz mały komunikat „Wielkość liter ma znaczenie przy wyszukiwaniu”, a teraz xtylko dopasowania xi Xtylko dopasowania X.

Man-db manma -Iprzełącznik, ale dotyczy to wyszukiwania strony man - np. Domyślnie man BASHda ci stronę podręcznika bash, podczas gdy man -I BASHnie.


0

„Czy w ogóle można zmusić małe litery xdo dopasowania tylko małych liter xpodczas używania man?”

Oto jeden sposób

man -Tascii manpage |less

Nie znam szczegółów, ale roffprzetwarzanie wykonuje znaczniki, a pager zdaje się pasować do nieoznaczonego tekstu, nawet jeśli wyświetla on zaznaczony tekst.
Bardzo mylące, mam nadzieję, że nroffguru może wyjaśnić rurociąg.


To powoduje bałagan w moim terminalu GUI (pełen ESC[1msekwencji typów).
złotowłosa
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.