Cómo gestionar tus finanzas con el modo Ledger en Emacs

Ledger Mode es un paquete en Emacs para el programa de contabilidad de línea de comandos Ledger. Esto permite a los usuarios de Emacs utilizar las potentes características de Ledger desde la comodidad de su editor de texto favorito.
Tabla de Contenidos
- ¿Por qué usar Ledger Mode y hacer tu contabilidad en Emacs?
- Cómo funciona Ledger
- Definiendo categorías de cuentas en Ledger
- Instalando Ledger
- Usando Ledger Mode en Emacs
- Preguntas Frecuentes
También lee: ¿Qué es Doom Emacs y cómo instalarlo?
¿Por qué usar Ledger Mode y hacer tu contabilidad en Emacs?
Ledger Mode es simple e intuitivo de usar. Equilibra automáticamente tus finanzas y te notifica cuando hay algún problema con tus registros. También te permite categorizar tus gastos y fuentes de ingresos que luego pueden ser ordenados y analizados desde el propio paquete.

En pocas palabras, Ledger Mode es una brillante adición para alguien que usa Emacs como su suite de productividad. Elimina la necesidad de hojas de cálculo mientras te permite usar los datos del libro mayor en otras partes de tu experiencia con Emacs.
Emacs trabaja bajo la idea de interoperabilidad. Esto significa que cualquier dato producido en Emacs puede ser reutilizado en cualquier otro paquete dentro de él. En eso, Ledger Mode permite a sus usuarios crear y combinar los datos que has escrito para el libro mayor con otras herramientas en Emacs.

Esto te permite, por ejemplo, crear documentos de Org Mode que enlazan tanto a correos electrónicos archivados como a archivos de libro mayor. No solo eso, también puedes copiar fácilmente tus entradas de libro mayor a tus correos electrónicos y viceversa. Todo esto se debe a que las entradas en Ledger Mode son texto plano y Emacs puede mover eso fácilmente a cualquier buffer.

También lee: Cómo usar el correo electrónico dentro de Emacs
La utilidad de Ledger
Como se discutió anteriormente, el Ledger Mode de Emacs es solo una forma de acceder a la utilidad de línea de comandos Ledger. Con eso, es importante saber qué es el programa Ledger y qué puede hacer fuera de la caja.
También lee: Cómo gestionar Git en Emacs con Magit
Cómo funciona Ledger
Ledger es un programa simple que lee libros de contabilidad en texto plano y crea informes contables a partir de ellos. A diferencia de los programas de contabilidad tradicionales, no crea ni modifica archivos de base de datos. Esto hace que Ledger sea una solución ágil y flexible para llevar un control de tu estado financiero.

La forma en que Ledger hace esto posible es que espera que cada entrada en el archivo siga un formato específico. Considera el siguiente ejemplo:
2022/02/16 Gastos
Gastos:Comida:Almuerzo 140 PHP
Gastos:Comida:Snack 50 PHP
Activos:Fiat:Efectivo -190 PHPAquí, Ledger espera tres cosas del archivo de texto plano:
- Una línea de título que especifique una fecha y un nombre para la entrada del libro. En este caso, añadí una entrada de Gastos el 16 de febrero.
- Un grupo de cuentas que muestra de dónde vino el dinero y a dónde fue. En este caso, utilicé mi activo en efectivo y lo moví a una cuenta de gastos.
- El valor del dinero que moví. Aquí, moví mi activo en efectivo dos veces para mi almuerzo y snack. Sin embargo, todo se tomó de una vez de mis activos al final del día.
Estas tres suposiciones básicas hacen que puedas adaptar fácilmente Ledger a cualquier tipo de situación. Por ejemplo, Ledger puede manejar tanto moneda como mercancías. Esto lo hace útil para personas que no solo están rastreando sus hábitos de gasto, sino también sus inversiones.
También lee: Cómo usar Emacs para RSS con Elfeed
Definiendo categorías de cuentas en Ledger
Una cosa importante a tener en cuenta es que las categorías para cada transacción en Ledger son completamente arbitrarias. Sin embargo, la práctica general de rastrear finanzas personales puede dividirse en cinco partes:
- La cuenta de Activos son las mercancías y monedas que posees. Esto puede ser una sola moneda o una mezcla de monedas, acciones e inventarios de artículos.
- La cuenta de Gastos son las mercancías que has comprado con tus activos.
- La cuenta de Ingresos es donde puedes retirar dinero de tus fuentes de riqueza. Por ejemplo, puedes adjuntar el salario que recibes bajo esta cuenta.
- La cuenta de Pasivos es donde puedes asignar todas las mercancías que actualmente debes.
- La cuenta de Patrimonio es una cuenta especial que puedes usar para determinar tu patrimonio neto actual. Esto se utiliza comúnmente al crear un saldo inicial en Ledger.
Puedes especificar aún más una transacción añadiendo dos puntos (:) después de cada una de esas cinco categorías. Por ejemplo, una transacción con la etiqueta Gastos:Comida:Almuerzo puede representarse mediante una jerarquía de tres niveles.

