Emacs 组织日程中的字体锁定不起作用

Emacs 组织日程中的字体锁定不起作用,emacs,elisp,org-mode,font-lock,Emacs,Elisp,Org Mode,Font Lock,我有一个包含以下内容的组织文件: * My Heading ** TODO Make a FOO ** TODO Take action on bar and FOO ** TODO Check if FOO is working 我的目标是突出显示组织议程模式下任务标题中的FOO一词。为了实现这一点,我尝试了: (添加hook'组织议程模式hook (lambda() (字体锁定添加关键字无) “((“\\(FOO\\)”1'(:背景“红色”;);));) 但一切都没有改变。我的hook正

我有一个包含以下内容的组织文件:

* My Heading
** TODO Make a FOO
** TODO Take action on bar and FOO
** TODO Check if FOO is working
我的目标是突出显示
组织议程模式下任务标题中的
FOO
一词。为了实现这一点,我尝试了:

(添加hook'组织议程模式hook
(lambda()
(字体锁定添加关键字无)
“((“\\(FOO\\)”1'(:背景“红色”;);));)
但一切都没有改变。我的hook正在运行,如果我在议程视图中尝试
C-hv字体锁定关键字
,则返回的值为

(t
((“\\(FOO\\)”1
(:背景“红色”))
(“\\(FOO\)”
(1
(:背景“红色”))
除了两次展示同一个项目外,我不明白这为什么不起作用。是否忽略字体锁定模式设置?如果是这样,我如何将“自定义”关键字hightlight添加到
组织议程模式

编辑:

  • M-xemacs版本
    is
    gnuemacs 24.4.1(i686-pc-mingw32)
  • M-x组织版本
    org模式版本8.2.10

我没有时间尝试理解您的代码中的错误,但您可以查看我的Emacs-Leuven.el文件(L976-1015):我对单词“FIXME”、“XXX”和“BUG”也这样做


正如@lawlist建议的那样,
*Org-Agenda*
缓冲区不使用
字体锁定模式
。要在“议程”视图中实现我想要的目标,最简单的方法是按照以下建议使用:


注意我正在使用的钩子:每次我重新绘制议程缓冲区时,这个钩子都会再次运行。

*Org-agenda*
缓冲区使用
文本属性
而不使用字体锁定。在该特定缓冲区中是否启用了字体锁定模式e、 例如,
M-x描述变量RET字体锁定模式RET
@lawlist Touché<代码>字体锁定模式
已禁用。多亏了你的提示,我找到了答案。根据@lawlist的评论,问题是
org-agenda
没有使用
font-lock模式。我错过了你需要它列入议程的事实。谢谢你纠正我。谢谢你的回答。这有助于我突出显示组织议程中的一些字符串。只是提醒一下:现在挂钩名称已更改为
Org Agenda finalize hook
,请在上面提供的代码中对此进行修改。
(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")))