Applied to Worg. Thanks -- Manish
On Tue, Jan 26, 2010 at 12:53 AM, David Maus wrote: > Hello, > > Attached patch adds a section to the org-hacks page of Worg with a > function that removes redundant tags, that is: tags that are inherited > by a parent headline or the #+FILETAGS headline and local to a > headline. > > This function is useful for me as I generally use tags to denote a > todo's context (priv for private, work for work related etc.) and in > addition split my agenda files by context, too (work.org, > private.org). If I file new todo headlines using `org-remember' they > go in a central file (bucket.org) and I tag them so they show up on > tags searches. After refiling the context denoting tags are > duplicated -- hence I wrote this little function to remove them: > > (defun dmj/org-remove-redundant-tags () > "Remove redundant tags of headlines in current buffer. > > A tag is considered redundant if it is local to a headline and > inherited by a parent headline." > (interactive) > (when (eq major-mode 'org-mode) > (save-excursion > (org-map-entries > '(lambda () > (let ((alltags (split-string (org-entry-get (point) "ALLTAGS") ":")) > local inherited tag) > (dolist (tag alltags) > (if (get-text-property 0 'inherited tag) > (push tag inherited) (push tag local))) > (dolist (tag local) > (if (member tag inherited) (org-toggle-tag tag 'off))))) > t nil)))) > > Regards > > -- David > > -- > OpenPGP... 0x99ADB83B5A4478E6 > Jabber.... dmj...@jabber.org > Email..... maus.da...@gmail.com > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode