在Calendar中高亮有安排的日期
org-mode agenda 有一个功能,能够在Emacs Calendar上显示哪些日期有约会. 不过可惜,该功能默认并没有被开启. 我也是在浏览Emacs主题截图时偶然发现的.
在下面的屏幕截图中,你可以看到Calendar中有安排的日子都被高亮起来了.
配置很简单.
第一步, 设置 calendar-mark-diary-entries-flag
:
(setq calendar-mark-diary-entries-flag t)
然后创建 $HOME/diary
文件, 并添加下面一行:
%%(org-diary)
之后在Emacs中用org-agenda打开agenda view然后按 c
打开calendar;你会发现所有重要的日期都被高亮了.
当然,执行
M-x calendar
效果一样,也能打开calendar.
你还能够反过来操作 - 要查看某个高亮的日期有哪些安排,只需要将光标移到特定的日期然后按下 c
, Emacs就会打开 org-mode agenda view 并将光标放到合适的地方.
Using with appointments (appt)
如果你在使用org-mode的同时还使用 appointments 的话, 那就要小心了,调用 (appt-activate 1)
会同时运行 diary
.
这样的话,若在Emacs的配置文件中加了这一句话,那么在Emacs启动时就会弹出diary窗口.
我觉得这样很不好, 为了避开这种行为,需要设置 appt-display-diary
变量.
下面是我的 appointments 配置:
(add-hook 'org-finalize-agenda-hook (lambda () (setq appt-message-warning-time 10 ;; warn 10 min in advance appt-display-diary nil ;; do not display diary when (appt-activate) is called appt-display-mode-line t ;; show in the modeline appt-display-format 'window ;; display notification in window calendar-mark-diary-entries-flag t) ;; mark diary entries in calendar (org-agenda-to-appt) ;; copy all agenda schedule to appointments (appt-activate 1))) ;; active appt (appointment notification)