También lee: 5 características ocultas que puedes usar para mejorar Emacs
Instalando Ledger
Con eso en mente, instalar Ledger es simple. Puedes encontrarlo en los repositorios de la mayoría de las distribuciones de Linux. Por ejemplo, puedes instalar ledger en Debian y Ubuntu usando apt:
sudo apt install ledgerPara Fedora, puedes usar dnf:
sudo dnf install ledgerEn Arch Linux, puedes usar pacman:
sudo pacman -S ledgerEn mi caso, estoy usando Debian, así que instalaré ledger a través de apt.

También lee: Cómo usar IRC en Emacs con ERC
Usando Ledger Mode en Emacs
Para usar el programa Ledger con Emacs, necesitas instalar su paquete compañero, Ledger Mode. Este paquete está disponible en el repositorio ELPA por defecto. Como tal, ya puedes instalarlo a través del gestor de paquetes de Emacs.

- Para hacer eso, puedes presionar Alt + X y escribir
package-install. Esto abrirá un buffer de comandos donde puedes escribir el paquete que deseas agregar a Emacs. Escribeledger-mode. - A partir de ahí, Emacs descargará y compilará el código fuente del paquete. Después de eso, ahora puedes usar Ledger en Emacs a través de Ledger Mode.

Creando tu primer libro mayor en Emacs
Por defecto, Ledger Mode se activa automáticamente cuando Emacs abre un archivo que termina en .ledger.
Como tal, puedes comenzar a crear tu propio archivo de libro mayor en Emacs presionando Control + X, Control + F.
Esto abrirá un buffer donde puedes escribir el nombre del archivo que deseas crear. Escribe
example.ledger.Después de eso, Emacs creará el archivo “example.ledger” en el directorio actual y lo abrirá para ti. Desde aquí, puedes comenzar a llenar tu archivo de libro mayor con tus transacciones.
También lee: Cómo crear hermosas diapositivas de Beamer con Emacs
Crea tu saldo inicial en Emacs
Para comenzar a rastrear tus finanzas en Ledger, primero necesitas proporcionar tu saldo actual. Puedes hacerlo deduciendo lo que actualmente tienes y debes a una cuenta de Patrimonio. Por ejemplo, este es el saldo inicial de alguien con una cantidad de Activos y Pasivos:
2022/02/10* Saldo Inicial
Activos:Bitcoin:Ahorros 0.045 BTC
Activos:Bitcoin:Corriente 0.00050712 BTC
Activos:Fiat:Corriente 15,000.00 PHP
Activos:Fiat:Ahorros 255,944.00 PHP
Pasivos:Fiat:Préstamo de Auto -450,000.00 PHP
Pasivos:Fiat:Crédito a Pagar -5,000.00 PHP
Pasivos:Fiat:Préstamo Hipotecario -755,831.34 PHP
Patrimonio:Saldo InicialLa estructura de la entrada inicial de Ledger es similar al ejemplo anterior con una diferencia clave. Aquí, hemos añadido un asterisco antes del título de la entrada para decirle a Ledger que esta transacción ya está “clara”. Esto significa que Ledger puede añadir y deducir de estas cuentas.
Verifica tu saldo actual
Una vez hecho esto, ahora puedes probar si Ledger detecta tu archivo correctamente.
- Para hacer eso, puedes presionar Control + C, Control + O, Control + R. Esto le pedirá a Ledger Mode que genere un informe para ti.
- Escribe
balpara mostrar el saldo en curso.

- Hacer esto producirá una jerarquía de todas las cuentas que has añadido a tu archivo de Ledger. Todas estas deberían, entonces, totalizar cero en la última línea.
Añadir nuevas transacciones
Con eso hecho, ahora puedes añadir nuevas transacciones a tu archivo de libro mayor.
- Puedes hacer esto presionando Control + C, Control + A. Esto le dirá a Ledger Mode que deseas crear una nueva transacción.
- Luego, te pedirá la fecha que deseas para esta transacción. Esto es útil si estás emitiendo cheques que solo se liquidarán después de una cierta fecha. En mi caso, quiero usar la fecha actual, así que presionaré Enter aquí.

