Org-mode 下,如何为 Headline 添加多个标签

现在用 Org-mode 为每一条 Headline 添加标签时,添加第一个的时候,是可以选择的。

但添加到第二个的时候,就要手动输入了。

有时候我想为 Headline 添加多个标签,有没有比较方便的方式方法?

doom emacs 是 spc m q 调用的函数为 counsel-org-tag

1 个赞

比较hack,仅供参考,输入一个标点后,可以补全第二个tag,我一般是输入拼音补全 tag,很好使

(setq org-use-fast-tag-selection t)
(defun eh-org-fast-tag-selection (&rest args)
  (let* ((current-tags (cl-copy-list (car args)))
         (n (length current-tags))
         (max 5)
         (prompt (if (> n 0)
                     (format "Tag (%s%s): "
                             (mapconcat #'identity
                                        (cl-subseq current-tags 0 (min n max))
                                        ", ")
                             (if (> n max)
                                 " ..."
                               ""))
                   "Tag: "))
         (crm-separator"[ 	]*[:,][ 	]*")
         (tgs (completing-read-multiple
               prompt (mapcar
                       (lambda (x)
                         (if (member (car x) current-tags)
                             (cons (propertize (car x) 'face '(:box t)) (cdr x))
                           x))
                       (org-get-buffer-tags)))))
    (dolist (tg (delete-dups (remove "" tgs)))
      (when (string-match "\\S-" tg)
        (if (member tg current-tags)
	    (setq current-tags (delete tg current-tags))
	  (push tg current-tags))))
    (org-make-tag-string current-tags)))
(advice-add 'org-fast-tag-selection :override #'eh-org-fast-tag-selection)

1 个赞

可以一次添加多个标签呀

simplescreenrecorder-2021-06-25_14

我的问题可能比较奇怪,就是我想第二次添加标签时,Org-mode 就不会弹出标签列表给我选择。

我反而要手动输入才行,比较麻烦。

太帅了,看着特别的爽!!

谢谢,这也是一个不错的方法,我看一下如何配置

我这还是没有问题呀(事先已经有 PROJ 这个 tag 了)

哦,我没有一开始就配置标签分组。这不太符合我的习惯。因为我还没有比较稳定的标签组合。

哦哦,我理解错你意思了,抱歉

1 个赞