我将 emacs org-mode 用于各种目的。最常见的功能是用特殊标签TODO
&标记我的任务DONE
。有没有办法添加自定义标签(例如IN_PROGRESS
)并用单独的颜色突出显示它?
另外,如果这个标签在同一个缓冲区中滚动,TODO
那么DONE
我可以使用相同的热键在它们之间切换。
我在我的 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")))
您可以在文件的开头这样做:
#+TODO: TODO IN-PROGRESS WAITING DONE
在该行上按 Cc Cc 以刷新设置(后续加载文件不需要),一切都应该是愉快的。
正如这里所解释的。
我使用以下内容生成看起来有点像按钮的 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))))
这使我的议程如下所示:
要在不修改特定组织文件的情况下添加关键字,您可以修改org-todo-keywords
.
有关更多信息,请参阅组织手册。
作为细粒度的替代品
(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)
,
(红色表示停止!这样做!绿色表示你可以自由去玩。)