Re: [O] Kill all items with specific tag to kill-ring.

2013-04-29 Thread Oleksandr Gavenko
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.

2013-04-25 Thread Oleksandr Gavenko
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.

2013-04-25 Thread Oleksandr Gavenko
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.

2013-04-25 Thread Oleksandr Gavenko
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.

2013-04-24 Thread Oleksandr Gavenko
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]

2012-12-13 Thread Oleksandr Gavenko
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!