35.2 Поиск и регистр

По умолчанию поиск в Emacs игнорирует регистр текста, по которому производится поиск; если вы указываете поиск по строке ‘FOO’, то ‘Foo’ или ‘foo’ также считаются совпадением. Это применимо и к регулярным выражениям; таким образом, ‘[aB]’ будет соответствовать ‘a’, ‘A’, ‘b’ или ‘B’.

Если вы не хотите использовать эту функцию, установите переменную case-fold-search в nil. Тогда все буквы должны совпадать точно, включая регистр. Это переменная, действующая в пределах буфера; изменение переменной влияет только на текущий буфер. (См. Введение в переменные, действующие в пределах буфера.) Альтернативно, вы можете изменить значение по умолчанию. В коде Lisp вы, как правило, будете использовать let для привязки case-fold-search к желаемому значению.

Обратите внимание, что функция поиска с инкрементальным обновлением обрабатывает различия в регистрах иначе. Когда искомая строка содержит только строчные буквы, поиск игнорирует регистр, но когда искомая строка содержит одну или более заглавных букв, поиск становится чувствительным к регистру. Но это не имеет отношения к функциям поиска, используемым в коде Lisp. См. Поиск с инкрементальным обновлением в Руководстве GNU Emacs.

Пользовательская опция: case-fold-search

Эта переменная, действующая в пределах буфера, определяет, должны ли поиски игнорировать регистр. Если переменная равна nil, они не игнорируют регистр; в противном случае (и по умолчанию) они игнорируют регистр.

Пользовательская опция: case-replace

Эта переменная определяет, должны ли более высокоуровневые функции замены сохранять регистр. Если переменная равна nil, это означает использование текста замены дословно. Не-nil значение означает преобразование регистра текста замены в соответствии с замещаемым текстом.

Эта переменная используется при передаче ее в качестве аргумента функции replace-match. См. Замена совпавшего текста.