假设我有以下文本:
…如图(24)所示。
现在,假设我选择“(24)”。然后,我想要一个命令将其转换为:
...如图 \command{eq:24} 所示。
也就是说,我该如何定义一个新的 Emacs 命令,让它运行~/.emacs
在C-C RET command RET
所选文本的正则表达式版本上?谢谢
谢谢
答案1
该函数C-c RETcommand
RET运行的是(TeX-insert-macro "command")
,因此此代码执行您想要的操作
(eval-after-load "latex"
'(progn
(define-key LaTeX-mode-map (kbd "INSERT-YOUR-KEYBINDING-HERE")
(lambda (beg end)
(interactive "^r")
(if (> (point) (mark))
(exchange-point-and-mark))
(re-search-forward "(\\([^)]*\\))" (mark) t)
(replace-match "eq:\\1")
(goto-char beg)
(TeX-insert-macro "command")
(pop-mark)))))
您可以调整它来满足您的需要。