Archivo de la etiqueta: org-mode

Lo que he aprendido: el ratón y org mode

Como ya os he dicho más veces uso Emacs de una manera un tanto curiosa, con su GUI y hasta con el ratón porque al final me muevo en un entorno gráfico y me encaja mejor así con el resto de herramientas (sí, uso cosas que no son Emacs). Parece ser que yo no soy la única, ya que hay modos de Emacs que añaden funcionalidades molonas al ratón y entre ellos mi favorito es org-mouse.el, que como su nombre indica se usa en mi amado modo Org.

Sirve para lo siguiente:

  • Nos muestra un menú contextual al hacer click derecho en diferentes elementos
  • Permite abrir y cerrar árboles con un click izquierdo
  • Marca casillas de las listas de tareas al hacer click izquierdo sobre ellas

Parece poca cosa pero hacen de Emacs un lugar más amigable para los novatillos, los desmemoriados o los vagos, tres categorías a las que pertenezco.

Para activarlo solo hace falta añadir una línea al archivo de configuración:

;; Cargar org-mouse
(require 'org-mouse)

Podéis ver este modo en acción en este screencast1:

Referencias

How to setup org-mouse to intuitively toggle checkboxes on org-mode? en StackExchange

5.6 Checkboxes en el manual de Org


Os dejo con una canción que he localizado por casualidad:

Anuncios

Lo que he aprendido: diagramas de Gantt en PlantUML

¡He encontrado una frikimanera de hacer diagramas de Gantt! Está todavía en fase de desarrollo pero incluso así ya es bastante más práctico que pintar cuadraditos en una hoja de cálculo. El cacharro este se llama PlantUMl y es parecido a Ditaa, también es un jar que se usa desde la terminal.

Los diagramas se definen en un archivo de texto en un lenguaje natural, un ejemplo:

@startgantt
Project starts the 1th of februrary 2018
[Tarea 1] as [T1] lasts 8 days
[Tarea 2] as [T2] starts at [T1]'s end and lasts 7 days
[Tareas 3] as [T3] starts at [T2]'s end and lasts 23 days
[Tarea 4] as [T4] starts at [T3]'s end and lasts 7 days
@endgantt

Se pueden usar nombres abreviados para hacer referencia a las tareas, cambiar el color, … Si guardamos la definición en un archivo gantt.txt, por ejemplo, podemos crear nuestro diagrama con una línea de este tipo:

java -jar plantuml.jar -teps -charset UTF-8 gantt.txt

Aquí he usado las opciones teps para que me exporte en eps y charset para decirle que use la codificación UTF8 y me pinte bien las tildes. Hay otras opciones para guardar el gráfico, las tenéis en el manual.

Yo concretamente, uso PlantUML en Org (como todo) escribiendo la definición del gráfico dentro de un bloque de código para que me incluya el dibujete dentro del documento exportado:

#+BEGIN_SRC plantuml :file gantt.eps :cmdline -charset UTF-8 -teps
@startgantt
Project starts the 1th of februrary 2018
[Tarea 1] as [T1] lasts 8 days
[Tarea 2] as [T2] starts at [T1]'s end and lasts 7 days
[Tareas 3] as [T3] starts at [T2]'s end and lasts 23 days
[Tarea 4] as [T4] starts at [T3]'s end and lasts 7 days
@endgantt
#+END_SRC

Como veis, las opciones que antes dábamos en la terminal van ahora después de :cmdline. Al ejecutar este trocito de código1, se generará esta imagen como resultado:

Aparte de diagramas de Gantt, con PlantUML pueden pintarse todo tipo de chirimbolos, tiene una versión online para que vayáis probando 😀

Referencias

Diagramas de Gantt en PlantUML

Guía de PlantUML


Sonando:


  1. ¡Recordad darle permiso a Emacs para ejecutar código de PlantUMl añadiendo este lenguaje a la lista

Lo que he aprendido: ecuaciones rápidas con CDLaTeX

Ando últimamente bastante liadilla y agradezco cualquier herramienta que me facilite la vida. Una que me hace muy feliz es el modo menor de Emacs CDLaTeX, que acabo de descubrir y se ha convertido en imprescindible en mi día a día. En concreto lo uso en combinación con el modo Org, que trae su propia variante org-cdlatex. Paso a hablaros sobre ello.

El modo CDLaTeX

Tal y como dice en su README, CDLaTeX es un modo menor para la inserción rápida de entornos y movidas matemáticas en LaTeX:

CDLaTeX is a minor mode for Emacs supporting fast insertion of environment templates and math stuff in LaTeX

Lo escribió el mismo señor que el modo Org, Carsten Dominik, y se puede encontrar tanto en MELPA como en Github. Requiere texmathp.el que dicen que es parte de Emacs a partir de la versión 21.3, pero yo tuve que instalar AucTeX (que también lo contiene) para hacerlo funcionar.

Ecuaciones rápidas

La idea de este modo es evitarnos el tedio de escribir desde cero las ecuaciones de LaTeX y los símbolos matemáticos. Es muy listo y sabe cuándo estamos dentro de un bloque matemático (entre \begin{equation} y \end{equation}) y cuándo no, y así activa y desactiva funcionalidades según el contexto. Por ejemplo, al escribir un guión bajo nos añade automáticamente las llaves para que escribamos dentro el subíndice.

La tecla principal de este modo es el TAB, que hace de todo:

  • Predice comandos: si lo pulsamos después de haber escrito una parte de un comando nos lo completa. Me encanta porque equ + TAB inserta directamente un entorno de ecuaciones, ¡así de fácil! Podemos ver todas abreviaturas con M-x cdlatex-command-help.

  • Reduce subíndices y superíndices simples: nos escribe automáticamente las llaves para los subíndices y superíndices pero podemos eliminarlas para los casos de una sola letra pulsando el TAB delante de la llave de cierre.

  • Mueve el cursor a la siguiente unidad de interés: podemos avanzar por las ecuaciones con el TAB alegremente.

No solo del TAB se vive, también tenemos otras funcionalidades chulas:

  • Entornos rápidos C-c { nos mete entornos como align dentro del bloque de ecuaciones.

  • El apóstrofe modifica el carácter anterior, añadiendo un punto encima u otras movidas locas matemáticas. Si lo pulsamos y esperamos un poco nos aparece un cuadro con todas las opciones disponibles.

  • El acento grave introduce comandos, por ejemplo `a escribe \alpha tanto dentro como fuera del entorno matemático, `b escribe \beta y así sucesivamente. Varios acentos cambian de nivel, tomando el caso de la letra l como ejemplo, precedida de un acento escribe \lambda, con dos acentos \ell, y con tres \log. Lo que es utilísimo para los que escribirmos mucha mate. ¡Un truco! Para escribir letras griegas mayúsculas, tras introducir una con el acento grave y la letra, podemos usar M-b para movernos al inicio de la palabra y M-c para que Emacs nos la ponga en mayúsculas. Es fantástico. Al igual que el apóstrofe, si esperamos un poco después de pulsarlos nos aparece un cuadro con las opciones.

Lo único que me queda por contaros es que si este modo os conquista como a mí, podéis activarlo siempre con Org añadiendo esta línea al archivo de configuración:

;; Activar CDLaTeX con Org mode
(add-hook 'org-mode-hook 'turn-on-org-cdlatex)

¡Y hala! ¡Productividad a tope! 😀

¿Vosotras qué modos y herramientas usáis para simplificar vuestro trabajo? Ilustradme, porfis.

Referencias

org-cdlatex en el manual de Org

CDLaTeX en GitHub


Últimamente estoy dejando salir a mi celta interior:

Mi entorno de trabajo en Emacs

Estoy fusionando mi amor por Emacs con mi objetivo de ser más productiva (¡todavía más!) al trabajar. Esto pasa evidentemente por perder menos tiempo, que se traduce a su vez en tres cosas:

  • Usar lo menos posible el ratón, con la ventaja añadida de que mis pobres muñecas sufren mucho menos.

  • Salir lo menos posible de Emacs, si Emacs puede hacer todo ¿por qué abandonarlo? Esto conlleva afinar la configuración, algo que considero una inversión a largo plazo (y me divierte lo suyo, además).

  • Automatizar tareas repetitivas, reducir el tiempo gastado en repetir lo mismo una y otra vez es generar tiempo para otras cosas. También se reduce el número de veces que pulso una combinación de teclas determinada y, por lo tanto, mis manitas están más felices.

Un tema interesante que encaja en las tres categorías anteriores es tener preparado un entorno de trabajo al abrir Emacs la primera vez del día. ¿Cómo hago esto? Con una lista de tareas escrita en org que se abre automáticamente al iniciar Emacs. Como curro en diferentes historietas, en esta lista describo lo que tengo que hacer y enlazo los archivos en los que estoy trabajando. De esta manera, me sirve un poco como acta del trabajo que voy realizando y me permite tener localizados los documentos de los diferentes proyectos en los que ando.

Además, basta configurar con qué programa debe abrirse qué tipo de archivo para que tengamos ya la herramienta correcta dispuesta para que le demos caña, cuando no podemos usar directamente Emacs, claro.

Para que la lista de tareas nos aparezca al abrir Emacs solo hay que añadir una línea al final de nuestro archivo de configuración:

(find-file "RUTA_A_LA_LISTA")

He llegado a este sistema de pura casualidad, pero la verdad es que se adapta muy bien a mis necesidades. Otro día os hablaré más en detalle sobre cómo uso Org y compartiré con vosotros mi configuración completa para este modo.

Tengo curiosidad, ¿cómo os organizáis vosotros? ¡Contadme, contadme!

Referencias

A Baby Steps Guide to Managing Your Tasks with Org


Suena mientras escribo esto:

Lo que he aprendido: imágenes inline en Org

¡Hola, gentes! ¡He aprendido nuevas cosas de Org!

Resulta que si hemos instalado Emacs con soporte para imágenes, podemos decirle a Org mode que nos las muestre dentro de nuestro documento. Esto es maravilloso porque implica que no es necesario que exportemos a HTML o pdf para tener un documento legible sino que desde dentro del propio Org podemos editar y ver directamente todo. Veamos cómo.

Mostrar las imágenes

Como ya sabemos, se pueden insertar imágenes en Org con la siguiente línea:

[[file:RUTA_A_IMAGEN]]

Tenemos unas funciones, que invocamos con M-x seguido de su correspondiente nombre, que nos permiten decidir si Org nos muestra la imagen a la que hacemos referencia en lugar de la línea esa que tan bien conocemos:

  • org-display-inline-images: muestra las imágenes
  • org-redisplay-inline-images: vuelve a cargar las imágenes
  • org-toggle-inline-images (C-c C-x C-v): si las estaba mostrando las deja de mostrar y viceversa
  • org-remove-inline-images: deja de mostrar las imágenes

El lugar de usar estas funciones todo el rato, también se puede establecer el comportamiento para determinado documento mediante una variable de inicio:

#+STARTUP: inlineimages

Mostrará las imágenes que hemos enlazado. En cambio:

#+STARTUP:noinlineimages

No las mostrará. Para que nos recargue el documento y hagan efecto los cambios en estas variables es útil la combinación C-x C-v (buscar archivo alternativo), una de mis favoritas.

Seguir leyendo →

Lo que he aprendido: abrir archivos con un programa externo en Org

¡Ay el modo Org! ¡Cómo me encanta! Cada día le encuentro más funcionalidades, creo que llegará un momento en el que solo usaré este modo para todas mis actividades, me da un poco de miedito.

Acabo de descubrir que podemos decirle a Org que nos abra los archivos que enlazamos en un documento con la aplicación que nos parezca. Esto me ha parecido megaútil para referenciar en mi lista de tareas qué he hecho y dónde está. Así, puedo escribir las conclusiones que he sacado de determinado tema y enlazar el script de Matlab en el que lo investigo o el paper donde he leído el método.

Esta configuración de con qué programa se abre qué tipo de archivo está guardada en la variable org-file-apps, que podemos describir con:

C-h v org-file-apps

o bien:

M-x describe-variable org-file-apps

Nos dice lo siguiente:

org-file-apps is a variable defined in ‘org.el’.
Its value is ((auto-mode . emacs)
(“\.mm\'” . default)
(“\.x?html?\'” . default)
(“\.pdf\'” . default))

External applications for opening ‘file:path’ items in a document. Org-mode uses system defaults for different file types, but you can use this variable to set the application for a given file extension. The entries in this list are cons cells where the car identifies files and the cdr the corresponding command.

Sigue leyendo

Lo que he aprendido: diagramas en Org mode con Ditaa

¡He aprendido cosas nuevas de Org! ¡Ahora puedo pintar grafiquillos! Cómo me encanta. Me encontré con Ditaa leyendo el curso de Emacs de La pipa plena, un gran recurso para aprender, luego me puse yo a hurgar y ahora me toca escribir lo aprendido para que no se me olvide. Vamos a ello.

Ditaa

Ditaa es una pequeña utilidad para la terminal que permite convertir diagramas hechos en ASCII art en imágenes. Está escrita en Java y se distribuye como un archivo jar por lo que es totalmente portable1. Es además un programilla libre ya que lleva una licencia GPL.

Si tenemos el jar necesitamos Java para poder crear diagramas desde la terminal, pero no nos preocupemos, usarlo es tan fácil como llamar a Java con la opción -jar diciéndole dónde está Ditaa y qué queremos que haga:

java -jar RUTA/ditaaXXX.jar OPCIONES ARCHIVO

donde XXX es el número de versión y ARCHIVO el lugar donde está el dibujito ASCII, lo demás creo que se explica solo. Por poner un ejemplo, si le pasamos a Ditaa un archivo que contenga esto:

+----------------+       +----------------+
|                |       |                |
| Primer bloque  +------>| Segundo bloque |
|                |       |                |
+----------------+       +----------------+

Nos creará este gráfico:

figura

Unirlo a Emacs

Así visto Ditaa parece un poco absurdo, pero ¿y si lo unimos al modo artista de Emacs? Más aun, ¿y si le decimos a Org que nos ejecute el código de Ditaa? ¡Nos aparecerá un gráfico perfectamente integrado en nuestro documento!

Cuenta la leyenda que Ditaa viene en el propio Org, concretamente el jar debería estar en contrib/scripts, pero yo no lo tenía, no sé por qué, así que tuve que decirle a Emacs dónde estaba añadiendo lo siguiente al archivo de configuración:

;; Ruta hasta el jar de Ditaa
(setq org-ditaa-jar-path "RUTA/ditaaXXX.jar")

Seguir leyendo →