OrgMode: Buscar solo en las Cabeceras

Tiempo estimado de lectura: 4 minutos. 491 palabras. emacs

Tomar muchas notas, es muy sencillo, lo complicado es después encontrarlas. Cuando decides el crear un único archivo orgmode para tomar tus notas y este crece de forma desmesurada, empiezas a tener problemas cuando quieres localizar notas que sabes que has tomado, pero mediante una búsqueda sencilla por palabras, aparecen cientos de resultados.

Lo ideal sería poder buscar palabras solo en la cabeceras y no a lo largo del orgmode. En este Post de https://mentat.za.net, explica como hacer búsqueda solo en las cabecera de primer nivel. Yo, tal como tengo estructuradas mis notas, necesitaba que buscara en todas las cabeceras. Así que he hecho una pequeña modificación al código y aquí os explico el resultado.

Búsqueda en cabeceras de mi orgmode

Pensé en replicar tantas veces como fuera necesario, la línea '(setq unread-command-events (listify-key-sequence "* "))', e ir añadiendo Cabeceras, pero solo me ha bastado una, como aparece en esta cajetilla de código, para que entienda emacs que debe buscar en todas las Cabeceras. No me parece que sea una forma correcta, pero… Funciona!!!!

Añade en init.es o .emacs, las siguientes líneas:

(defun stefan/isearch-heading () (interactive) (setq unread-command-events (listify-key-sequence "^* ")) (setq unread-command-events (listify-key-sequence "^** ")) (isearch-mode t t nil t)) (defun org-mode-keys () (interactive) (local-set-key (kbd "C-c h") 'stefan/isearch-heading) ) (add-hook 'org-mode-hook 'org-mode-keys)

Hacer Búsquedas

Para buscar una palabra que estará en cualquiera de las cabeceras, pulsaremos las teclas C-c h. Recuerda que podrás personalizar el atajo que desees cambiando este en el código.

Una vez hecha la primera búsqueda, si tienes mas cabeceras con la misma palabra que deseas buscar, debes de pulsar C-s todo el rato, ara ir avanzando a lo largo de las coincidencias

Tengo que decir que el único punto negativo, es que encuentra la palabra, siempre que sea la primera que aparece en el título de la cabecera. Si está a lo largo del título, no la encuentra. De ahí, que en el código aparece "*". Es una cosa que tenemos que tener en cuenta cuando creemos nuestras notas.

Buscar en Cabeceras de Primer Nivel

Código para solo Buscar en cabeceras de primer nivel:

(defun stefan/isearch-heading () (interactive) (setq unread-command-events (listify-key-sequence "^* ")) (isearch-mode t t nil t)) (defun org-mode-keys () (interactive) (local-set-key (kbd "C-c h") 'stefan/isearch-heading) ) (add-hook 'org-mode-hook 'org-mode-keys)

Publicado por Angel el viernes 01 febrero del 2019

También te puede interesar:

Powered by org-bash-blog

Writing in orgmode whith emacs



Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.