Currently press [TAB] key in `org-set-tags-command` will provide current buffer tags as completion candidates. This is very less.
I suggest providing all tags in candidates.
Here is a modification.
#+begin_src diff
modified lisp/org.el
@@ -12254,12 +12254,7 @@ (defun org-fast-tag-selection (current inherited table &optional todo-table)
(when exit-after-next (setq exit-after-next 'now)))
((= c ?\t)
(condition-case nil
- (setq tg (completing-read
- "Tag: "
- (or buffer-tags
- (with-current-buffer buf
- (setq buffer-tags
- (org-get-buffer-tags))))))
+ (setq tg (completing-read "Tag: " (org-global-tags-completion-table)))
(quit (setq tg "")))
(when (string-match "\\S-" tg)
(cl-pushnew (list tg) buffer-tags :test #'equal)
#+end_src
The Org Mode has `org-tag-alist` for user to setting default fast-selection tags group. I don't know whether function `(org-global-tags-completion-table)` already merged with `org-tag-alist`. It seems only get tags from all Agenda files after I checked out its source code.
[stardiviner] <Hack this world!> GPG key ID: 47C32433
IRC(freeenode): stardiviner Twitter: @numbchild
Key fingerprint = 9BAA 92BC CDDD B9EF 3B36 CB99 B8C4 B8E5 47C3 2433
Blog:
http://stardiviner.github.io/