mniej zawsze nie uwzględnia wielkości liter

21

Próbując dowiedzieć się, jak korzystać z wyszukiwania bez rozróżniania wielkości liter less, znalazłem to na błąd serwera .

To wydaje się doskonale odpowiadać na moje pytanie. Problem w tym, że tutaj tak nie działa (openSUSE 13.1; mniej 458).

Dokonałem aliasu lessdo, less -WiNSale to zmieniłem. Ale nawet nazwanie tego tak, jak command less filenic nie zmienia. Sprawdziłem ps, że -iw linii poleceń nie ma już żadnej opcji.

Jako odpowiedź mówi lesshelp (naciśnięcie h) stwierdza, że można używać -iwewnątrz lessteż. Jeśli użyję tego raz, to lesspowie mi, że zmieniło się na wyszukiwanie bez rozróżniania wielkości liter (to trochę poprawne: nic się nie zmienia). Jeśli użyję go dwa razy, to lesspowie mi, że przeszedł na wyszukiwanie z rozróżnianiem wielkości liter. I tak, to działa od początku tak, jak powinno. Podawanie -idwukrotnie w wierszu poleceń nie działa.

Co tu jest

Hauke ​​Laging
źródło
1
GNU less nie działa tak dla mnie (tzn. Domyślnie rozróżnia małe i wielkie litery). Czy na pewno nie jest to alias? Z jakich opcji korzystasz, psaby to sprawdzić?
goldilocks
1
Hmm Nigdy tego nie zauważyłem, ale masz całkowitą rację. Wyszukiwanie FOO znajduje tylko znaleziska FOO, ale wyszukiwanie fooznalezisk fooi FOO. Nawet z -ii -WiNS.
slm
@goldilocks Z psdostaję albo command lessopcję no ( ), -WNSwięc jestem całkiem pewien, że psukrywanie -i/ nie stanowi problemu -I. lesswydaje się nie mieć nawet możliwości pliku konfiguracyjnego, który mógłby tutaj interweniować.
Hauke ​​Laging
@slm „nawet z -i” jest dość zabawne, ponieważ -ipowinno to robić dokładnie. Co ciekawe pytanie brzmi: Czy Twój mniejsze mecz FOOdla foo bez -i ?
Hauke ​​Laging
Nie, to działa w drugą stronę. FOOtylko mecze FOO. Wydaje mi się, że to błąd.
slm

Odpowiedzi:

32

Nie jestem pewien, jak włączyć to z wiersza poleceń, ale kiedy jesteś w środku, lessmożesz zmienić zachowanie, które chcesz, podając -ipolecenie less.

przełączanie -i

      ss # 1        ss # 2

wyszukiwanie /blahi/BLAH

      ss # 3       ss # 4

szukać /Blah

      ss # 5

Najwyraźniej możesz też przywołać ten tryb na żądanie, dodając do tego swoje wyszukiwanie -i.

Przykład

less prompt> /search string/-i

Bibliografia

slm
źródło
To też działa dla mnie, ale muszę to zrobić dwa razy. Chyba napiszę raport o błędzie dla openSUSE.
Hauke ​​Laging
@HaukeLaging - wydaje się, że pozostaje domyślnym, jeśli wyjdziesz i wrócisz, czy możesz potwierdzić to zachowanie?
slm
Nie, ale odkryłem coś ciekawego (nie związanego z tym „błędem”): możesz z niego korzystać -inawet po wyszukiwaniu. Podświetlenie zmienia się wtedy (jeśli jest jeszcze aktywne).
Hauke ​​Laging
@HaukeLaging - ach tak, to wszystko. Tak więc notacja jest nieco dziwna w porównaniu do innych narzędzi. /search string/-i.
slm
1
Wydaje się, że przyrostki nie działają less 487 (GNU regular expressions)(od Ubuntu 18.04)
Ruslan
5

Instrukcja (dla mojej lesswersji 444) mówi:

      Options are also taken from the environment variable "LESS".  For exam‐
   ple, to avoid typing "less -options ..." each time less is invoked, you
   might tell csh:

   setenv LESS "-options"

   or if you use sh:

   LESS="-options"; export LESS

   On  MS-DOS,  you don't need the quotes, but you should replace any per‐
   cent signs in the options string by double percent signs.

   The environment variable is parsed before the command line, so  command
   line  options  override  the  LESS  environment variable.
       On  MS-DOS,  you don't need the quotes, but you should replace any per‐
   cent signs in the options string by double percent signs.

   The environment variable is parsed before the command line, so  command
   line  options  override  the  LESS  environment variable.  If an option
   appears in the LESS variable, it can be reset to its default  value  on
   the command line by beginning the command line option with "-+".

Sprawdziłbym więc, czy LESSgdzieś można ustawić zmienną środowiskową, być może w twoich „plikach kropkowych” powłoki. Ponadto less -+ipowinien zresetować -ido domyślnych (z rozróżnianiem wielkości liter). Jeśli przywróci Ci to rozróżnianie wielkości liter, możesz po prostu alias less=less -+i, może razem z alias lessi=less -i.

Omid
źródło
0

Możesz zacząć mniej i zignorować wielkość liter, przekazując opcję -i. To ignoruje wielkość liter, chyba że szukany ciąg znaków ma wielką literę. Oto podsumowanie mniej ze strony pomocy Ubuntu :

   -i or --ignore-case
          Causes searches to ignore case; that is, uppercase  and  lowercase  are  considered
          identical.   This  option  is ignored if any uppercase letters appear in the search
          pattern; in other words, if a pattern contains uppercase letters, then that  search
          does not ignore case.

   -I or --IGNORE-CASE
          Like -i, but searches ignore case even if the pattern contains uppercase letters.

Inne wersje less mogą różnić się interpretacją -i.

Dzień D
źródło