Emacs: определить макрос в комментарии и автоматически выполнить его - PullRequest
3 голосов
/ 08 июля 2010

Я использую Emacs / AucTeX для редактирования файлов LaTeX. В некоторых моих файлах LaTeX я определил некоторую «специфичную для файла» команду (например, \todo{...} в одном файле, \compute{...} в другом и т. Д.), Чтобы я мог отслеживать, какие открытые проблемы возникают в моем файле. документы.

Команда Emacs highlight-regexp неплохо справляется со всеми событиями \todo{...} с. \compute{...} s. Но до сих пор мне приходилось выполнять выделение вручную каждый раз, когда я открываю соответствующий файл.

Есть ли способ заставить Emacs / AucTeX вызывать определенные команды при открытии определенного файла? Я хотел бы определить эти команды внутри соответствующего файла, чтобы я мог легко настроить его для разных файлов (возможно, включенных в локальные переменные).

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "master"
%%%
%%% here I would like to have something like:
%%% execute highlight-regexp for specific arguments
%%%
%%% End: 

Ответы [ 3 ]

5 голосов
/ 08 июля 2010

Попробуйте это,

%%% Local Variables: 
%%% eval: (font-lock-add-keywords nil '(("\\\\todo" (0 font-lock-warning-face))))
%%% End: 

См. Раздел 57.3.4.1, Указание файловых переменных , для получения более подробной информации.

2 голосов
/ 09 июля 2010

После использования highlight-regexp для настройки подсветки, hi-lock-write-interactive-patterns (Ms hw) запишет шаблоны в буфер в качестве магического комментария.

Возможно, вы захотите добавить mode: hi-lock послеmode: latex строка, чтобы активировать выделение, как только вы откроете файл.

2 голосов
/ 08 июля 2010

Вы можете использовать крючок в сочетании с локальными переменными. Например, вы можете добавить локальную переменную dohighlight или что-то еще, а затем написать такую ​​функцию:

(defun condhighl ()
 (when (boundp 'dohighlight)
 (highlight-regexp "regexp")))

, а затем добавить эту функцию в качестве хука для AucTex

(add-hook 'tex-mode-hook 'condhighl)

Затем вы можете добавить переменную dohighlight в ваших локальных переменных в буферы, в которых вы хотите выделить код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...