我有一个包含以下内容的组织文件:
* My Heading
** TODO Make a FOO
** TODO Take action on bar and FOO
** TODO Check if FOO is working
我的目标是突出显示FOO
中任务标题中的org-agenda-mode
一词。为此,我尝试过:
(add-hook 'org-agenda-mode-hook
(lambda ()
(font-lock-add-keywords nil
'(("\\(FOO\\)" 1 '(:background "red"))))))
但没有任何改变。我的钩子 正在运行,如果我在议程视图中尝试C-h v font-lock-keywords
,则返回的值为
(t
(("\\(FOO\\)" 1
'(:background "red")))
("\\(FOO\\)"
(1
'(:background "red"))))
除了两次显示相同的项目外,我不明白为什么这不起作用。 忽略 font-lock-mode
设置吗?如果是这样,我如何向org-agenda-mode
添加“自定义”关键字高亮显示?
编辑:
M-x emacs-version
是GNU Emacs 24.4.1 (i686-pc-mingw32)
M-x org-version
是Org-mode version 8.2.10
答案 0 :(得分:2)
正如@lawlist建议的那样,*Org-Agenda*
缓冲区不使用font-lock-mode
。在议程视图中实现我想要的最简单方法是按照HiLock中的建议使用this question:
(defface my-hi-lock-face '((t (:background "red"
:foreground "yellow"
:bold t)))
"my-hi-lock-face")
(add-hook 'org-finalize-agenda-hook
(lambda ()
(highlight-regexp "\\(FOO\\)" "my-hi-lock-face")))
请注意我使用的钩子:每次重绘我的议程缓冲区时都会再次运行。
答案 1 :(得分:1)
我没有时间尝试去理解代码中的错误,但是你可以查看我的Emacs-Leuven.el文件(L976-1015):我对“FIXME”这个词做同样的事情。 ,“XXX”和“BUG”。
https://github.com/fniessen/emacs-leuven/blob/master/emacs-leuven.el