【问题标题】:How to automatically track links in org-mode to gnus messages?如何在 org-mode 中自动跟踪到 gnus 消息的链接?
【发布时间】:2013-03-22 02:56:57
【问题描述】:

我在日常 GTD 例程中使用 org-mode + gnus + Gmail。其概念是将所有传入的消息视为任务,并使用 org-capture 将 INBOX 中的所有消息转换为 org-mode 的任务。一旦所有新消息都转换为任务,将它们归档,并希望 INBOX 保持为零。

我的工作流程如下:

  1. 打开 gnus INBOX 的摘要视图,并选择一条新消息
  2. 使用 org-store-link (C-c l) 捕获消息
  3. 打开我的 todo 文件 (todo.org),为其创建一个新任务,然后使用 org-insert-link (C-c C-l) 将捕获的链接粘贴到任务正文中
  4. 返回 gnus 摘要视图并存档消息 (B del)

问题是当将邮件移动到存档文件夹时,捕获的链接会损坏,我无法再点击该链接。这是因为捕获的链接包含 IMAP 文件夹的名称,并且归档邮件会更改邮件的 IMAP 文件夹名称。例如,

  • 捕获的链接:[[gnus:nnimap%2Blocalhost:%5BGmail%5D.Important#1364607772002.9702fb8c@Nodemailer][Email from Geeklist Team: Geekli.st Suggestions & Activi]](IMAP 文件夹名称为 "[Gmail]Important"
  • 存档邮件的链接:[[gnus:nnimap%2Blocalhost:%5BGmail%5D.All Mail#1364607772002.9702fb8c@Nodemailer][Email from Geeklist Team: Geekli.st Suggestions & Activi]](IMAP 文件夹名称为 "[Gmail]All Mail"

所以我的问题是:当邮件移动到其他文件夹时,如何自动更新捕获的链接?我想有一些钩子可以做到这一点,但我找不到为此目的的好样本。或者欢迎任何针对这种例程的更简单的解决方案。 TIA。

【问题讨论】:

    标签: emacs org-mode gnus


    【解决方案1】:

    我不使用“org-store-link”和“org-insert-link”,而是使用capture template,它会自动生成指向消息的链接(下面的%a)。因此,您不必切换缓冲区来存储 TODO 条目:

    (setq 组织捕获模板 '( (“m”“邮件中的 TODO”条目(文件+标题“~/gitfiles/org/gtd.org”“收件箱”) "* TODO %?,链接:%a")))

    由于我所有的电子邮件都到达收件箱并存档在“存档”文件夹中,因此我可以使用以下函数将捕获缓冲区中组织模式链接中的字符串“收件箱”替换为“存档”:

    (defun hs/replace () (交互的) (转到字符 1) (替换字符串“收件箱”“存档”))

    当我点击 C-c C-c 来归档捕获条目时,这个钩子会调用该函数:

    (add-hook 'org-capture-prepare-finalize-hook 'hs/replace)

    所以,我的工作流程如下:

    • 在摘要缓冲区中选择一条消息
    • 点击 C-c c m 以使用 Link to message 捕获 TODO 项并编写说明(由于消息仍在收件箱中,生成的链接包含组“INBOX”)
    • 点击 C-c C-c 来归档 TODO 条目(这会调用函数 'hs/replace' 将字符串 INBOX 替换为存档)
    • 在存档文件夹中存档电子邮件。

    HTH

    【讨论】:

    • 实际上这对我不起作用:replace-string 不会在不可见的文本中搜索,并且由于链接在我的捕获缓冲区中格式化,因此链接的文本是不可见的。为了解决这个问题,我不得不写(let ((search-invisible t)) (replace-string "INBOX" "Archive"))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2015-09-27
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多