- Desde allí, Ledger Mode te pedirá el nombre de una transacción previamente registrada. Puedes usar esta función si estás haciendo pagos recurrentes y solo deseas copiar una transacción anterior. En mi caso, quiero crear una nueva transacción, así que también presioné Enter aquí.

- Con eso, Ledger Mode creará una nueva línea en blanco con la fecha actual. Luego, puedes añadir la transacción que deseas hacer desde aquí. Por ejemplo, he añadido la siguiente transacción después de mi saldo inicial:
2022/02/10* Saldo Inicial
Activos:PHP:Corriente 5,000.00 PHP
Activos:PHP:Ahorros 10,000.00 PHP
Pasivos:PHP:Crédito a Pagar -5,000.00 PHP
Patrimonio:Saldo Inicial
2022/02/11 Mi Primera Transacción
Gastos:Comida:Snack 250.00 PHP
Activos:PHP:Corriente -250.00 PHP
También lee: 7 mejores lectores de USENET para Linux
Generar informes básicos
- Como se discutió anteriormente, puedes presionar Control + C, Control + O, Control + R para generar un informe. Además de
bal, sin embargo, también puedes usar una serie de otros comandos para generar diferentes informes desde dentro de ledger. - Por ejemplo, puedes escribir
accounty el nombre de la cuenta para crear un estado de cuenta para una categoría específica. En mi caso, escribí “Activos” para crear un estado para mi categoría de Activos.

- Por otro lado, puedes escribir
payeepara mostrar todas las transacciones tituladas con la cadena que has proporcionado. Por ejemplo, puedo escribir “snack” para mostrar solo todas las transacciones con la palabra snack.

- Por último, puedes escribir
regpara producir un informe de registro de todo el libro mayor. Este es un informe de saldo más detallado donde Ledger rastrea cada mercancía y cómo se equilibran todas.

¡Felicidades! Ahora sabes cómo usar Emacs para ayudarte a rastrear tus finanzas. También aprendiste sobre el programa Ledger y cómo puedes usarlo para crear informes detallados sobre tu estado financiero.
También lee: 5 paquetes útiles de Emacs para una mejor productividad
Preguntas Frecuentes
1. Ledger está lanzando un error de que mi libro mayor no está equilibrado. ¿Qué hice mal?
Esto puede deberse a varios problemas. Sin embargo, el más común es que olvidaste cerrar una transacción en el libro mayor. Una forma de solucionar esto es verificar si hay transacciones que no tienen ningún valor negativo.
Un valor negativo en Ledger significa que estás retirando una cantidad de una cuenta. Por otro lado, un valor positivo significa que estás añadiendo a ella. Estos dos valores representan un flujo de activos y es necesario equilibrar tus cuentas en Ledger.
Con eso, esto significa que por cada transacción que realices en Ledger, necesitas tener un valor positivo y uno negativo.
2. ¿Ledger solo es utilizable con activos del mundo real?
Para nada. Como se discutió anteriormente, todas las cuentas utilizadas en Ledger son completamente arbitrarias. Esto significa que, aunque los ejemplos en esta guía apuntan a activos del mundo real, también puedes usar Ledger para rastrear activos virtuales.
Por ejemplo, este es un extracto de un libro mayor que rastrea activos en un popular juego MMO, EVE Online:
2022/01/04 Beneficios de Venture
Principal:Activos:Líquido:ISK 150,000,000.00 ISK
Alt 1:Ingresos:Minería de mineral -10,000,000.00 ISK
Alt 1:Ingresos:Comercio de estación -40,000,000.00 ISK
Alt 2:Ingresos:Correr datos (0.0)-100,000,000.00 ISK
2022/01/07 Costos de mantenimiento
Alt 1:Gastos:Seguro de barco 10,000.00 ISK
Alt 2:Gastos:Nuevo barco 53,450,000.00 ISK
Principal:Activos:Líquido:ISK -53,460,000.00 ISK3. ¿Es posible invertir el orden de las transacciones similar a un estado de cuenta bancario?
Sí y no. Puedes invertir el orden de las transacciones en los informes que genera Ledger. Sin embargo, no puedes invertir el orden de las transacciones en tu archivo de Ledger. Para hacer lo primero, puedes presionar Shift + R mientras estás en un buffer de informe para invertir su orden.
Crédito de la imagen: Unsplash