Re: [O] Kill all items with specific tag to kill-ring.
On 2013-04-25, Bernt Hansen wrote: Oleksandr Gavenko gaven...@gmail.com writes: I want this feature in order to simplify precess of moving entries from job org-file to home org-file by marking entries with tag :HOME:... If all you want to do is move items why not use the agenda? Mark your entries with a tag, do an agenda search for that tag, mark all entries with m and move them using bulk refile with B r Great! I don't often use agenda so don't know about this feature. How can I select specific buffer/file (and only this buffer) for displaying/processing in agenda? -- Best regards!
Re: [O] Kill all items with specific tag to kill-ring.
Carsten Dominik carsten.dominik at gmail.com writes: On 25.4.2013, at 07:32, Oleksandr Gavenko gavenkoa at gmail.com wrote: I use tags only on top level items in org-file. And want move all items marked by specific tag to different org-file. I expect that this command kill items with selected tag to kill-ring in one step (so single undo command return original buffer content). Seems there are no such command build-in command... no, but you could easily make one using the function org-map-entries. I finish with very hackie code (based on knowledge of internal implementation of org-scan-tags): (defun my-org-kill-by-tag (tag) (interactive (list (read-input Enter tag: ))) (kill-new ) (org-scan-tags (lambda () (let ( (last-command 'kill-region) ) (org-cut-subtree))) '(member tag tags-list) nil) ) You can replace 'org-cut-subtree' by 'org-copy-subtree' if don't want remove org entries...
Re: [O] Kill all items with specific tag to kill-ring.
Carsten Dominik carsten.dominik at gmail.com writes: On 25.4.2013, at 10:21, Oleksandr Gavenko gavenkoa at gmail.com wrote: I finish with very hackie code (based on knowledge of internal implementation of org-scan-tags): (defun my-org-kill-by-tag (tag) (interactive (list (read-input Enter tag: ))) (kill-new ) (org-scan-tags (lambda () (let ( (last-command 'kill-region) ) (org-cut-subtree))) '(member tag tags-list) nil) ) You can replace 'org-cut-subtree' by 'org-copy-subtree' if don't want remove org entries... Yes, this work, nice trick with binding last-command to kill-region. 10 min of reading (info (elisp)Low-Level Kill Ring)... This morning I ask: http://thread.gmane.org/gmane.emacs.help/90339 Want to delete distinct regions but make capable undo by single command. This hack based on: (defun kill-region (beg end optional yank-handler) (if (eq last-command 'kill-region) (kill-append string ( end beg) yank-handler) (kill-new string nil yank-handler))) A less hackie version would probably add the found entries to a string or list and only put that string into the kill ring at the end. org-map-entries would allow processing of several files in one go, but it would be a very similar implementation. I look to code and found that 'org-map-entries' call 'org-scan-tags'. As 'org-map-entries' looks complicated to me I try to use more low-level function... 'org-map-entries' also allow rich search queries: (info (org)Matching tags and properties) `+work-boss' Select headlines tagged `:work:', but discard those also tagged `:boss:'. `work|laptop' Selects lines tagged `:work:' or `:laptop:'. `work|laptop+night' Like before, but require the `:laptop:' lines to be tagged also `:night:'. Next 20 min I search for 'org-get-buffer-tags'. This code completely satisfy my needs: (defun my-org-kill-by-tag (tag) (interactive (list (completing-read Enter tag: (org-get-buffer-tags (kill-new ) (org-scan-tags (lambda () (let ( (last-command 'kill-region) ) (org-cut-subtree))) '(member tag tags-list) nil) ) Is it possible to include correct implementation (seems that I can't able implement one) to org-mode? I want this feature in order to simplify precess of moving entries from job org-file to home org-file by marking entries with tag :HOME:...
Re: [O] Kill all items with specific tag to kill-ring.
Carsten Dominik carsten.dominik at gmail.com writes: On 25 apr. 2013, at 10:56, Oleksandr Gavenko gavenkoa at gmail.com wrote: (defun my-org-kill-by-tag (tag) (interactive (list (completing-read Enter tag: (org-get-buffer-tags (kill-new ) (org-scan-tags (lambda () (let ( (last-command 'kill-region) ) (org-cut-subtree))) '(member tag tags-list) nil) ) Is it possible to include correct implementation (seems that I can't able implement one) to org-mode? I thought your version did work? Does it not? Yes. It works. But implementation relay on internals of 'org-cut-subtree' and applied only to single file and without any checks (I try call on non-org buffer - it doesn't do anything - so seems it is safe). Also it doesn't follow any org-mode coding conventions... Also 'org-scan-tags' have 'todo-only' argument which may be interesting for possible users of my-org-kill-by-tag I want this feature in order to simplify precess of moving entries from job org-file to home org-file by marking entries with tag :HOME:...
[O] Kill all items with specific tag to kill-ring.
I use tags only on top level items in org-file. And want move all items marked by specific tag to different org-file. I expect that this command kill items with selected tag to kill-ring in one step (so single undo command return original buffer content). Seems there are no such command build-in command... -- Best regards!
[O] Bug: Tags duplicated in *Org tags* selection dialog. [7.8.11]
With emacs -Q and: (setq org-tag-persistent-alist '( (ADMIN . ?a) (BLOG . ?b) (DEVEL . ?d) (GET . ?g) (LIFE . ?l) (MAIL . ?m) (JOB . ?j) (QUESTION . ?q) (PROJECT . ?p) (READ . ?r) (SEE . ?s) )) if I call *Org tags* selection dialog (by C-c C-q, org-set-tags-command) I see repeated entries from org-tag-persistent-alist. Currently I switch to org-tag-alist variable which work fine for me (but semantically not same). Emacs : GNU Emacs 24.2.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.10) of 2012-09-09 on trouble, modified by Debian Package: Org-mode version 7.8.11 -- Best regards!