我正在使用Emacs / AucTeX编辑LaTeX文件。在我的一些LaTeX文件中,我定义了一些“特定于文件”的命令(例如\todo{...}
在一个文件中,\compute{...}
在另一个文件中,依此类推),所以我可以跟踪哪些打开的问题我的文件中有。
Emacs命令highlight-regexp
在突出显示\todo{...}
的所有出现时都做了很好的工作。 \compute{...}
秒。但到目前为止,我每次打开相应的文件时都必须手动执行突出显示。
有没有办法告诉Emacs / AucTeX在打开特定文件时调用特定命令?我想在里面定义这些命令相应的文件,所以我可以轻松地为不同的文件调整它(可能包含在局部变量中)。
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "master"
%%%
%%% here I would like to have something like:
%%% execute highlight-regexp for specific arguments
%%%
%%% End:
答案 0 :(得分:5)
试试这个,
%%% Local Variables:
%%% eval: (font-lock-add-keywords nil '(("\\\\todo" (0 font-lock-warning-face))))
%%% End:
有关详细信息,请参阅Section 57.3.4.1, Specifying File Variables。
答案 1 :(得分:2)
您可以将钩子组合使用到本地变量。例如,您可以添加局部变量dohighlight
或其他内容,然后编写如下函数:
(defun condhighl ()
(when (boundp 'dohighlight)
(highlight-regexp "regexp")))
然后将该函数添加为AucTex的挂钩
(add-hook 'tex-mode-hook 'condhighl)
然后,您可以将本地变量中的dohighlight var添加到要突出显示代码的缓冲区中。
答案 2 :(得分:2)
使用highlight-regexp
设置突出显示后,hi-lock-write-interactive-patterns
(M-s h w)会将模式作为魔术评论写入缓冲区。
您可能也希望在mode: hi-lock
行之后添加mode: latex
,以便在打开文件后立即激活突出显示。