Поиск и регистр
По умолчанию, поиск в 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. См. Замена совпадения.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Searching-and-Case.html