Apuntes: org-mode en Emacs
Apuntes no terminados sobre Emacs y org-mode
org-mode es un invento de Carsten Dominik. Mr. Carsten lo inventó como un método para implementar GTD, pero poco a poco lo fue refinando añdiendo Emacs Calc y org-babel. A partir de ahí no ha parado de mejorar.
Esquema básico con cabeceras
Lo primero que te encuentras en org-mode es un esquema basado en cabeceras:
- Cada cabecera empieza con uno (o varios) caracteres *
- Pulsando
Taben la linea de cabecera se colapsa o expande esa sección - Pulsando
S-Taben cualquier parte del documento se cambia el estado colapsado/expandido en todo el documento - Pulsando
Alt(que llamamosMetaen Emacs) y las flechas derecha e izquierda en una linea de cabecera cambiamos el nivel de la cabecera - Pulsado
M-UpoM-Downen una linea de cabecera la cambiamos de posición en el documento - La combinación
C-c C-wen una cabecera nos permite cambiarla de rama (interactivo)
Listas de Tareas
Cualquier cabecera puede marcarse como TODO o DONE (son las
opciones por defecto), basta con presionar S-right o S-left en la
linea de cabecera para ir cambiando de estado. Alternativamente puedes
usar C-c C-t para poner un estado interactivamente (más rápido)
Si necesitamos algo más sofisticado podemos añadir estados en la
cabecera de nuestro fichero .org
Los estados a la izquierda del pipe son TODO, y a la derecha son
DONE
|
|
Si cambias las lineas de configuración en la cabecera, puedes recargar
el local setup con C-c C-c (en la cabecera)
Agendar tareas
Para agendar (schedule) una tarea usamos C-c C-s, en la linea de
schedule podemos añadir una hora o un periódo:
|
|
En org-mode normalmente se considera que la fecha SCHEDULED es el momento en que se debe empezar con la tarea.
Si queremos definir la fecha en la que la tarea debe estar realizada usamos DEADLINE que se define de forma análoga a SCHEDULED con la combinación C-c C-d
En generál en org-mode las fechas entre ángulos son fechas activas y las fechas entre corchetes son informativas, una vista de tarea podría ser:
|
|
Donde tenemos una fecha de captura de la tarea (informativa) y las fechas de SCHEDULED y DEADLINE (activas).
Vista de agenda
Nuestro fichero o ficheros .org pueden tener distintas tareas con fechas asignadas pero no estarán ordenados cronológicamente.
Para una visión cronológica disponemos de las Agenda Views.
Para acceder a las vistas de agenda usamos: C-c a y después seleccionamos la vista deseada. Recuerda si usamos un prefijo C-u n justo antes de C-c a limitaremos a n dias las vistas de agenda.
Dentro de la vista agenda, podemos activar el Follow mode con S-f para que la vista del fichero se mueva a la tarea señalada en la
agenda. También podemos usar las teclas f y b para movernos adelante,atrás (p.ej. en la agenda semanal cambiaríamos a semana anterior
o siguiente)
Por defecto el margen de aviso para tareas con DEADLINE es de 14 dias, pero se puede configurar en la variable org-deadline-warning-days
Agenda Advance
-
C-c aAgenda -
Se puede limitar a n dias con prefijo:
C-u nP.ej. para ver las task para hoy pulsamosC-u 1 C-c a -
Si seleccionamos
aentramos en la agenda, con el prefijo podemos limitar a n dias -
Con
tvamos a la lista de tareas podemos filtrar más siguiendo instrucciones -
Con
Tvamos a la lista de tareas con una o varias palabras clave especiales (p.ej.TODO|NEXT) -
Con
mpodemos seleccionar un TAG y más criterios. P. ej.phone+TODO="NEXT". Con la mayúsculaMrestringimos a tareasTODO -
Con
spodemos buscar una palabra en todas las tareas (buscará en cabecera y contenido de la tarea). Si usámos la mayúsculaSrestringimos a las tareasTODOEjemplos
+mini +dockertodas las tareas que contengan las dos palabras:miniydocker{regexp}las regexp van entre llaves
Vistas de agenda “a medida”
|
|
En la primera linea tenemos el atajo (1), el título de la búsqueda
(2), el criterio de búsqueda, tags-todo (3) y la cadena que queremos
buscar "computer"
En la segunda linea (5) podemos poner restricciones y/o condiciones a nuestra búsqueda, en este caso restringimos los ficheros a buscar y en que orden mostramos los resultados.
En la sexta linea especificamos que esta busqueda se exportaria al
fichero ~/computer.html en el caso de que hiciésemos una exportación
de la agenda.
Tareas repetitivas
Podemos hacer las tareas repetitivas añadiendo la especificación de repetición a la fecha schedule:
+1wRepetir en una semana (w, d, m, y)++1wSiguiente repetición en una semana, pero asegurate que sea en el futuro. Esto nos garantiza que la repetición se programa bien en el caso de que completemos la tarea con retraso.+1wUna semana después de marcarla como realizada
Checklist
- [ ]como estaM-S-entergenera una nueva entrada en la checklistC-c C-ccambia el estado de la linea- Con [/] o [%] podemos ver el estado del avance de la lista de checklists
Tags
C-c C-qpara añadir Tags- Pueden ser predefinidas
#+TAGS: PHONE(p) COMPUTER(c) GARAGE(g) - Con
Tabpodemos teclear un tag no predefinido - En mi caso para borrar todos los tag puedo user
C-q C-j enter - Las etiquetas (Tags) se heredan, aunque no las veas las etiquetas se heredan en las ramas
Drawers (o cajones)
Podemos definir un drawer con una sintáxis (:drawer_name:) muy parecida a la de una etiqueta (tag). Pero los drawers no van en la primera linea (como las etiquetas) y se terminan con un :END:
Los drawers son también plegables, así que podemos usarlos como un nivel más de plegado dentro de la etiqueta. Pero los más utilizados son los predefinidos :PROPERTIES: y LOGBOOK
En el cajón de :PROPERTIES: se guardan las propiedades que vayamos añadiendo a nuestra entrada en el fichero .org
En el cajón de :LOGBOOK: se guardan las notas de progreso o cambios de estado de nuestra entrada.
Log. Notas asociadas al :LOGBOOK:
C-c C-zPara escribir una nota asociada a una entrada, la cerramos conC-c C-cPodemos configurar si las notas se guardan en un drawer o no con las opciones- En la cabecera:
#+STARTUP: logdrawer / nologdrawer - Añadiendo a una rama la Property:
LOG_INTO_DRAWER
Registrando los cambios de estado
Cuando especificamos los estados en la cabecera podemos especificar que hacer al entrar y salir del estado.
|
|
@ implica grabar un timestamp y una nota al entrar en el estado
! implica un timestamp al salir del estado
#+STARTUP: logdone Graba timestamp al pasar de un estado TODO a un estado CLOSE
También hay opciones para grabar los reschedules org-log-reschedule
Archivado
Las tareas se pueden archivar internamente (sin quitarlas de su fichero .org original) o moviéndolas a un fichero externo.
El archivado interno supone pegar una etiqueta :ARCHIVE: con la combinación C-c C-x a. Una tarea archivada ya no aparecerá en las vistas de la agenda.
Para el archivado externo podemos configurar el fichero de destino de varias maneras:
- Definiendo un fichero de archivo en la cabecera con, por ejemplo (valor por defecto),
#+ARCHIVE: %s_archive::, donde%ses el nombre de nuestro fichero.org - Definiendo un fichero de archivo en una rama con:
|
|
- Definiendo los objetivos de archivado a nivel global con la variable
org-refile-targetsque permite establecer una lista de ficheros objetivo. Esta sería una manera indirecta de archivar tareas. Ya que no es una operación de archivo propiamente dicha
Para las dos primeras opciones el atajo de teclado sería C-c$ para activar el archivado.
Para la última opción invocaríamos refile con el atajo C-c C-w
Fórmulas matemáticas
Si especificamos la opción
|
|
Se renderizarán las entidades LaTeX (probar a escribir por ejemplo: \alpha + \beta)
La opción C-c C-x C-l invoca a org-toggle-latex-preview
El paquete org-fragtog parece muy interesante para esto.
Links
Revisar
- org-math como tomar apuntes de matemáticas en org-mode
- Latex for the impatients: como teclear LaTeX rápido.
- org-clock-remainder: un módulo para configurar avisos en
org-mode - Use org-mode to create LaTeX documents
- Una serie de artículos con configuraciones de Emacs
- Ricing Emacs
- Fniessen /org-mode html themes/
- Olmon /org-mode html themes collection/
chuleta de comandos
Esquema básico
| Atajo | Entorno | Significado |
|---|---|---|
Tab |
Cabecera | Colapsa/Expande |
S-Tab |
Cualquiera | Colap/Exp. Global |
M-right/M-left |
Cabecera | Sección cambia de nivel |
M-Up/M-Down |
Cabecera | Sección cambia posición |
C-c C-w |
Cabecera | Sección cambia de rama |
Lista de tareas
| Atajo | Entorno | Significado |
|---|---|---|
S-Right/S-Left |
Cabecera | Ciclar estado ’todo' |
C-c C-t |
Cabecera | Cambiar estado ’todo' |
C-s |
Cabecera | Agendar tarea |
C-d |
Cabecera | Deadline |
C-c a |
Cualquiera | Vista de agenda (int.) |
S-f |
Vista Agenda | Act./Desactiva follow mode |
f/b |
Vista Agenda | Adelante atrás |
q |
Vista Agenda | Salir de agenda |
checklist
| Atajo | Entorno | Significado |
|---|---|---|
C-S-enter |
Añade una linea |
Misc
| Atajo | Entorno | Significado |
|---|---|---|
C-c C-c |
Varios | “Ejecutar”" esa linea o sección |
