Как выполнить поиск без учета регистра в Vim - PullRequest
1508 голосов
/ 18 февраля 2010

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

/copyright/i    # Doesn't work

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

Ответы [ 13 ]

1906 голосов
/ 18 февраля 2010

Вам необходимо использовать escape-последовательность \c. Итак:

/\ccopyright

Чтобы сделать обратное (регистр чувствительный совпадение), используйте \C вместо.

628 голосов
/ 18 февраля 2010

Кроме предложений по \c и ignorecase, я считаю smartcase очень полезным.Если вы ищете что-то, содержащее заглавные буквы, поиск будет выполняться с учетом регистра;если вы ищете что-то чисто строчные, он будет выполнять поиск без учета регистра.Вы можете использовать \c и \C, чтобы переопределить это:

:set ignorecase
:set smartcase
/copyright      " Case insensitive
/Copyright      " Case sensitive
/copyright\C    " Case sensitive
/Copyright\c    " Case insensitive

См .:

:help /\c
:help /\C
:help 'smartcase'
263 голосов
/ 18 февраля 2010

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

:set ic

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

:set noic

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

53 голосов
/ 18 февраля 2010

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

:set ignorecase

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

44 голосов
/ 23 февраля 2010

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

nmap <F9> :set ignorecase! ignorecase?

19 голосов
/ 19 января 2017

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

:set ic

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

:set ic!
18 голосов
/ 19 мая 2015

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

set ic 

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

17 голосов
/ 26 декабря 2017

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

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

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

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

14 голосов
/ 18 ноября 2017

Старая добрая vim[grep] команда ..

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

enter image description here

10 голосов
/ 15 июня 2017

Я предпочитаю использовать \c в конце строки поиска:

/copyright\c
...