2012-01-25 11 views
5

Usando plantillas de captura como la de abajo, puedo agregar entradas a diferentes titulares en un archivo. ¿Cómo puedo ingresar manualmente un título durante la captura, en lugar de configurar cada título en una clave del archivo .emacs como lo estoy haciendo ahora?Ingresar de forma interactiva el título debajo del cual colocar una entrada usando la captura

(setq org-capture-templates 
     '(
     ("l" "Log" entry 
    (file+headline "c:/Org/log.org" "Log") 
    "\n\n** %?\n<%<%Y-%m-%d %a %T>>" 
    :empty-lines 1)) 

Respuesta

3

No creo que pueda pedírsele el titular de la captura. Sin embargo, puede volver a ingresar desde la ventana de captura, lo que debería dar como resultado el comportamiento deseado.

Definiría un título/archivo de objetivo general para que, si lo olvida, siempre los recopile en la misma ubicación y luego solo tenga que volver a presentarlos una vez creados. Si también configura una categoría/etiqueta en este título, podrá ver fácilmente la entrada de captura mal archivada y volver a llenarla como desee. (Ejemplo a continuación)

Luego, en lugar de terminar con C-c C-c, elija volver a enviar con C-c C-w y se le pedirá que seleccione el título al que desea enviar la nueva entrada.


La plantilla de captura que utilizo para este cajón de sastre es la siguiente (adaptado de Bernt Hansen's capture settings)

 ("i" 
     "Incidents" 
     entry 
     (file+headline "~/Work/work.org" "Refile") 
     "* TODO %^{Ticket} - %^{User}\nSCHEDULED: %^t DEADLINE: %^t\n:PROPERTIES: 
     \n:DATE: %^U\n:END:\n%^{MANAGER}p%^{HOSTNAME}p%^{LOCATION}p%^{TEL}p\n%c" 
     :empty-lines 1 :clock-in t :clock-resume t) 

(se agregan saltos de línea para evitar el desplazamiento al leer aquí)

el título se configurado de la siguiente manera

* Refile                :refile: 
:PROPERTIES: 
:CATEGORY: Unsorted 
:END: 

Con esto termino p con todas las tareas no volvió a presentar a aparecer como

Unsorted:  Deadline: TODO <Headline>       :refile:: 

Actualmente tiendo a usar etiquetas como referencia si estoy a la espera de los compañeros de trabajo/gerentes a tratar con el billete, o que me recuerdan a hablar con ellos sobre esto cuando los veo, la etiqueta al final se destaca claramente, al igual que Unsorted si intento recordar cuál es el problema (ya que simplemente tengo un número de caso y un nombre de usuario que muestran, detalles dentro de la entrada).

+0

¿Podrían presentar un ejemplo de código que implementa lo que dice el segundo párrafo. ¡Eso haría que tu respuesta sea aún mejor! –

2

Mientras captura una nota, después de finalizar la escritura, presione C-u C-c C-w para volver a colocarla debajo del título deseado.

también tiene que establecer esta variable

(setq org-refile-allow-creating-parent-nodes (quote confirm)) 

se puede establecer a t en lugar de confirmar. Pero me gusta confirmarlo porque a menudo no vuelvo a los nuevos objetivos

+0

No debería necesitar el prefijo 'C-u' para volver a los titulares de un archivo. Estoy entendiendo su pregunta como los titulares que ya existen, solo que en lugar de tener varias plantillas (una por título) solo usar una plantilla y volver a colocarla en el título apropiado en la captura. –

+0

Tiendo a estar de acuerdo. IIRC C-u le permite volver a cualquier archivo de la agenda. – kindahero

+0

C-u C-c C-w es un Goto, y no un Relevo –

4

Parece que, en las versiones más nuevas de org al menos, las funciones personalizadas se pueden usar en las plantillas de captura para hacer esto.

En lugar de:

entry 
(file+headline "~/Work/work.org" "Refile") 

Se puede utilizar:

entry 
(file+function "~/Work/work.org" function-finding-location) 

Donde 'de búsqueda de la función de localización' es una función personalizada que haya escrito, que fácilmente se podría llevar a un titular .

O bien, puede ir aún más lejos, y definir una función personalizada que se pedirá tanto el nombre del archivo y el nombre del titular (o cualquier otra cosa que se te ocurra):

entry 
(function function-finding-location) 

Realmente no sé suficiente para escribir estas funciones, pero este parece el lugar para comenzar. Sería bueno si alguien más pudiera ofrecer algún código. La documentación pertinente está aquí:

http://orgmode.org/manual/Template-elements.html

2

escribí una función que se utilizará con el archivo + función que se solicite una ubicación en la captura.

Utiliza la función de sugerencia interna de org-refile para que podamos obtener terminaciones de encabezados en el indicador (con maxlevels anulados a 9). Cuando el usuario ingresa un encabezado desconocido, lo crea al final del archivo.

(defun org-ask-location() 
    (let* ((org-refile-targets '((nil :maxlevel . 9))) 
     (hd (condition-case nil 
       (car (org-refile-get-location nil nil t t)) 
       (error (car org-refile-history))))) 
    (goto-char (point-min)) 
    (outline-next-heading) 
    (if (re-search-forward 
     (format org-complex-heading-regexp-format (regexp-quote hd)) 
     nil t) 
     (goto-char (point-at-bol)) 
     (goto-char (point-max)) 
     (or (bolp) (insert "\n")) 
     (insert "* " hd "\n"))) 
    (end-of-line)) 

En su caso, se utiliza de esta manera:

(setq org-capture-templates 
'(("l" "Log" entry 
    (file+function "c:/Org/log.org" org-ask-location) 
    "\n\n** %?\n<%<%Y-%m-%d %a %T>>" 
    :empty-lines 1)) 
Cuestiones relacionadas