Breve introducción a Org Mode
Table of Contents
Son vacaciones, y es momento de leer y avanzar con los pendientes que comencé a mediados del semestre (para distraerme de las tareas de las materias). Conocer más de la función de agenda de Org Mode fue uno de estos, ya que anteriormente sólo lo había usado para crear textos básicos, por lo que decidí echarme un clavado en la guía compacta.
Esta entrada es una recopilación de notas que consideré útiles para comenzar después de leer el "inicio rápido" de Org, sólo hay que tener en cuenta que algunas de las combinaciones de teclas usadas pueden ser específicas de doomemacs. Dejo esta entrada en español porque hay relativamente poca información para comenzar con Org, aparte de esta agradable publicación.
Formato básico
Texto
Org nos permite dar formato a nuestros archivos para que se visualice de una manera más sencilla, o para que cuando se exporte a otro formato, este sea más rico y expresivo.
- /itálicas/ *negritas* - ~código~ - _subrayado_ +tachado+ - =verbatim= (???)
Se convierte en la siguiente lista:
- itálicas negritas
código
- subrayado
tachado verbatim
(???)
Algunos entornos especiales para párrafos son VERSE
, QUOTE
y CENTER
. Se
crear antecediendo #+BEGIN_
y #+END_
al entorno delimitado. Similarmente
existen EXAMPLE
y SRC
que son adecuados para código fuente y similares.
#+BEGIN_QUOTE Niños, el único consejo que les puedo dar es que la vida es una miseria, váyanse a su casa, y acuéstense en sus camas hasta esperar el día de su muerte. -- Juan Carlos Bodoque #+END_QUOTE
Se ve como:
Niños, el único consejo que les puedo dar es que la vida es una miseria, váyanse a su casa, y acuéstense en sus camas hasta esperar el día de su muerte. – Juan Carlos Bodoque
Y finalmente, podemos crear notas al pie1 dentro de nuestros documentos.
Y finalmente, podemos crear notas al pie[fn:1] dentro de nuestros documentos. [fn:1] Una nota al pie (fn) es: [[https://es.wikipedia.org/wiki/Notas_al_pie]]
Código fuente
Es una función de Org que nos permite escribir, evaluar y visualizar resultados de segmentos de código, pero para mantener compacta esta guía, recomiendo leer el manual. Quizá en un futuro actualice los contenidos de esta entrada.
Este es un pequeño ejemplo de un bloque de código:
#+NAME: hola mundo #+BEGIN_SRC c :exports code #include <stdio.h> void main() { printf("¡Hola Mundo!\n"); } #+END_SRC
Imágenes
Las imágenes son enlaces a un archivo local o remoto (pueden tener descripción):
#+CAPTION: ¡Oh! Que buena frase, anótala Mario Hugo [[./bodoque.jpg]]
Tareas
Una característica clave de Org es la capacidad de poder colocar tareas en
cualquier archivo .org
que se encuentra en la variable org-agenda-files
.
Estas tareas tienen la siguiente estructura (sin el carácter \
):
\* ESTADO PRIORIDAD NOMBRE_DE_TAREA AVANCE ETIQUETAS FECHAS CRONOMETRO
Tomemos como ejemplo la siguiente tarea, creada con M-S-RET
o con la función
org-insert-todo-heading
, que para mayor legibilidad se divide en dos lineas:
**** TODO [#B] Hacer mandado [%] :personal:mandados: SCHEDULED: <2024-07-31 Wed>
ESTADO (C-c C-t
)
Se refiere al estado de la tarea a realizar, por ejemplo:
TODO
: Por realizarDONE
: FinalizadaSTRT
: IniciadaPROJ
: La uso para denotar un proyecto que contiene múltiples tareas
Se puede insertar manualmente, con combinaciones como C-c C-t
, Spc m t
o con
la función org-todo
, incluso es posible definir palabras clave de forma
personalizada.
PRIORIDAD (C-c ,
)
Una priority-cookie se usa para categorizar las tareas de acuerdo a su
prioridad, por defecto se usan letras A
, B
y C
; siendo [#A]
la de mayor
prioridad y #[C]
la de menos.
AVANCE
Nos permite saber cuántas [/]
o el porcentaje [%]
de subtareas finalizadas
dentro de una tarea. Esto se puede colocar en cualquier parte del
encabezado de la tarea.
ETIQUETAS
Son palabras clave que clasifican tareas, se agregan en cualquier parte del
encabezado, por ejemplo, :escuela:
, pueden agregarse múltiples a una tarea
como :trabajo:diseño:
.
FECHAS
Las fechas (timestamps) nos permiten llevar un registro de las tareas. Se colocan después de una tarea, es decir, en la siguiente línea. Existen estos tipos de fechas:
- Inactivas:
[2024-07-24 Wed]
Una fecha que no aparecerá en la agenda. - Agenda (
C-c C-s
):SCHEDULED: <2024-07-26 Fri>
Indica el tiempo a trabajar en una tarea. - Plazo (
C-c C-d
):DEADLINE: <2024-07-29 Mon>
La fecha en la que debemos cumplir con una tarea.
Es posible repetir una tarea cada cierto número de horas (h), días (d), semanas (w), meses (m) o años. Por ejemplo, esta tarea tiene un rango de días para completarse, y un plazo que se repite cada mes.
**** TODO [#B] Pagar mensualidad del Coppel :personal:compras: SCHEDULED: <2024-08-12 Mon +1m>--<2024-08-15 Thu +1m> DEADLINE: <2024-08-16 Fri 13:00 +1m>
CRONOMETRO (C-c C-x C-i
)
Para registrar el tiempo utilizado en una tarea podemos usar org-clock-in
,
el cual crea un timestamp del momento en el que se invocó el comando. Después
de trabajar en tu tarea se puede detener el cronómetro con org-clock-out
o
C-c C-x C-o
. Si olvidaste en qué tarea estabas trabajando después de iniciar
el cronómetro, invoca org-clock-goto
o usa C-c C-x C-j
.
Agenda (SPC o A
)
org-agenda
es una función que nos permite acceder al búffer de la agenda,
desde este podremos usar teclas como:
t
Para mostrar todas las tareas.m
Para mostrar todas las tareas con una etiqueta específica.s
Para buscar tareas que contienen una cadena, o utilizar operadores lógicos+ -
Es posible crear vistas predefinidas de la agenda, como indica la guía de Org
Exportar
En caso de que texto plano no sea suficiente, podemos exportar nuestro archivo a diferentes formatos, entre estos:
- LaTeX
C-c C-e l o
: Es posible exportar y visualizar el contenido de nuestro archivo.org
como si lo hubiésemos escrito TeX, aunque primero será necesario instalar paquetes comotexlive-{core,bin,science,latexextra,plaingeneric}
. De igual forma podemos insertar código TeX dentro de un archivo Org, como ecuaciones o cualquier otro entorno. - Calendario
C-c C-e c f
oC-c C-e c c
: crea un archivo.ics
por si queremos llevar nuestras tareas a otros dispositivos.
Conclusiones
Es muy poco tiempo para decir que ya domino el uso de Emacs y Org, aún sigo buscando y leyendo documentación cuando quiero hacer cosas menos frecuentes, por lo que acostumbrarse al uso de ambos es un poco complicado (si no hay suficiente constancia), sobre todo al intentar centralizar todo el flujo de trabajo dentro de estas dos herramientas.
A pesar de esto encuentro muy útil la agenda (que me permite tener un vista de todas las tareas que no he terminado, jeje), la función de exportar a LaTeX usando sintaxis de Org (honestamente escribir en TeX no es muy agradable después de conocer esta función) y la creación de presentaciones con reveal.js.
Ya sé que esto apenas es la superficie del mamotreto de funciones que existen en Org, y no se diga nada de Emacs porque nunca terminaríamos. En fin, especialistas de Emacs (Juan, jeje), no me discriminen por usar doom, algún día me animaré a crear mi propio archivo de configuración (quizá).
Una nota al pie (fn) es: https://es.wikipedia.org/wiki/Notas_al_pie