215 - Hojas de cálculo en el terminal
Distintas herramientas y un complemento de VIM para trabajar con hojas de cálculo en el terminal de forma sencilla, productiva y potente.
Probablemente estés pensando que esto de editar hojas de cálculo en el terminal es la mayor extravagancia que se me podía haber ocurrido. Pero nada mas lejos de la realidad. Hace mucho, mucho, pero que mucho tiempo que quería poner esto en marcha. Sin embargo, no siempre uno está preparado para emprender un camino concreto. Así, que como te temes, en este episodio del podcast te voy a hablar sobre como crear y editar hojas de cálculo en el terminal.
La razón para hacer esto, no reside en que tenga morriña y quiera volver a mis tiempos de Lotus 1-2-3. No, la razón es mucho mas sencilla, quiero seguir utilizar Git también con las hojas de cálculo. Vamos que quiero tener versionado, y a buen recaudo mis hojas de cálculo.
La cuestión, es que en los últimos años, no utilizo las hojas de cálculo como antes. Antes si que hacía cálculos mas o menos complejos, creaba mis propias macros, y mas. Sin embargo, actualmente, utilizo la hoja de cálculo para guardar información en forma de tabla, y como mucho realizar sencillas operaciones de sumar y multiplicar, nada mas. Casi como si se trataran de bases de datos, salvando las distancias por supuesto.
Así que, me decidí a ver que opciones tenía para trabajar de forma sencilla con hojas de cálculo en el terminal, y eso es lo que te quiero contar hoy.
Trabajar con hojas de cálculo en el terminal
Antes de nada, me gustaría plantear y responder a esta pregunta.
¿Porque hojas de cálculo en el terminal?
Mas o menos, ya he adelantado en la introducción las razones por las que utilizar una hoja de cálculo en el terminal, pero las concreto,
- Actualmente utilizo las hojas de cálculo para guardar información y realizar simples cálculos.
- Control de versiones. Quiero utilizar Git como control de versiones y además aprovecharme de las ventajas de utilizar texto plano, al igual que sucede con Markdown. Una de las grandes ventajas del texto plano, es que no dependo del software de terceros.
- Simplicidad y rapidez. Añadir una nueva línea en una hoja de cálculo desde el terminal es inmediato y tremendamente sencillo. Lo puedes hacer desde cualquier editor de terminal.
- Automatización. De la misma forma, tener tu hoja de cálculo en texto plano, tiene la ventaja de que sin necesidad de recurrir a módulos de tercero. Al final, como te comento en el punto anterior, no es mas que añadir una nueva línea a un archivo de texto.
- No dependes de terceros. No dependes de Microsoft Office, ni de LibreOffice ni de nadie. Nadie puede cambiarte este formato.
- Puedes utilizar decenas o cientos de editores. Eso si, algunos mas cómodos, que otros, pero la posibilidad está ahí.
¿Es para todo el mundo?
No. Evidentemente, la respuesta es que no. Son muchos los perfiles que no van a encontrar ninguna ventaja en utilizar el terminal para editar sus hojas de cálculo. Es mas, me atrevería a decir, que recurrir al terminal para editar una hoja de cálculo, podría llegar a ser improductivo.
Ya sea que no utilizas el terminal, porque no lo necesitas, o porque no te gusta, o por la razón que sea, no veo ninguna ventaja en comenzar a utilizarlo solo para trabajar con hojas de cálculo. Me parece absurdo, a menos que varias de las razones que te he indicado anteriormente te resulten mas que interesantes.
¿Que opciones existen para editar hojas de cálculo en el terminal?
He encontrado cuatro opciones para trabajar con hojas de cálculo en el terminal, sin embargo, por supuesto que, no todas se adaptan a mis necesidades.
sc
. Esta es la primera de las opciones, aunque se trata de un proyecto que está actualmente discontinuado. Pero además tiene un problema adicional, y es que utiliza su propio formato. Aunque es posible utilizar un script en Python para convertir de formatosc
a formatocsv
.sc-im
. Se trata de un editor de hojas de cálculo basado ensc
. El objeto es poder trabajar con hojas de cálculo al igual que trabajas con VIM, de ahí su nombre. Hasta la fecha no lo he encontrado disponible en ningún repositorio. Sin embargo, la instalación desde el código fuente es relativamente sencilla.VisiData
es una herramienta de código abierto, que te permite trabajar con conjuntos de datos directamente desde el terminal. Dependiendo del origen de datos, simplemente vas a poder visualizar, explorar y analizar los datos. Pero en otros casos, también tienes la posibilidad de modificar la información.csv.vim
. Si, como te pueds imaginar, se trata de un plugin para VIM, que es sencillamente brutal.
¿Con cual me quedo?
Aquí tengo el corazón partío. Entre VisiData y csv-vim. Sin lugar a dudas, por comodidad, VisiData se lleva la palma, pero es que VIM… Mi recomendación es que pruebes ambos y tu mismo decidas.
VisiData
Con diferencia es la herramienta con la que me quedo. Eso si, no te pienses que es una herramienta super intuitiva. Tiene su curva de aprendizaje, y esto puede ser un importante inconveniente, si realmente la vas a utilizar en dos ocasiones. Para este caso, a lo mejor es mas interesante que utilices o bien el complemento de Vim para editar CSV o directamente LibreOffice.
¿Porque utilizar Visidata?
- Por rapidez
- Te facilita la gestión y el trabajo con tablas. Es muy sencillo buscar, filtrar, ordenar, etc.
- Tiene una serie de herramientas básicas para operar con datos, como frecuencias, cálculos estadísticos, etc.
- Se trata de una herramienta no-destructiva, en el sentido de que todas las operaciones que realices no se guardan a menos que tu fuerces a sobreescribir los datos.
- Te permite trabajar con una gran variedad de formatos. Eso si, algunos solo puedes visualizarlo como pueden ser las bases de datos de SQLite, o las hojas de cálculo con formato de Microsoft Excel.
- Está orientado al uso con el teclado. Puedes realizar todas las operaciones sin levantar los dedos del teclado.
Instalación de Visidata
Visidata se encuentra en los repositorios oficiales de Ubuntu, y entiendo que en los repositorios de la mayoría de las distribuciones. La instalación es tan sencilla como ejecutar la siguiente instrucción en un terminal,
sudo apt install visidata
Primeros pasos con Visidata
Lo primero como te puedes imaginar es abrir un archivo. En mi caso, es para trabajar con archivos del tipo CSV, es decir, valores separados por comas. Tengo que decir aquí, que yo prefiero separado por punto y coma, pero que le vamos a hacer. Así, si quieres abrir un archivo tan solo tienes que ejecutar,
vd archivo.csv
Mínimo tienes que tener el encabezado, de otra manera no vas a poder comenzar a introducir datos. Ten en cuenta, como te he indicado anteriormente, que es importante, que recuerdes que si no guardas, las modificaciones se pierden. Es decir, cuidado con pulsar q
porque te saldrás sin haber guardado.
Y, ¿Como hago para?,
- ¿desplazarte entre filas y columnas? Tienes que utilizar los mismos atajos de teclado que para navegar con Vim, h, j, k y l.
- ¿añadir una nueva línea? Simplemente tienes que pulsar la tecla
a
. Se añadirá una línea inmediatamente debajo de la línea que te encuentres. - ¿editar una celda?. Pulsa la tecla
e
. Una vez estés editando la celda, tienes otras teclas, como puede serEnter
oCtrl+c
para cancelar la edición,Ctrl+a
para ir al principio de la celda,Ctrl+e
para ir al final de la celda oCtrl+k
para borrar desde donde te encuentres hasta el final. - ¿Añadir una columna? Puedes añadir una columna utilizando la tecla
=
. Esto te permite añadir una nueva columna con el contenido operado por una expresión en Python. Lo cual es tremendamente poderoso.
Indicar que VisiData tiene algunas particularidades como la edición de los encabezados o la forma de operar entre columnas. Pero, esto es como todo, cuestión de aprender a trabajar con él, para ser mas productivo.
Conclusión
Recordar que el terminal no es mas que otra herramienta mas de las que tienes disponibles en el ecosistema Linux para trabajar, y que no te tienes que sentir obligado, para nada a trabajar con el emulador de consola. Siempre puedes recurrir a herramientas como LibreOffice o cualquiera de las suite ofimáticas que hay disponibles para esto.
En mi caso, para lo que estoy haciendo actualmente, me resulta infinitamente más cómodo y productivo, aprender a utilizar VisiData o el complemento de VIM para archivos del tipo CSV, por las razones que he comentado anteriormente.
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Más información,
Imagen de portada de Mika Baumeister en Unsplash