Я хотел бы найти слово в верхнем регистре, например, COPYRIGHT в файле. Я попытался выполнить поиск как:
/copyright/i # Doesn't work
но это не работает Я знаю, что в Perl, если я передам i
флаг в регулярное выражение, оно превратит регулярное выражение в регистр без учета регистра. Кажется, что у Vim есть свой собственный способ указать регистронезависимое регулярное выражение.
search
vim
case-insensitive
Хайюань Чжан
источник
источник
\c
может появиться в любом месте шаблона, поэтому, если вы наберете шаблон и затем решите, что вам нужен поиск без учета регистра, просто добавьте\c
в конце.set ignorecase
регистра в моем vimrc, и я могу использовать\C
поиск с учетом регистра, подобный тому, что упоминал @AlokSinghal.set smartcase
которая автоматически переключается на регистрозависимый поиск, если вы используете заглавные буквы.set smartcase
применяется только когдаset ignorecase
уже активен. Я был озадачен этим на некоторое время. Смотрите Vim Советы .\c
сравнению с\C
А также предложения для
\c
иignorecase
я считаюsmartcase
очень полезным. Если вы ищете что-то, содержащее заглавные буквы, поиск будет выполняться с учетом регистра; если вы ищете что-то чисто строчные, он будет выполнять поиск без учета регистра. Вы можете использовать\c
и\C
переопределить это:Видеть:
источник
ignorecase
том, что это влияет на замены, а также на поиск. Я считаю, что имеет смысл иметь (умный) регистронезависимый поиск, но регистрозависимые замены по умолчанию. Но я не знаю, как это сделать.smartcase
работы вам также необходимоset ignorecase
. Отличный совет, спасибо!:%s/lowercasesearch\C/replaceString/g
. Это не создает желаемой функциональности по умолчанию, но позволяет принудительно учитывать регистр для замен, но при этом использовать смарт-регистр при поиске.I
флаг подстановки, чтобы заставить шаблон быть чувствительным к регистру. Как:%s/lowercasesearch/replaceString/gI
.After "*" and "#" you can make 'smartcase' used by doing a "/" command, recalling the search pattern from history and hitting <Enter>.
Вы можете установить
ic
опцию в Vim перед поиском:Чтобы вернуться к поиску с учетом регистра, используйте:
ic
это сокращение дляignorecase
источник
\c
не работает в vi.Вы можете выполнить команду
и после этого ваши поиски будут без учета регистра.
источник
Чтобы переключаться между поиском с учетом регистра и без учета регистра, я использую это отображение в моем .vimrc
nmap <F9> :set ignorecase! ignorecase?
источник
ignorecase?
показывает текущее состояние флага. (в командной строке)Вы можете использовать в
vimrc
этих командах:set ignorecase
- Все ваши поиски будут без учета регистраset smartcase
- Ваш поиск будет чувствителен к регистру, если он содержит заглавную буквуВам нужно установить,
ignorecase
если вы хотите использовать то, чтоsmartcase
обеспечивает.Недавно я написал статью о командах поиска Vim (как встроенных в команду, так и лучшие плагины для эффективного поиска).
источник
set smartcase
не выполняет поиск без учета регистра, если я не использую заглавные буквы ... это нормально?Как и другие предлагали:
Но самое интересное, что вы можете переключать такие режимы:
источник
поместите эту команду в ваш файл vimrc
всегда выполнять поиск без учета регистра
источник
set noic
.Старая добрая
vim[grep]
команда ..источник
Cannot open file "&"
%
а не%
.Я предпочитаю использовать
\c
в конце строки поиска:источник
Как упоминает @huyz, иногда желаемое поведение использует поиск без учета регистра, но замены с учетом регистра. Мое решение для этого:
При этом всегда, когда вы нажимаете,
/
или?
это добавит\c
для поиска без учета регистра.источник
smartcase
опцию?smartcase
Vim имеет 2 режима
Режим 1.edit
Поиск будет работать в обычном режиме
/ \ c для чувствительного к регистру
/ \ c поиск
источник
Вы можете установить
ignorecase
по умолчанию, запустить это в оболочкеисточник