Emacs 在AUCTeX中插入带星号的环境或命令

Emacs 在AUCTeX中插入带星号的环境或命令,emacs,auctex,Emacs,Auctex,今天的问题很简单——我希望答案也同样简单 从TextMate,我习惯于使用键盘快捷键,将当前环境或命令更改为星号版本。Emacs/AUCTeX中有类似的功能吗?显然没有,但是通过使用LaTeX当前环境和LaTeX修改环境编写一个小函数来实现这一点很容易。(对不起,我现在没有带emacs。)如前所述,您可以编写一个函数,以如下方式修改环境: (defun乳胶星环境() “将当前环境转换为星号版本。” (互动) ;;向当前环境中添加星号。 (LaTeX修改环境(concat(LaTeX当前环境)“*

今天的问题很简单——我希望答案也同样简单


从TextMate,我习惯于使用键盘快捷键,将当前环境或命令更改为星号版本。Emacs/AUCTeX中有类似的功能吗?

显然没有,但是通过使用
LaTeX当前环境
LaTeX修改环境
编写一个小函数来实现这一点很容易。(对不起,我现在没有带emacs。)

如前所述,您可以编写一个函数,以如下方式修改环境:

(defun乳胶星环境()
“将当前环境转换为星号版本。”
(互动)
;;向当前环境中添加星号。
(LaTeX修改环境(concat(LaTeX当前环境)“*”))
如果您重复此命令,此函数将继续向当前环境添加星号(
*

如果您希望函数在当前环境未加星号时加星号,在当前环境已加星号时取消加星号,则可以使用以下函数:

(defun乳胶星环境dwim()
“在当前环境的星号版本和非星号版本之间转换。”
(互动)
如果当前的环境是星级的。
(如果(字符串匹配“\*$”(当前环境))
;从当前环境中删除星号。
(LaTeX修改环境(子字符串(LaTeX当前环境)0-1))
;否则在当前环境中添加一个星形。
(LaTeX修改环境(concat(LaTeX当前环境)“*”))

您可以通过将其包含在.emacs中并分别执行M-x
LaTeX star environment
LaTeX star environment dwim
或通过将函数绑定到键来使用这两个函数。

谢谢!我担心学习基本LISP的时间即将到来。那么我可以自己做…@Thilo我已经更新了我的答案,加入了一个更复杂的函数,并且我对这两个函数都做了注释,如果你决定学习Lisp,那么它们更容易理解。学习Lisp很有趣。我是通过阅读O'Reilly的学习GNU Emacs来学习Lisp的。当你说starred命令时,如果你不考虑某些环境,你会想到哪些命令?比如说,
\section*{…}
命令。还有一些可以与star一起使用。对于宏,似乎没有与
LaTeX当前环境
LaTeX修改环境
等效的功能,因此我不确定如何将star宏的功能添加到我建议的功能中。对于宏,是否有等效的功能?我找不到。