Emacs 在组织模式下自动分配标记

Emacs 在组织模式下自动分配标记,emacs,tags,org-mode,Emacs,Tags,Org Mode,当标签已经存在于标题中时,我讨厌分配标签。我想找出一种让组织模式评估标题的方法(最好是在我点击“回车”键之后),如果它包含与我的组织标签列表中的标签匹配的任何单词,请为标题创建这些标签 例如: 如果我的组织标签列表中已经有各种个人姓名和项目名称,甚至可能还有诸如“今天”、“明天”和“下周”之类的术语,那么当我键入以下内容时: “TODO记得明天向Joe询问XYZ项目的截止日期。” 然后点击回车键,将计算标题,并为该项目生成标记:Joe:XYZ:tomory: 有没有人看到过类似的情况,或者对我自

当标签已经存在于标题中时,我讨厌分配标签。我想找出一种让组织模式评估标题的方法(最好是在我点击“回车”键之后),如果它包含与我的组织标签列表中的标签匹配的任何单词,请为标题创建这些标签

例如:

如果我的组织标签列表中已经有各种个人姓名和项目名称,甚至可能还有诸如“今天”、“明天”和“下周”之类的术语,那么当我键入以下内容时:

“TODO记得明天向Joe询问XYZ项目的截止日期。” 然后点击回车键,将计算标题,并为该项目生成标记:Joe:XYZ:tomory:


有没有人看到过类似的情况,或者对我自己该怎么做有什么建议?

此函数获取条目的标题点为1,将其拆分为单词,并将在
org tag alist
org tag persistent alist
中找到的任何单词添加为标记

(defun org-auto-tag ()
  (interactive)
  (let ((alltags (append org-tag-persistent-alist org-tag-alist))
        (headline-words (split-string (org-get-heading t t)))
        )
    (mapcar (lambda (word) (if (assoc word alltags)
                             (org-toggle-tag word 'on)))
            headline-words))
    )

在完成hook之前,向org capture添加这样的函数可能会很有用,以便自动标记新捕获的条目。

我只知道内置选项,这些选项基于当前缓冲区中的标记或全局标记——基于这些标记有补全,和已指定快捷方式的标记的速度命令:没有内置函数专门根据当前标题建议标记。你所寻求的当然是可能的,但是有人需要编写一个定制的解决方案。我对emacs和org模式比较陌生,但花了相当多的时间在web上搜索解决方案,所以我并不真的期望解决方案是“内置的”。我希望有人看到或写了一些代码来做这件事。看起来埃里克做到了。谢谢埃里克!我会在第二天或第二天尝试一下,看看它是如何工作的。我可以确认这是有效的,但前提是单词和标记的大写是相同的。我所有的标签都是大写的,所以在
org-get-heading
周围添加函数
upcase
是必要的。所以
org-capture-before-finalize-hook
是用来代替
org-capture-before-finalize-hook
的吗?我发现命名有点混乱。我听起来像是在捕获完成之后执行标记操作。“之前”和“之后”钩子之间的唯一区别是捕获缓冲区在运行时是否仍然是当前的。像标记这样的事情可以在任何一种情况下完成。