Як я можу шукати у vim шаблон, який НЕ чутливий до регістру?


18

Я час від часу шукаю файли в vimабо lessвикористовую /або ?, наскільки я можу сказати, шаблони пошуку залежать від регістру.

Так, наприклад, /fooне знайдете тих самих речей, які /FOOбудуть. Чи є спосіб зробити його менш суворим? Як я можу знайти в vimабо lessза шаблоном , який не чутливий до регістру?


2
У lessпошукових запитах нечутливі регістри, якщо ви не використовуєте рядок, що містить верхню літеру. Таким чином, fooбуде відповідати Fooі , FoOале Fooбуде відповідати тільки Fooі не fooтак далі Також дивіться тут: менш завжди чутливий до регістру .
тердон

1
@terdon Цікаво! Я намагаюся зрозуміти "чому" lessповодитись так, але я вважаю, що це тема для іншого дня. Спасибі!
Майк Б

Ну, з одного боку, я вважаю це надзвичайно корисним при пошуку через сторінки чоловіка. Мені б не хотілося, щоб це було чутливим до регістру. Про це є досить багато публікацій, також дивіться тут: Чи можу я змусити `man` зробити відповідність малих регістрів? і ось тут: Нечутливий пошук випадків на сторінках людини . Насправді, якщо ви не заперечуєте, я знімаю lessз вашого запитання, оскільки це чудово висвітлено в інших публікаціях, а відповіді, які ви отримали, пояснюють, як це зробити в vi.
тердон

@terdon Чудово за мене, хоча, будь ласка, подумайте залишити цей діалог коментарів, оскільки я, як правило, використовую lessі те, viі те, що інформація є цінною.
Майк Б

В якості уточнення я справді використовую vim(хоча я друкую vi). Вибачення за плутанину.
Майк Б

Відповіді:


21

В viабо vimви можете ігнорувати справу за :set ic, і всі наступні запити будуть розглядати установку , поки не скинути його :set noic. В lessє варіанти -iі -Iігнорувати регістр.


9
Я також хотів би порекомендувати :set smartcase, щоб шукати лише регістри, які використовуються в регістрі, коли використовується принаймні прописний символ
Бернхард

3
Тільки для запису, smartcase є лише vim. Але "vi" ОП - це, ймовірно, vim, тому варто згадати / спробувати.
Випадково832

@ Random832 Так. Правильно. Оновлено оригінальне запитання, щоб згадати vimзамість нього vi.
Майк Б

27

Використовуйте \cпослідовність втечі:

/foo\c

Дивіться також: /programming/2287440/how-to-do-case-insensitive-search-in-vim


7
Зверніть увагу , що це може піти куди - небудь в шаблоні, тому якщо ви вирішили після початку типу , який ви хочете зразок бути нечутливі до регістру, ви можете просто додати \cвсюди , де ви, наприклад, /some_very_lo\cng_text.
wchargin

2

У свій .vimrcфайл включіть

set ignorecase

або

set ic

Щоб увімкнути чутливість регістру, використовуйте :set ic!.


1
Привіт! Це виглядає нормально, але це не дуже додає до вже прийнятої відповіді, чи не так?
дхаг

1
@dhag всі відповіді забезпечують інший спосіб виконання того ж завдання. Встановлення значення в .vimrc дозволяє налаштуванню зберігатися для інших сеансів vim.
todgru

@dhag Ви праві, що це нічого не робить для вирішення проблеми ОП менше.
todgru
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.