Org en sí proporciona una facilidad para filtrar / buscar información almacenada en .org
archivos de varias maneras. Se llama la "Agenda" . El org-mode
manual proporciona información extensa sobre cómo usarlo (consulte el enlace anterior o hágalo C-h i m Org Mode
RETdesde Emacs y vaya al capítulo "Vistas de agenda"), por lo que no tiene sentido repetir toda esta información aquí. El texto introductorio del manual resume lo que puede hacer con él (énfasis mío):
Org puede seleccionar elementos en función de diversos criterios y mostrarlos en un búfer separado. Se proporcionan siete tipos de vistas diferentes:
- una agenda que es como un calendario y muestra información para fechas específicas,
- una lista TODO que cubre todos los elementos de acción inacabados,
- una vista de coincidencia, mostrando titulares basados en las etiquetas, propiedades y TODO estado asociado con ellos,
- una vista de línea de tiempo que muestra todos los eventos en un solo archivo Org, en vista ordenada por tiempo,
- una vista de búsqueda de texto que muestra todas las entradas de varios archivos que contienen palabras clave específicas ,
- una vista de proyectos atascados que muestra proyectos que actualmente no se mueven, y
- vistas personalizadas que son búsquedas especiales y combinaciones de diferentes vistas.
Lo único que debe hacer para comenzar a usar la agenda para buscar sus notas es agregar los archivos que desea buscar org-agenda-files
:
La información que se mostrará normalmente se recopila de todos los archivos de agenda, los archivos enumerados en la variable org-agenda-files
. Si un directorio es parte de esta lista, todos los archivos con la extensión .org
en este directorio serán parte de la lista.
Entonces, en su caso, querrá agregar algo como esto a su archivo init:
(setq org-agenda-files '("/path/to/Notes/Linux" "/path/to/Notes/Programming"))
Para muchos ejemplos y consejos prácticos, también le recomiendo que consulte el artículo sobre Búsqueda avanzada en Worg .
[ACTUALIZACIÓN] Limitar la búsqueda a conjuntos de archivos específicos
Como se mencionó en los comentarios, OP quiere poder restringir las búsquedas a conjuntos específicos de archivos. En términos técnicos, esto significa establecer org-agenda-files
valores diferentes según el contexto. Esto se puede lograr utilizando variables de directorio local :
La forma habitual de definir variables locales de directorio es colocar un archivo nombrado .dir-locals.el
en un directorio. Siempre que Emacs visite cualquier archivo en ese directorio o cualquiera de sus subdirectorios, aplicará las variables locales de directorio especificadas en .dir-locals.el
, [...].
Por ejemplo, digamos que
mientras visita archivos almacenados Notes/Linux
, desea utilizar la agenda para buscar solo .org
archivos almacenados en Notes/Linux
.
mientras visita archivos almacenados Notes/Programming
, desea usar la agenda para buscar solo .org
archivos almacenados en Notes/Programming
.
Esto es lo que debe hacer para habilitar este comportamiento:
Agregue un .dir-locals.el
archivo con el siguiente contenido a ambos Notes/Linux
y Notes/Programming
:
((nil . ((org-agenda-files . (".")))))
Esto establece la lista de org-agenda-files
incluir todos los archivos en el directorio actual.
Agregue el siguiente código a su archivo init:
(add-hook 'org-agenda-mode-hook #'hack-dir-local-variables-non-file-buffer)
Este paso es necesario para garantizar que *Org Agenda*
(un búfer que no sea de archivo ) respete su configuración local de directorio org-agenda-files
.
La próxima vez que visite un archivo almacenado en Notes/Linux
o Notes/Programming
, Emacs le preguntará si desea aplicar la configuración almacenada en .dir-locals.el
. Presione !para decirle a Emacs que aplique la configuración y márquela como segura para futuras sesiones (no se le volverán a solicitar los archivos en el mismo directorio).
M-x org-search-view
Aquí está el enlace a la documentación: orgmode.org/manual/Search-view.html