Jak mogę wyszukać w vimie wzorzec, który NIE rozróżnia wielkości liter?

18

I od czasu do czasu przeglądać pliki w vimlub lessprzy użyciu /albo ?ale o ile mogę powiedzieć, wzorce wyszukiwania wielkość liter.

Na przykład /foonie znajdziesz tych samych rzeczy, które /FOOznajdziesz. Czy istnieje sposób, aby uczynić go mniej surowym? W jaki sposób można przeszukiwać vimlub lessna wzór, który nie jest wielkość liter?

Mike B.
źródło
2
W lesswyszukiwaniu nie jest rozróżniana wielkość liter, chyba że użyjesz łańcucha zawierającego dużą literę. Tak, foobędzie pasował Fooi FoOjednak Foobędzie tylko dopasować Fooi nie fooitd. Również zobaczyć tutaj: mniej zawsze jest wielkość liter .
terdon
1
@terdon Ciekawe! Próbuję zrozumieć, dlaczego tak się lesszachowuję, ale przypuszczam, że to temat na kolejny dzień. Dzięki!
Mike B
Cóż, po pierwsze, uważam, że jest to niezwykle przydatne podczas przeszukiwania stron podręcznika. Nie chciałbym mieć w tym rozróżniania wielkości liter. Jest o tym sporo postów, spójrz tutaj: Czy mogę zmusić `man` do dopasowania małych i wielkich liter? i tutaj: Wyszukiwanie bez rozróżniania wielkości liter na stronach podręcznika . W rzeczywistości, jeśli nie masz nic przeciwko, usunę lessz twojego pytania, ponieważ jest to całkiem ładnie ujęte w innych postach, a odpowiedzi, które otrzymałeś, wyjaśniają, jak to zrobić w vi.
terdon
@terdon dzieła przeze mnie, chociaż należy rozważyć pozostawienie tego komentarza dialogu jako I mają tendencję do używania zarówno lessi vii że informacja jest cenna.
Mike B
Dla wyjaśnienia, rzeczywiście używam vim(chociaż piszę vi). Przepraszamy za zamieszanie.
Mike B

Odpowiedzi:

21

W vilub vimmożesz zignorować :set icwielkość liter według , a wszystkie kolejne wyszukiwania uwzględniają to ustawienie, dopóki go nie zresetujesz :set noic. W lessistnieją możliwości -ii -Izignorować sprawę.

Janis
źródło
9
Chciałbym również polecić :set smartcase, aby wyszukiwać rozróżnianą wielkość liter tylko wtedy, gdy użyto co najmniej wielkich liter.
Bernhard
3
Dla przypomnienia, smartcase jest tylko vim. Ale „vi” OP jest prawdopodobnie vimem, więc warto o tym wspomnieć / spróbować.
Random832
@ Random832 Yup. Poprawny. Zaktualizowałem oryginalne pytanie, aby wspomnieć vimzamiast vi.
Mike B
27

Użyj \csekwencji ucieczki:

/foo\c

Zobacz także: /programming/2287440/how-to-do-case-insensitive-search-in-vim

g33kz0r
źródło
7
Zauważ, że można to zrobić w dowolnym miejscu wzorca, więc jeśli po rozpoczęciu pisania zdecydujesz, że wzorzec nie rozróżnia wielkości liter, możesz po prostu dodać \cgdziekolwiek jesteś - np /some_very_lo\cng_text.
wchargin
2

W swoim .vimrcpliku dołącz

set ignorecase

lub

set ic

Aby ponownie włączyć rozróżnianie wielkości liter, użyj :set ic!.

todgru
źródło
1
Cześć! Wygląda to OK, ale nie ma większego wpływu na już zaakceptowaną odpowiedź, prawda?
dhag
1
@hag wszystkie odpowiedzi zapewniają inny sposób wykonania tego samego zadania. Ustawienie wartości w .vimrc pozwala zachować ustawienie dla innych sesji vim.
todgru
@dhag masz rację, ponieważ nie rozwiązuje to problemu OP w mniejszym stopniu.
todgru