Materiales
- Material del curso
- https://notabug.org/dlmayhem/emacs-hss.git
- Mi config personal
- https://notabug.org/dlmayhem/terror-emacs.git
Contenidos
- Repaso
- Capture
- Org agenda
- Org-roam
Repaso
- Referencias bibliográficas ::
- Creamos nuestra base de datos bibliográfica en formato =.bib=.
- Utilizamos citar (
C-c b
) para insertar referencias de manera rápida y sencilla.
- Presentaciones ::
- Exportamos presentaciones al formato Beamer utilizando el modo org.
- Realizamos presentaciones desde Emacs utilizando el paquete
org-tree-slide
y una configuración personalizada básica.
Capture
¿Qué es?
- Capture nos permite tomar notas con rapidez y sin perder el foco de nuestro trabajo.
- El poder de Capture se manifiesta en la creación de plantillas de notas.
- Invocamos el comando
org-capture
con el atajo C-c c
, según lo declaramos en nuestra configuración.
Plantillas
:custom
(org-capture-templates
'(("h" "Por hacer" entry
(file+headline "agenda.org" "Cosas por hacer")
"** TODO %?")
("r" "Reunión" entry
(file+headline "agenda.org" "Cosas por hacer")
"** REUNIÓN %^{¿De qué?|JGM|HSS|BANDA|DOJO|VECINOS}\n %^T")
("e" "Evento")
("ec" "Cumpleaños" entry
(file+headline "agenda.org" "Eventos")
"** CUMPLE %^{¿De quién?}\n SCHEDULED %^T")
("ef" "Funeral" entry
(file+headline "agenda.org" "Eventos")
"** FUNERAL %^{¿De quién?}\n SCHEDULED %^T")
("em" "Matrimonio" entry
(file+headline "agenda.org" "Eventos")
"** MATRI %^{¿De quién?}\n SCHEDULED %^T")))
Agenda
- Ahora que hemos creado algunas plantillas de Capture, podemos utilizar nuestra agenda.
- El directorio en el que se almacenará es
~/org
y nuestro archivo se llamará agenda.org
. Todo esto se puede cambiar en nuestro init.el
.
| ATAJO | ACCIÓN |
|---------+--------------------------------------|
| C-c a a | Muestra la agenda semanal |
| C-c a t | Muestra la lista de TODOs |
| C-c a n | Muestra los dos elementos anteriores |
Org-roam
- Org-roam es un sistema basado en texto plano para la gestión de conocimiento.
- Está inspirado en el método Zettelkasten.
Método Zettelkasten
- Atribuido al sociólogo alemán Niklas Luhmann.
- Hace énfasis en conectar las ideas de manera no jerárquica.
- Consiste en notas breves en tarjetas, interconectadas entre sí mediante un ID en la esquina de la misma nota.
Notas fugaces
- Notas rápidas con información que en un futuro puede ser utilizada o desechada.
- Normalmente hace uso de
org-capture
o usa la funcionalidad org-roam-dailies
de Org-roam.
Notas permanentes
- Se dividen en dos categorías.
- Notas literarias
- Anotaciones breves sobre una fuente en particular --libros, webs, papers-- a las que quieres tener acceso posteriormente.
- Notas conceptuales
- Deben ser auto explicativas y detalladas.
Método tradicional vs. Zettelkasten
- Método tradicional
- Consiste en almacenar las notas en directorios jerárquicos, divididos por área temática, autor, etc.
- Método Zettelkasten
- Consiste en almacenar todas las notas en el mismo directorio y relacionarlas entre ellas utilizando --en el caso de Org-roam-- hipervínculos, logrando algo así como una wiki de conocimiento personal.
Configuración básica
(use-package org-roam
:ensure t
:init
(setq org-roam-v2-ack t)
:custom
(org-roam-directory (file-truename "~/org/roam")) ;; utilizar directorio propio
:bind (("C-c n l" . org-roam-buffer-toggle)
("C-c n f" . org-roam-node-find)
("C-c n i" . org-roam-node-insert)
("C-c n g" . org-roam-ui-mode) ;; originalmente org-roam-graph
("C-c n c" . org-roam-capture)
("C-c n j" . org-roam-dailies-capture-today))
:config
(setq org-roam-node-display-template
(concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag)))
(org-roam-setup)
(require 'org-roam-protocol))
Atajos comunes
ATAJO |
ACCIÓN |
C-c n f |
Busca una nota y si no existe, la crea |
C-c n i |
Inserta una nota que ya existe o crea una nueva |
C-c n g |
Abre un gráfico con nuestras notas y sus relaciones |
Org-Roam-UI
- Org-Roam-UI es un frontend gráfico que nos permite visualizar nuestras notas y las relaciones entre ellas de una manera más comprensible.
- Una configuración básica:
(use-package org-roam-ui
:after org-roam
:config
(setq org-roam-ui-sync-theme t
org-roam-ui-follow t
org-roam-ui-update-on-save t
org-roam-ui-open-on-start t))
Templates
(org-roam-capture-templates
'(("a" "Autor" plain
(file "~/.emacs.d/templates/roam/author.org")
:target (file+head "%<%Y%m%d%H%M%S>-${slug}.org"
"#+title: ${title}\n")
:unnarrowed t)))
Alternativas
Recursos
Lectura recomendada
- Capture ::
- The Org Manual, Using capture.
- The Org Manual, Capture templates.
- The Org Manual, Template elements.
- The Org Manual, Template expansion.
- Org Agenda ::
- The Org Manual, Agenda Views.
- The Org Manual, Weekly/daily agenda.
- The Org Manual, Commands in the Agenda Buffer.
- The Org Manual, Timestamps.
- The Org Manual, Creating Timestamps.
- Método Zettelkasten ::
- Org-roam User Manual, A Brief Introduction to the Zettelkasten Method.
- Org-roam ::
- Jethro Kuan, Introducing Org Roam.
- Org-roam User Manual, The Templating System.
En YouTube
No puedo dejar de mencionar...
ATAJO |
ACCIÓN |
COMANDO |
C-h t |
El tutorial oficial de Emacs |
help-with-tutorial |
C-h f |
Muestra la documentación de alguna función y nos lleva a su código |
describe-function |
C-h v |
Muestra la documentación de alguna variable y nos lleva a su código |
describe-variable |
C-h ? |
Muestra más opciones de ayuda |
help-for-help |
Paquetes utilizados
Conclusiones
- Emacs es un editor de textos libre, avanzado, auto documentado, extensible y personalizable.
- Emacs es mucho más que eso. Es un entorno Lisp capaz de ejecutar cualquier tarea que se nos ocurra.
- La comunidad de Emacs nos provee de pequeños programas que corren en su interior y que nos proporcionan casi un sistema operativo.
TODO Pendientes
- [ ] Compilación de Emacs
- [ ] Planillas de cálculo en Org
- [ ] Introducción a Emacs Lisp
Cierre
- Lo que hemos visto son sólo algunas configuraciones básicas recomendadas por mí, que pueden ser tomadas como punto de partida para crear una configuración propia.
- Gracias a todos por su asistencia y su interés.
- Gracias a la Escuela Hacktivista y al Hackerspace Santiago por el espacio y la infraestructura.
Happy hacking!