Как вы сообщаете Emacs оставить вопрос в одиночку в поиске и заменить строку?
Я пытаюсь выполнить поиск в регулярном выражении и заменить его в Emacs (используя M-x query-replace-regexp
), но обычно полезный смарт-случай мешает. Мой источник:
One
Two
Three
И я хочу заменить каждую строку чем-то вроде <item name="One"/>
. К сожалению, столица в начале каждой строки неверно истолкована, и я получаю <Item>
с прописным, который я не хочу.
Я могу найти примеры того, как сделать регистр поиска чувствительным, и как сохранить \1
в нижнем регистре в заменяющей строке, но ничего о том, как сохранить всю заменяющую строку case-unmodified.
Ответы
Ответ 1
Попробуйте добавить это в ваш .emacs:
(setq case-replace nil)
C-h v case-replace RET:
Документация: Non-nil означает, что `query-replace 'должен сохранять регистр в замены.
И ссылка на руководство для Replace Commands and Case описывает все взаимодействия с регистром и соответствующими переменными.
Или вы можете определить новую команду, например:
(defun query-replace-no-case ()
(interactive)
(let ((case-replace nil))
(call-interactively 'query-replace))))
И, если вы кодировали это в функции и только хотели временно установить переменную, вы бы сделали что-то вроде:
(let ((case-replace nil))
(while (search-forward ...)
(replace-match ...)))
Ответ 2
В текущем emacs вы можете найти этот параметр в меню Параметры. Сохраните параметры, если хотите, через одно и то же меню.