2012-05-24 13 views
13

Por lo tanto, uso org-mode ampliamente para mis requisitos diarios de TODO. Me pregunto si también puedo usarlo eficazmente para guardar notas. Lo que básicamente quiero es almacenar notas con etiquetas, y luego quiero buscar estas notas por las etiquetas. P.ej. Si tengo algo como estoOrganizando notas con etiquetas en org-mode

* Heading 1 
** Note 1 :tag1:tag2: 
Note 1 details 
** Note 2 :tag3: 
Note 2 details 
* Heading 2 
** Note 3 
** Note 4 :tag1: 
Note 4 details 

y luego busco la etiqueta 1, que debería tener algo como-

* Heading 1 
** Note 1 :tag1:tag2: 
Note 1 details 
* Heading 2 
** Note 4 :tag1: 
Note 4 details 

yo preferiría ser capaz de hacer esto sin añadir los archivos a mi programa. (Puede que tenga varias de estas notas, y solo desearía buscar el archivo actual a la vez.)

¿Existe alguna manera fácil (o no tan fácil) de lograr este modo orgánico?

Respuesta

8

La siguiente función debe proporcionar el resultado que desee.

(defun zin/org-tag-match-context (&optional todo-only match) 
    "Identical search to `org-match-sparse-tree', but shows the content of the matches." 
    (interactive "P") 
    (org-prepare-agenda-buffers (list (current-buffer))) 
    (org-overview) 
    (org-remove-occur-highlights) 
    (org-scan-tags '(progn (org-show-entry) 
         (org-show-context)) 
       (cdr (org-make-tags-matcher match)) todo-only)) 
+0

¡Impresionante! ¡Eso era exactamente lo que estaba buscando! – Shitikanth

+0

¡Quiero hacer esto! ¿Cómo hago esto? Copio y pego el segmento de código en mi archivo '.emacs'. Comience una nueva sesión de Emacs. Abra un archivo * .org. Etiquetar encabezados (con 'C-c C-q'). ¿Y entonces que? ¿Cómo recupero todos los elementos de la lista con una etiqueta determinada? – Chernoff

+0

Tenga en cuenta que 'org-prepare-agenda-buffers' ha cambiado de nombre a' org-agenda-prepare-buffers'. @Chernoff si todavía está buscando hacer esto, entonces puede c & p, reemplazar el antiguo nombre de función y llamarlo con 'M-x zin/org-tag-match-context' –

8

Puede usar la búsqueda de etiquetas (C-c/m tag1 <ret>). Documentación aquí:

http://orgmode.org/manual/Tag-searches.html

Esto creará un árbol escasa mostrando sólo los títulos que contienen :tag1:, pero no revelará de forma automática el contenido de esta partida en su ejemplo.

+1

Gracias, eso ayuda mucho. ¿Tienes alguna idea de cómo podría tratar de expandir los títulos también? No me importa hacer algo de programación para hacer el trabajo. – Shitikanth