Bloques de código en Org mode
El principio de la programación literaria
Tal como explica John D. Cook en un artículo sobre programación literaria (lo vemos en otro momento), Orgmode permite manejar distintos y variados bloques de texto en un documento de texto, y estos bloques pueden ser incluso bloques de código.
Con cualquiera de estos bloques se pueden hacer cosas, como por ejemplo, si se tratan de código, ejecutar volcar los resultados al documento de texto, ya sea luego exportado a HTML o PDF, y mostrar a la vez el código y el resultado de ejecutar el código.
Nombrando los bloques de código, podemos referenciarlos para operaciones posteriores.
(Para una lectura sobre programación lteraria e investigación reproducible, recomiendo el artículo A Multi-Language Computing Environment for Literate Programming and Reproducible Research.)
Insertar bloques de código
Para insertar un elemento estructural, se escribe el carácter <
seguido de un selector de plantillas de bloques de código que activamos con el tabulador
|
|
Por ejemplo, si se escribe <h
se expande un bloque de código HTML:
|
|
En cambio, si hubiéramos tecleado <H
, habríamos encontrado una línea
donde escribir HTML dentro del documento Orgmode:
|
|
O bien se puede ejecutar bash
:
|
|
Perl:
|
|
O cualquier otro lenguaje, mientras lo tengamos configurado correctamente con Babel.
Añadir lenguajes
Este es un ejemplo de configuración de Babel en el archivo que corresponda:
|
|
Donde hemos configurado perl, ruby, bash, python, emacs-lisp, sqlite y R.
Para añadir lenguajes, hay que instalar su correspondiente conector.
Añadir templates
Una vez que te acostumbras a insertar los bloques de código, encuentras de utilidad personalizarlos o añadir otros.
Con la variable org-structure-template-alist
se pueden añadir atajos para la inserción de bloques de código. Por ejemplo, así se añaden bloques de código emacs-lisp con el atajo <el
|
|