Как вы говорите Emacs оставить дело в покое в строке поиска и замены? - PullRequest
11 голосов
/ 24 августа 2011

Я пытаюсь выполнить поиск и замену регулярных выражений в Emacs (используя M-x query-replace-regexp), но обычно полезный умный случай мешает. Мой источник:

One
Two
Three

И я хочу заменить каждую строку чем-то вроде <item name="One"/>. К сожалению, заглавная буква в начале каждой строки неправильно интерпретируется, и я получаю <Item> с заглавными буквами, которые мне не нужны.

Я могу найти примеры того, как сделать поиск чувствительным к регистру и как сохранить строчную букву \1 в строке замены, но ничего о том, как сохранить всю строку замены без изменений.

Ответы [ 2 ]

6 голосов
/ 24 августа 2011

Попробуйте добавить это к вашему .emacs:

(setq case-replace nil)

C-h v чехол-замена RET :

Документация: не ноль означает, что запрос-замена должен сохранять регистр в замена.

И ссылка на руководство по Заменить команды и регистр подробно описывает все взаимодействия с регистром и соответствующими переменными.

Или вы можете определить новую команду, например:

(defun query-replace-no-case ()
   (interactive)
   (let ((case-replace nil))
       (call-interactively 'query-replace))))

И, если вы кодировали это в функции и хотели только временно установить переменную, вы бы сделали что-то вроде:

(let ((case-replace nil))
   (while (search-forward ...)
       (replace-match ...)))
0 голосов
/ 18 декабря 2017

В текущем emacs вы можете найти опцию в Меню настроек . Сохранить параметры, если вы хотите через то же меню.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...