命令:Emacs 选择 → \command{regexp'ed-selection}

命令:Emacs 选择 → \command{regexp'ed-selection}

假设我有以下文本:

…如图(24)所示。

现在,假设我选择“(24)”。然后,我想要一个命令将其转换为:

...如图 \command{eq:24} 所示。

也就是说,我该如何定义一个新的 Emacs 命令,让它运行~/.emacsC-C RET command RET所选文本的正则表达式版本上?谢谢

谢谢

答案1

该函数C-c RETcommandRET运行的是(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)))))

您可以调整它来满足您的需要。

相关内容