Arquivar a árvore de tópicos no novo arquivo de modo de organização?

12

Estou apenas começando no modo de organização e imagino um fluxo de trabalho no qual eu capture novas tarefas e anotações em um arquivo "caixa de entrada" do modo de organização. Para tarefas que se transformam em projetos, eu imagino que elas sejam reescritas em um novo arquivo de modo de organização, que é então adicionado à minha agenda.

O manual do modo organizacional descreve como refilar uma árvore principalmente do jeito que eu estou procurando, exceto que só parece permitir refilar a seção dentro do mesmo arquivo. O que eu gostaria de fazer é pegar essa árvore e refilizá-la em um novo arquivo (e então, de preferência, adicionar o arquivo à lista da agenda).

Eu posso copiar e colar em um novo buffer, e então adicionar o novo buffer à agenda, mas parece que esse é o tipo de coisa que os deuses do modo org teriam um atalho.

    
por Peter 01.01.2012 / 20:53

2 respostas

1

Aqui está uma função elisp rápida e imunda que pode ser modificada como você desejar.

(defun subtree-to-new-file ()
  (interactive)
  "sloppily assists in moving an org subtree to a new file"
  (org-copy-subtree nil t)
;;; This long setq statement gets the title of the first heading, to use as a default filename for the new .org file.
(setq first-heading
  (with-temp-buffer
    (yank)
    (beginning-of-buffer)
    (search-forward " " nil nil 1)
    (setq title-start (point))
    (end-of-visual-line)
    (setq title-end (point))
    (setq first-heading (buffer-substring title-start title-end))
  ))
(setq def-filename (concat first-heading ".org"))
(let ((insert-default-directory t))
  (find-file-other-window  
    (read-file-name "Move subtree to file:" def-filename)
  ))
(org-paste-subtree)
;;; this final command adds the new .org file to the agenda
(org-agenda-file-to-front)
)

Você pode dar uma rápida tentativa a este código colando no seu *scratch* buffer e pressionando Ctrl + j . Em seguida, vá para uma subárvore em um arquivo de modo de organização e pressione Alt + x para M-x subtree-to-new-file .

Se você quer que ele esteja no lugar toda vez que você usa o emacs e é completamente não familiarizado com o elisp, o mais fácil é colar esse código em algum lugar no arquivo de configuração .emacs e salvá-lo. Você também pode adicionar uma linha antes ou depois da função para dar uma atadura de teclado. A maneira mais fácil de fazer isso (mas talvez não seja a melhor) seria algo como: (global-set-key "\C-xw" 'subtree-to-new-file) .

    
por 14.10.2013 / 19:34
5

Além disso, adicione outros buffers de modo organizacional à lista de refiles. Você precisará adicionar uma linha como a que segue ao arquivo .emacs. Eu tirei isso da configuração de Brent Hansen (veja aqui )

; Targets include this file and any file contributing to the agenda - up to 9 levels deep
(setq org-refile-targets (quote ((nil :maxlevel . 9)
                                 (org-agenda-files :maxlevel . 9))))

Apenas (org-agenda-files :maxlevel .9) é realmente necessário, a outra parte define um número máximo de níveis para os quais se refilar.

    
por 03.01.2012 / 03:23