每个文件的颜色代码议程视图

时间:2013-06-12 13:17:38

标签: emacs org-mode

我有几个.org文件,例如personal.org和work.org。

在查看议程时,我希望每个文件中的事件都有不同的颜色。

例如,

Wednesday  12 June 2013
  personal:   11:00am........ Personal Meeting
  work:       2:00pm- 3:00pm  Work Meeting

议程中已有一些颜色,但这两行都是白色的。如何设置从个人到一种颜色的线,以及从工作到另一种颜色的线?我认为至少必须有一种基于personal:work:文本定义颜色方案的方法,如果没有简单的方法让org按文件执行。

谢谢!

2 个答案:

答案 0 :(得分:5)

我找到的唯一解决方案是你要求的,你必须使用钩子功能,在议程视图准备好后更换面孔。以下代码未经测试,但应该让您继续:

(add-hook 'org-finalize-agenda-hook
    (lambda ()
      (save-excursion
        (goto-char (point-min))
        (while (re-search-forward "personal:" nil t) 
          (add-text-properties (match-beginning 0) (point-at-eol)
             '(face secondary-selection)))
        (goto-char (point-min))
        (while (re-search-forward "work:" nil t) 
          (add-text-properties (match-beginning 0) (point-at-eol)
             '(face bold))))))

答案 1 :(得分:3)

John Wiegley曾经发送了一个他写的补丁,所以使用:OVERLAY:属性,所有工作项都具有相同的背景颜色。对于Personal的另一个值,这些项目有不同的颜色。

请参阅http://comments.gmane.org/gmane.emacs.orgmode/54342