1

我希望 org-mode 通过在我将TODO项目的状态更改为DONE.

我在我的.emacs文件中尝试了两种变体,但都没有奏效。我在 OSX 上使用 Aquamacs。

这些都不起作用:

'(org-after-todo-state-change-hook (quote (org-clock-out-if-current) (play-sound-file "~/Library/Sounds/InkSoundStroke3.aif")))

'(org-after-todo-state-change-hook (quote (org-clock-out-if-current)     (start-process-shell-command "afplay" nil "mplayer ~/Library/Sounds/InkSoundStroke3.aif")))
4

1 回答 1

3

编辑:如果您检查钩子 ( C-hv org-after-todo-state-change-hook RET) 的文档字符串,您会看到新状态在变量中可用org-state,因此我们可以对此进行测试:

(add-hook 'org-after-todo-state-change-hook 'my-org-after-todo-state-change)
(defun my-org-after-todo-state-change ()
  (when (string-equal org-state "DONE")
    (org-clock-out-if-current)
    (play-sound-file "~/Library/Sounds/InkSoundStroke3.aif")))
于 2013-03-11T19:21:02.837 回答