在更改状态时禁用 org-add-log-note

问题描述 投票:0回答:3

我正在尝试创建一个函数,将已注明日期的任务更改为未注明日期、删除截止日期并重新归档 -

without
曾经看到用于记笔记的弹出窗口。

我已经尝试了所有我能想到的方法,除了破解源代码之外,在使用以下函数更改状态时消除

*Org Note*
窗口。 我已经尝试了以下所有方法:kill-buffer; fmakunbound;删除后命令挂钩;使用 org-add-log...setq nil 每个函数;删除窗口; org-kill-note-or-show-branches;在之前的一些想法之前静坐....

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

(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) )
emacs org-mode
3个回答
3
投票

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

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


1
投票

尝试将所有内容包装在函数中(在交互式调用之后)

(flet ((org-add-log-setup (a b c d e) nil))
    Your code
    ....
)

它在本地重写了添加日志功能,不执行任何操作。 (我是在手机上写的,所以如果不起作用请告诉我=)。


0
投票

我改变了

(setq org-todo-keywords '
      ((sequence "TODO(t)" "NEXT(n)" "WAITING(w@/!)" 
                 "|"
                 "DONE(d/!)" "CANCELLED(c@/!)")))

(setq org-todo-keywords '
      ((sequence "TODO(t)" "NEXT(n)" "WAITING" "DONE" "CANCELLED")))

重启emacs,就可以了

© www.soinside.com 2019 - 2024. All rights reserved.