February 10, 2014

octocat

Notas y tareas en Gist

Si tu eres de los que tienen muchas ideas al mismo tiempo, aveces es necesario apuntar algunas para usos futuros. O incluso si solo necesitas un texto abierto para apuntar un nombre, un teléfono o algo y no quieres abrir un pesado editor de texto para que esté siempre ahí a la mano, esto te puede servir.

Hace ya casi un año que estoy usando Vim para este tipo de cosas, puesto que siempre tengo la terminal abierta para hacer mis debugs, hice una ventana nueva con tmux para tener el Vim abierto siempre.

En este post/ejercicio vamos a realizar un archivo para guardar notas y listas de tareas por hacer desde vim y las vamos a vincular a un gist para mantenerlo en la nube.

Para esto vamos a necesitar usar Vim, Si no estás familiarizado con el editor Vim, aquí veremos lo básico.

Ok primero lo primero, vamos a crear un archivo nuevo en formato markdown:
vim notas.md

Ahora vamos a escribirle unas notas. Para escribir, presiona la tecla i, verás abajo del editor -- INSERT --, esto significa que ya estas editando el texto:

Terminal-2
Ok Ahora vamos a escribir nuestra nota:

##Notas
Esta es una nota  
[Este es un link](http://www.google.com)

Listo, para terminar de editar solo presiona ESC
Para salvar y cerrar el archivo escribe :wq Significa “escribir y cerrar”

Terminal-3

Listo debes estar de regreso en la línea de comando. Ahora vamos a instalar una librería para subir a gist.
La librería que usé es esta yo la instalé en OSX usando homebrew
brew install gist

Una vez instalado, vamos a hacer login con nuestra cuenta de Github.
gist --login

Esto nos preguntará por nuestro usuario y password, solo sigue las instrucciones.

Casi estamos listos, es hora de subir el gist a github. Para esto crearemos un nuevo gist con el archivo que creamos (notas.md) y lo vamos a subir en modo privado para que solo tu lo puedas ver.
gist -p notas.md

No fue tan difícil, ¿verdad?, si todo salió bien, la librería te contestó con la url del gist.
Terminal
Anda sigue la liga y ve tu texto en internet y verás algo así:
notas_md-3

Bien, hasta el momento ya tienes tus notas guardadas en la nube, pero ¿que tal sería poder hacer una lista de tareas ahí mismo?

Según este post lifehacker. Puedes convertir un gist en una lista de tareas (aka TODO list) con tan solo usar unos corchetes. Así que vamos de regreso a editar nuestro archivo de notas para agregarle la lista.
vim notas.md

No olvides para insertar texto debes teclear i

##Tareas
- [ ] Agregar tareas
- [ ] Subir cambios
- [ ] Automatizar el proceso

##Notas
Esta es una nota  
[Este es un link](http://www.google.com)

Terminas de editar con ESC, luego guarda y cierra con :wq

Ok ahora vamos a subir los cambios al mismo gist, cuando subiste el primer gist, y la librería te regresó una URL, en la URL viene el ID del gist:
https://gist.github.com/[ESTA ES LA ID DEL GIST]

Copia la ID y ahora vamos a escribir esto en la línea de comando:
gist notas.md -u [LA ID DEL GIST]

Con esto ya subiste los cambios, adelante, ve a verlo siguiendo la liga que te regresó gist.
tareas_md

Ok ahora solo nos queda hacer un comando automático para subir los cambios cada que el archivo de notas sea modificado. Aquí es donde entra una feature de vim. Primero vamos de regreso al editor.
vim notas.md

Aqui en vez de insertar texto, vamos a escribir:
:autocmd BufWritePost ~/Documents/notas.md !gist <afile> -u [LA ID DEL GIST]

Vamos a desglosar esto:
- :autocmd : indica que estamos creando un comando automático
- BufWritePost : el grupo del auto comando, en este caso “Cada que se guarde un cambio”
- ~/Documents/notas.md : la locación ABSOLUTA del archivo notas en tu computadora
- !gist <afile> -u [LA ID DEL GIST] : el comando a ejecutar

Ok da enter y no verás cambios, ahora guarda sin salirte de vim :w
Verás algo como esto: Terminal-4

¡ÉXITO, ya se subieron tus cambios! Ahora ya puedes editar tu texto desde tu computadora y siempre lo tendrás al día y accesible desde gist.

Ahora solo queda guardar tu comando automático, porque hasta el momento, si cierras vim, se pierde. Para conservar los cambios, solo agrégalo a tu archivo ~/.vimrc

Usaremos vim para esto:
vim ~/.vimrc

Y agregamos esta línea al archivo:
autocmd BufWritePost ~/Documents/notas.md !gist <afile> -u [LA ID DEL GIST]

Observa como no lleva los dos puntos la inicio.

Listo, guarda y cierra :wq

Ahora cada que guardes con vim tu archivo de notas, los cambios se subirán automáticamente a su respecivo gist!

¿Que te parece esto? ¿Crees que te pueda ser útil? ¿Te interesa que ponga más cosas como estas?, no dudes en pedirlo. Si te gustó esto compártelo en todas tus redes sociales. Y si en realidad te sirve de algo lo que escribo aquí, a la derecha hasta arriba hay un botón para que me invites un café o algo más :D

Zero out

Ligas de ayuda:
- Vim autocmd
- Todo list con gist
- Gist para línea de comando