Мне кажется, что такой подход не совсем обычен, но он работает и кажется достаточным для разовой работы ...
В тексте замены для replace-regexp
и query-replace-regexp
( CM-% ), одна более новая escape-последовательность - \,(...)
, где ...
может быть любым выражением Lisp.Есть функция Lisp read-from-minibuffer
, которая читает произвольный текст, набранный пользователем, с необязательным значением по умолчанию.Следовательно:
CM -% : начало query-replace-regexp
.
\\ind{\([^}]+?\)}
: шаблон для поиска.
\\textbf{\1}\\index{\,(read-from-minibuffer "index content? " \1)}
:текст замены.Пользователю будет предложено ввести текст в фигурные скобки после элемента \index{}
, используя исходный текст между фигурными скобками после элемента \ind{}
по умолчанию.
Обратите внимание, что при использовании query-replace-regexp
Вам нужно будет подтвердить каждый выбор, набрав y после каждого.Используйте Mx replace-regexp , если вы хотите избежать этого шага.