14

我将 emacs org-mode 用于各种目的。最常见的功能是用特殊标签TODO&标记我的任务DONE。有没有办法添加自定义标签(例如IN_PROGRESS)并用单独的颜色突出显示它?

另外,如果这个标签在同一个缓冲区中滚动,TODO那么DONE我可以使用相同的热键在它们之间切换。

4

5 回答 5

18

我在我的 init.el 中使用了以下内容,它为所有 org 文件设置了额外的任务状态及其样式:

(setq org-todo-keyword-faces
      '(
        ("NOT-TODO" . (:foreground "blue" :weight bold))
        ("IF-TIME" . (:foreground "yellow" :weight bold))
        ("NOT-REPRO" . (:foreground "purple" :weight bold))
        ))

(setq org-todo-keywords
      '((sequence "TODO" "NOT-TODO" "NOT-REPRO" "IF-TIME" "DONE")))
于 2012-10-04T06:12:04.153 回答
15

您可以在文件的开头这样做:

#+TODO: TODO IN-PROGRESS WAITING DONE

在该行上按 Cc Cc 以刷新设置(后续加载文件不需要),一切都应该是愉快的。

正如这里所解释的。

于 2012-10-03T11:33:31.167 回答
15

我使用以下内容生成看起来有点像按钮的 TODO 关键字,以使它们在我的大纲和议程中更加清晰。如果我没记错的话,这个样式来自邮件列表。

  (setq org-todo-keywords
  '((sequence "TODO"
      "MAYBE"
      "NEXT"
      "STARTED"
      "WAITING"
      "DELEGATED"
      "|"
      "DONE"
      "DEFERRED"
      "CANCELLED")))

  (setq org-todo-keyword-faces
    '(("PROJ" :background "blue" :foreground "black" :weight bold :box (:line-width 2 :style released-button))
      ("TODO" :background "red1" :foreground "black" :weight bold :box (:line-width 2 :style released-button))
      ("NEXT" :background "red1" :foreground "black" :weight bold :box (:line-width 2 :style released-button))
      ("STARTED" :background "orange" :foreground "black" :weight bold :box (:line-width 2 :style released-button))
      ("WAITING" :background "yellow" :foreground "black" :weight bold :box (:line-width 2 :style released-button))
      ("DEFERRED" :background "gold" :foreground "black" :weight bold :box (:line-width 2 :style released-button))
      ("DELEGATED" :background "gold" :foreground "black" :weight bold :box (:line-width 2 :style released-button))
      ("MAYBE" :background "gray" :foreground "black" :weight bold :box (:line-width 2 :style released-button))
      ("APPT" :background "red1" :foreground "black" :weight bold :box (:line-width 2 :style released-button))
      ("DONE" :background "forest green" :weight bold :box (:line-width 2 :style released-button))
      ("CANCELLED" :background "lime green" :foreground "black" :weight bold :box (:line-width 2 :style released-button))))

这使我的议程如下所示: 在此处输入图像描述

于 2012-10-06T09:15:28.410 回答
5

要在不修改特定组织文件的情况下添加关键字,您可以修改org-todo-keywords.

有关更多信息,请参阅组织手册

于 2012-10-03T15:54:04.753 回答
2

作为细粒度的替代品

(setq org-todo-keyword-faces
      '(...
       )

它允许您对每个状态进行调整,您可以考虑采用二分法方法,例如,该方法本质上为管道TODO两侧的两组中的每一个制作一个面|

(set-face-attribute 'org-todo nil
                    :foreground "#AFD8AF"
                    )
(set-face-attribute 'org-done nil
                    :foreground "#CC9393"
                    )

(这个颜色选择是我当前的zenburn主题切换。)也就是说,这些分别适用于

TODO1 TODO2 ... TODOk | DONE1 DONE2 ... DONEn

例如,在此处输入图像描述


预计到达时间:

从那以后,我不得不与各种 org-mode 标题级别具有各种颜色的事实作斗争,并且尝试找到与所有标题级别形成鲜明对比的颜色对(fororg-todo和)太不方便了。org-done此外,将不得不处理不断变化的 Emacs 颜色主题,因为随着季节的变化,低对比度的 zenburn 可能不太合适。

简单地反转默认颜色要容易得多。生成的矩形边缘有点尴尬,所以边框有助于使它看起来更自然一些。然后,我得出了一个很像 Stuart Hickinbottom 的计划。

所以我现在有

(set-face-attribute 'org-todo nil
                    :box '(:line-width 2 
                           :color "grey75" 
                           :style released-button)
                    :inverse-video t
                    )
(set-face-attribute 'org-done nil
                    :box '(:line-width 2 
                           :color "grey75" 
                           :style released-button)
                    :inverse-video t
                    )
(set-face-attribute 'org-priority nil
                    :inherit font-lock-keyword-face 
                    :inverse-video t 
                    :box '(:line-width 2 
                           :color "grey75" 
                           :style released-button)
                    )

这会产生,带有初始化文件颜色选择(load-theme 'deeper-blue t)

在此处输入图像描述

(红色表示停止!这样做!绿色表示你可以自由去玩。)

于 2014-03-18T02:09:56.573 回答