禁用关于更改状态的org-add-log-note

时间:2013-07-06 06:49:47

标签: emacs org-mode

我正在尝试创建一个函数,将过时的任务更改为未注明日期,删除截止日期并重新加注 - without看到弹出窗口记录笔记。

我尝试了所有我能想到的,没有黑客攻击,在使用以下函数更改状态时消除*Org Note*窗口。我尝试了以下所有方法:kill-buffer; fmakunbound;删除post-command-hook; setq nil每个函数都带有org-add-log ...;删除窗口;有机杀音符,或出现分支;在以前的一些想法之前先坐下来。

有人能想出一种防止弹出窗口发生的方法吗?

(defun someday ()
    (interactive)
        (org-todo "Someday")
        (org-priority ?D)
        (org-deadline 'remove)
        (setq org-archive-save-context-info nil)
        (setq org-archive-location "/Users/HOME/.0.data/*TODO*::* UNDATED")
        (org-archive-subtree) )

2 个答案:

答案 0 :(得分:2)

也许我误解了这个问题,但如果没有,那么我认为解决方案是将变量org-log-done的值设置为nil。您将不再获得 Org Note 弹出缓冲区。 org-todo()的日志记录行为(您将其称为例程中的第一个函数)由org-log-done管理。

您可以保留现有行为,但在交互式调用org-todo()之前,通过提供0作为数字前缀,可以在临时基础上跳过日志记录。有关所有这些的更多信息,请参阅组织手册的5.3.1和org-todo()的文档字符串。

答案 1 :(得分:1)

尝试使用

包装函数中的所有内容(在交互式调用之后)
(flet ((org-add-log-setup (a b c d e) nil))
    Your code
    ....
)

它在本地覆盖添加日志功能,不执行任何操作。 (我在手机上写这个,所以如果它不起作用,请告诉我。)。