clase-04.org 9.5 KB

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

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!