domingo, febrero 12, 2017

Usar vim para gestionar tareas con TaskPaper

Usar vim para gestionar tareas con TaskPaper

Estos últimos días he estado leyendo sobre el sistema de gestión de actividades llamado Getting Things Done (GTD), cuyo idea principal es descargar la mente de las tareas que hay que hacer, almacenándolas en "listas" y gestionar la información anotada en las mismas. Este sistema fue propuesto por David Allen en su libro Getting Things Done: The Art of Stress-Free Productivity.

TaskPaper es un programa para organiza actividades en diferentes proyectos, los cuales tienen una serie de tareas. Se utilizan etiquetas para marcar las tareas. La principal particularidad de este programa es que la información la almacena en ficheros de texto plano que pueden ser abiertos por cualquier editor de textos.

El formato que utiliza TaskPaper es muy sencillo, y está descrito en el manual de usuario del programa. Un fichero de este tipo cumple con las siguientes propiedades:

  • Son ficheros de texto en formato UTF-8 y para la separación de líneas usa el carácter de nueva línea (ASCII 10, \n)
  • Una etiqueta no es más que una palabra que empieza por el símbolo '@'. Las etiquetas no pueden tener espacios y pueden tener valores asociados al final, usando paréntesis. Estos valores no puede contener un '\n'.
  • Una tarea no es más que una línea que empieza por un guión normal ('-'), que opcionalmente puede tener espacios o tabuladores al principio del mismo, que se utilizan para establecer las relaciones entre los proyectos y las tareas. Además, una tarea puede tener un número indeterminado de etiquetas.
  • Una nota es cualquier línea que no sea un proyecto o una tarea.

Un ejemplo sencillo de un fichero en este formato es el siguiente:

CASA:
    - Ordenar la mesa del ordenador
    - Preparar la comida  @done(2017-02-12)
    - Comprar las cosas para la comida mañana @done(2017-02-11)
TRABAJO:
BLOG:
    - Entrada sobre como crear tablas de contenido en LaTeX en cada capítulo
    - Entrada de como usar taskpaper para llevar un sistema GTD
TODO:
    - Ordenar la caseta del jardín
    - Probar el spectrum
    - Restaurar las partidas en la PS3 del Oblivion
    - Hacer las tareas del curso de Machine Learning
    - Procesar algunas fotografías más
    - Revisar la lista de enlaces del blog.
    - Copiar las recetas al libro.
    - Leer el libro de ElasticSearch

vim tiene un buen plugin para manejar este tipo de ficheros, taskpaper.vim. Este plugin definirá una serie de comandos nuevos y permitirá manejar este tipo de ficheros. Los primero que hay que hacer es instalar (basta con bajarse el paquete del repositorio y descomprimirlo en ~/.vim. Luego, usando :helptags se añade los ficheros de ayuda al sistema de vim, y así la tendremos disponible con :help taskpaper.

Este plugin utiliza las funciones de folding de vim para ocultar aquellas parte del fichero en las que no estemos interesados, permitiendo concentrar la atención en la parte que se está trabajando.

El plugin también define una serie de atajos de teclado. Todos estos se llaman pulsado previamente lo que en vim se conoce como la leader key. Pulsando esa secuencia de teclas, se modificará el fichero de acuerdo a la operación que se desee hacer. Por defecto la "leader key" en vim es '\'. Sin embargo, generar la contrabarra en un teclado en castellano implica también pulsar ALT, con lo cual merece la pena mapear. Esto se hace con let mapleader=",".

Las nuevas combinaciones de teclas que define el plugin para manejar los ficheros taskpaper. Todas se usan sobre la línea que se quiera modificar.

\tdMarca la tarea como realizada añadiéndole la etiqueta @done(YYYY-MM-DD)
\txMarca la tarea como cancelada añadiéndole la etiqueta @cancelled(YYYY-MM-DD
\ttAñade la etiqueta @today a una tarea para indicar que debe der hecha hoy.
\tDArchiva las tareas marcadas como @done. Esto se hace creando un nuevo proyecto llamado Archive al que se le asociarán las tareas archivadas, marcando las mismas con la etiqueta @project(nombre de proyecto)
\tXMuestra las tareas marcadas como canceladas
\tTMuestra aquellas tareas marcadas como today
\t/Búsqueda por palabra clave
\tsBúsqueda por etiquetas
\tp"Pliega" (fold) todos los proyectos. En este caso sólo se verán los nombres de los mismos.
\t."Pliega" (fold) todas las notas.
\tPCentra el sistema en el proyecto actual, ocultando el resto de las líneas.
\tjMueve al siguiente proyecto
\tkMueve al anterior proyecto
\tgVe al proyecto especificado, el sistema preguntará por el mismo
\tmMueve la tarea sobre la que está el cursor al proyecto indicado.

Si se está acostumbrado al uso de vim, este plugin puede ser muy válido para iniciarse en la metodología GTD y organizar el trabajo personal.

No hay comentarios: