search - текст - Как сделать нечувствительный к регистру поиск в Vim




редактор vim (9)

Хорошая старая команда vim[grep] ..

:vimgrep /example\c/ &
  • \ c для нечувствительных к регистру
  • \ C для чувствительности к регистру
  • % - поиск в текущем буфере

Я бы хотел найти слово в верхнем регистре, например, COPYRIGHT в файле. Я попытался выполнить поиск, например:

/copyright/i    # Doesn't work

но это не сработает. Я знаю, что в Perl, если я дам флаг i в регулярное выражение, он превратит регулярное выражение в не зависящее от регистров регулярное выражение. Кажется, что у Vim есть собственный способ указать не зависящее от регистров регулярное выражение.


Vim имеет 2 режима

Режим 1.edit

  1. нормальный режим (Esc)

Поиск будет работать в нормальном режиме

/ \ c для чувствительности к регистру

/ \ c поиск


Вы можете выполнить команду

:set ignorecase

и после этого ваши поиски будут нечувствительны к регистру.


Вы можете использовать в своих vimrc те команды:

  • set ignorecase - все ваши поисковые запросы будут нечувствительны к регистру
  • set smartcase - ваш поиск будет чувствителен к регистру, если он содержит заглавную букву

Вам нужно установить ignorecase если вы хотите использовать то, что предлагает smartcase .

Недавно я написал статью о командах поиска Vim (как встроенных в команду, так и лучших плагинов для эффективного поиска).


Вы можете установить опцию ic в Vim перед поиском:

:set ic

Чтобы вернуться к поисковым запросам, используйте:

:set noic

ic является сокращением для ignorecase


Для переключения между чувствительным к регистру и нечувствительным поиском я использую это сопоставление в моем .vimrc

nmap <F9> :set ignorecase! ignorecase?


Как предложили другие:

:set ic

Но классный материал: вы можете переключать такие режимы с помощью:

:set ic!

Как упоминает @huyz, иногда желаемое поведение - это поиск без учета регистра, но с учетом регистра. Мое решение для этого:

nnoremap / /\c
nnoremap ? ?\c

С этим всегда, когда вы попадаете / или ? он добавит \c для поиска без учета регистра.


поместите эту команду в свой файл vimrc

set ic 

всегда делать нечувствительный к регистру поиск







case-insensitive