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

Emacs Ledger 00 Imagen destacada

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.

Emacs Ledger 02 Ejemplo de informe de Ledger Mode

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.

Emacs Ledger 03 Interoperabilidad de 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.

Emacs Ledger 04 Ejemplo de interoperabilidad

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.

Emacs Ledger 05 Tradicional Vs Ledger

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 PHP

Aquí, 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.

Emacs Ledger 06 Ejemplo de jerarquía

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 ledger

Para Fedora, puedes usar dnf:

sudo dnf install ledger

En Arch Linux, puedes usar pacman:

sudo pacman -S ledger

En mi caso, estoy usando Debian, así que instalaré ledger a través de apt.

Emacs Ledger 07 Instalando Ledger 1

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.

Emacs Ledger 08 Sitio web de Elpa

  1. 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. Escribe ledger-mode.
  2. 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.

Emacs Ledger 09 Ledger Mode instalado

Creando tu primer libro mayor en Emacs

Por defecto, Ledger Mode se activa automáticamente cuando Emacs abre un archivo que termina en .ledger.

  1. Como tal, puedes comenzar a crear tu propio archivo de libro mayor en Emacs presionando Control + X, Control + F.

  2. Esto abrirá un buffer donde puedes escribir el nombre del archivo que deseas crear. Escribe example.ledger.

  3. 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 Inicial

La 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.

  1. Para hacer eso, puedes presionar Control + C, Control + O, Control + R. Esto le pedirá a Ledger Mode que genere un informe para ti.
  2. Escribe bal para mostrar el saldo en curso.

Emacs Ledger 11 Ejemplo de saldo

  1. 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.

  1. Puedes hacer esto presionando Control + C, Control + A. Esto le dirá a Ledger Mode que deseas crear una nueva transacción.
  2. 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í.

Emacs Ledger 12 Nueva fecha de transacción

  1. 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í.

Emacs Ledger 13 Transacciones anteriores

  1. 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

Emacs Ledger 14 Ejemplo de nuevas transacciones

También lee: 7 mejores lectores de USENET para Linux

Generar informes básicos

  1. 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.
  2. Por ejemplo, puedes escribir account y 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.

Emacs Ledger 15 Estado de activos

  1. Por otro lado, puedes escribir payee para 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.

Emacs Ledger 16 Payee Snack

  1. Por último, puedes escribir reg para 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.

Emacs Ledger 17 Ejemplo de registro

¡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 ISK

3. ¿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