Как да копирате групово в дневния ред на организацията

След търсене в дневния ред искам групово да копирам маркираните записи.

Диспетчерът за групови действия позволява само групово префайлване. (И не искам да променям променливата org-refile-keep.)

Как трябва да изглежда персонализирана функция за това групово действие?

Ръководството на организацията дава пример за персонализирана функция в http://orgmode.org/manual/Agenda-commands.html#index-B-1429, но простото заместване на org-set-property "CATEGORY" "web" с org-copy не върши работа, тъй като след това функцията ще поиска дестинацията за всеки запис, върху който се изпълнява.


person baruch    schedule 21.12.2016    source източник
comment
Самото гласуване против без полезен коментар не е много конструктивно.   -  person baruch    schedule 21.12.2016


Отговори (1)


Този отговор предполага, че оригиналният плакат иска да копира цялото поддърво от главния файл със задачи, а не откъса (редактирана версия) в буфера *Org Agenda*.

Маркирайте вашите записи, натиснете буквата B, след това буквата f, след това въведете org-agenda-bulk-copy-subtree, след това натиснете RET. Оригиналният автор може да пожелае да промени частта за събиране на данни, за да премести записите в списък и т.н.

[ПРЕДУПРЕЖДЕНИЕ: При моето тестване изглежда, че org-agenda-bulk-action унищожава/премества маркерите (невидими с невъоръжено око), така че ще е необходимо да се изгради отново буферът *Org Agenda*, ако трябва да се извърши допълнителна работа с маркерите водещи обратно към главния файл със задачи. Като алтернатива, може би бихме могли да клонираме/дупликираме буфера *Org Agenda* и да работим с временен буфер, така че оригиналът да не се променя?]

(defun org-agenda-bulk-copy-subtree ()
"Doc-string"
(interactive)
  (or (eq major-mode 'org-agenda-mode) (error "Not in agenda"))
  (let* ((marker (or (org-get-at-bol 'org-marker) (org-agenda-error)))
         (buffer (marker-buffer marker))
         (pos (marker-position marker))
         (output-buf (get-buffer-create "*RESULTS*")))
   (with-current-buffer buffer
     (goto-char pos)
     (org-back-to-heading t)
     (org-copy-subtree))
   (with-current-buffer output-buf
     (insert org-subtree-clip "\n"))
   (unless (get-buffer-window output-buf)
    (display-buffer output-buf t))))
person lawlist    schedule 22.12.2016
comment
Благодаря ви, юрист, точно това търсех! - person baruch; 22.12.2016