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

После поиска в повестке дня я хочу массово скопировать отмеченные записи.

Диспетчер массовых действий позволяет выполнять только массовые повторные файлы. (И я не хочу изменять переменную 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*, если с маркерами потребуется выполнить какую-либо дополнительную работу. возвращаясь к главному файлу todo. В качестве альтернативы, возможно, мы могли бы клонировать/дублировать буфер *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