2011-06-07 15 views
8

Estoy trabajando en un proyecto C++. Supongamos que tienen la siguiente estructura de directorios:Abra un archivo emacs org-mode desde código fuente C++ y cree automáticamente un elemento

project/ 
project/src 

Y tener los siguientes archivos:

project/ChangeLog 
project/todo.org 
project/src/foo.cpp 

puedo trabajar en el código fuente en C++ en foo.cpp y luego añadir una línea en el fichero de cambios acaba con C-x 4 a como this page describe.

¿Cómo puedo lograr el mismo tipo de funcionalidad con org-mode en el archivo todo.org. Me gustaría mantener una lista de tareas relacionadas con el código fuente. Entonces, si en foo.cpp necesito finalizar una función void Foo::bla(), me gustaría agregar una entrada al todo.org que mencione esta función y el archivo en el que reside, al igual que C-x 4 a, hace por ChangeLog.

También me gustaría poder tener el enlace hacia atrás desde el archivo org al archivo foo.cpp en el que está la tarea pendiente.

+1

Puede encontrar una mejor audiencia en la [lista de correo org-mode] (http://orgmode.org/worg/org-mailing-list.html). – Nemo

+0

Gracias @Nemo, intentaré allí también, y seguiré buscando una respuesta (y la publicaré aquí una vez que la encuentre). –

Respuesta

10

Mientras que org-mode está documentado extensamente, encuentro que el manual en línea es muy denso. Afortunadamente, hay muchos buenos tutoriales en línea, pero a veces es difícil de encontrar la respuesta a un problema específico.

Sugiero leer la sección del manual del modo org en Capture. Tendrá que hacer una pequeña configuración y los detalles dependen de la versión de org-mode que tenga. (I recomiendo usar 7.x Si está atrapado en 6.x, ninguno de la configuración de captura que describen a continuación va a funcionar.)

He aquí un fragmento de mi sencilla configuración de emacs:

;;; capture mode 

(setq org-default-notes-file (concat org-directory "/capture.org")) 
(define-key global-map "\C-cc" 'org-capture) 

(setq org-capture-templates 
     '(("t" "Todo" entry (file+headline org-default-notes-file "Tasks") 
    "** TODO %?\n %i\n %a") 
     ("j" "Journal" entry (file+headline "~/journal/journal.org" "Today") 
    "** %?\nEntered on %U\n %i\n %a"))) 

Ahora toco Cc c cuando estoy en mi archivo fuente. El modo Org me permite seleccionar una plantilla ([t] odo o [j] ournal en el ejemplo anterior), y la rellena en incluyendo un enlace a la línea en la que estaba cuando inicié la captura.


actualiza con información sobre la nueva clasificación: Si tiene varios proyectos y desea mantener listas de tareas por separado, también debe aprender sobre Refiling. La configuración más simple es tener org-refile-targets contiene una lista de tus archivos de todo.org. Durante el proceso de captura, puede "volver a enviar" la tarea directamente a cualquiera de sus objetivos de reubicación.

(setq org-refile-targets 
    '((nil :maxlevel . 2) 
    ("~/project/todo.org" :level . 1))) 

Hay un buen tutorial de la captura y la nueva clasificación de this page about org-mode.

Cuestiones relacionadas