Como Gerenciar suas Finanças com o Modo Ledger no Emacs

O Modo Ledger é um pacote no Emacs para o programa de contabilidade de linha de comando Ledger. Isso permite que os usuários do Emacs utilizem os poderosos recursos do Ledger no conforto de seu editor de texto favorito.
Índice
- Por que usar o Modo Ledger e fazer sua contabilidade no Emacs?
- Como o Ledger funciona
- Definindo Categorias de Conta no Ledger
- Instalando o Ledger
- Usando o Modo Ledger no Emacs
- Perguntas Frequentes
Leia também: O que é Doom Emacs e como instalá-lo
Por que usar o Modo Ledger e fazer sua contabilidade no Emacs?
O Modo Ledger é simples e intuitivo de usar. Ele automaticamente equilibra suas finanças e notifica você quando há algum problema com seus registros. Ele também permite que você categorize suas despesas e fontes de renda, que podem, então, ser classificadas e analisadas a partir do próprio pacote.

Simplificando, o Modo Ledger é uma adição brilhante para alguém que usa o Emacs como sua suíte de produtividade. Ele remove a necessidade de planilhas, permitindo também que você use os dados do ledger em outras partes da sua experiência no Emacs.
O Emacs funciona na ideia de interoperabilidade. Isso significa que qualquer dado produzido no Emacs pode ser reaproveitado em qualquer outro pacote dentro dele. Nesse sentido, o Modo Ledger permite que seus usuários criem e combinem os dados que você escreveu para o ledger com outras ferramentas no Emacs.

Isso permite que você, por exemplo, crie documentos do Org Mode que se conectam tanto a e-mails arquivados quanto a arquivos de ledger. Não só isso, você também pode facilmente copiar suas entradas de ledger para seus e-mails e vice-versa. Tudo isso porque as entradas no Modo Ledger são texto simples e o Emacs pode facilmente mover isso para qualquer buffer.

Leia também: Como usar e-mail dentro do Emacs
A Utilidade do Ledger
Como discutido acima, o Modo Ledger do Emacs é apenas uma forma de acessar a utilidade de linha de comando Ledger. Com isso, é importante saber o que é o programa Ledger e o que ele pode fazer imediatamente.
Leia também: Como gerenciar Git no Emacs com Magit
Como o Ledger Funciona
O Ledger é um programa simples que lê ledgers em texto simples e cria relatórios contábeis a partir deles. Ao contrário dos programas tradicionais de contabilidade, ele não cria nem modifica arquivos de banco de dados. Isso torna o Ledger uma solução leve e flexível para acompanhar seu status financeiro.

A maneira como o Ledger torna isso possível é que ele espera que cada entrada no arquivo siga um formato específico. Considere o seguinte exemplo:
2022/02/16 Despesas
Despesas:Alimentos:Almoço 140 PHP
Despesas:Alimentos:Lanchar 50 PHP
Ativos:Fiat:Dinheiro -190 PHPAqui, o Ledger espera três coisas do arquivo de texto simples:
- Uma linha de título que especifica uma data e um nome para a entrada do livro. Neste caso, eu adicionei uma entrada de Despesas em 16 de fevereiro.
- Um grupo de contas que mostra de onde veio o dinheiro e para onde foi. Neste caso, eu usei meu ativo em dinheiro e o movi para uma conta de despesas.
- O valor do dinheiro que eu movi. Aqui, eu movi meu ativo em dinheiro duas vezes para meu almoço e lanche. No entanto, tudo foi retirado de uma vez dos meus ativos no final do dia.
Essas três suposições básicas fazem com que você possa facilmente adaptar o Ledger a qualquer tipo de situação. Por exemplo, o Ledger pode lidar tanto com moeda quanto com commodities. Isso o torna útil para pessoas que não apenas rastreiam seus hábitos de gastos, mas também acompanham seus investimentos.
Leia também: Como usar o Emacs para RSS com Elfeed
Definindo Categorias de Conta no Ledger
Uma coisa importante a notar é que as categorias para cada transação no Ledger são completamente arbitrárias. No entanto, a prática geral de rastreamento de finanças pessoais pode ser dividida em cinco partes:
- A conta de Ativos são as commodities e moedas que você possui. Isso pode ser uma única moeda ou uma mistura de moedas, ações e inventários de itens.
- A conta de Despesas são as commodities que você comprou com seus ativos.
- A conta de Renda é onde você pode retirar dinheiro de suas fontes de riqueza. Por exemplo, você pode anexar o salário que recebe sob esta conta.
- A conta de Passivos é onde você pode atribuir todas as commodities que atualmente deve.
- A conta de Patrimônio é uma conta especial que você pode usar para determinar seu patrimônio líquido atual. Isso é comumente usado ao criar um saldo inicial no Ledger.
Você pode especificar ainda mais uma transação adicionando dois pontos (:) após cada uma dessas cinco categorias. Por exemplo, uma transação com o rótulo Despesas:Alimentos:Almoço pode ser representada por uma hierarquia de três níveis.

Leia também: 5 Recursos Ocultos que Você Pode Usar para Melhorar o Emacs
Instalando o Ledger
Com isso em mente, instalar o Ledger é simples. Você pode encontrá-lo nos repositórios da maioria das distribuições Linux. Por exemplo, você pode instalar o ledger no Debian e Ubuntu usando apt:
sudo apt install ledgerPara Fedora, você pode usar dnf:
sudo dnf install ledgerNo Arch Linux, você pode usar pacman:
sudo pacman -S ledgerNo meu caso, estou usando Debian, então vou instalar o ledger através do apt.

Leia também: Como usar IRC no Emacs com ERC
Usando o Modo Ledger no Emacs
Para usar o programa Ledger com o Emacs, você precisa instalar seu pacote acompanhante, o Modo Ledger. Este pacote está disponível no repositório ELPA padrão. Assim, você já pode instalá-lo através do gerenciador de pacotes do Emacs.

- Para fazer isso, você pode pressionar Alt + X e digitar
package-install. Isso abrirá um buffer de comando onde você pode digitar o pacote que deseja adicionar ao Emacs. Digiteledger-mode. - A partir daí, o Emacs fará o download e compilará o código-fonte do pacote. Depois disso, você pode usar o Ledger no Emacs através do Modo Ledger.

Criando seu Primeiro Ledger no Emacs
Por padrão, o Modo Ledger se ativa automaticamente quando o Emacs abre um arquivo que termina com .ledger.
Assim, você pode começar a criar seu próprio arquivo ledger no Emacs pressionando Control + X, Control + F.
Isso abrirá um buffer onde você pode digitar o nome do arquivo que deseja criar. Digite
example.ledger.Depois disso, o Emacs criará o arquivo “example.ledger” no diretório atual e o abrirá para você. A partir daqui, você pode começar a preencher seu arquivo ledger com suas transações.
Leia também: Como Criar Belos Slides Beamer com Emacs
Crie seu Saldo Inicial no Emacs
Para começar a rastrear suas finanças no Ledger, você precisa primeiro fornecer seu saldo atual a ele. Você pode fazer isso deduzindo o que você atualmente possui e deve a uma conta de Patrimônio. Por exemplo, este é o saldo inicial de alguém com um número de Ativos e Passivos:
2022/02/10* Saldo Inicial
Ativos:Bitcoin:Poupança 0.045 BTC
Ativos:Bitcoin:Corrente 0.00050712 BTC
Ativos:Fiat:Corrente 15,000.00 PHP
Ativos:Fiat:Poupança 255,944.00 PHP
Passivos:Fiat:Empréstimo de Carro -450,000.00 PHP
Passivos:Fiat:Crédito a Pagar -5,000.00 PHP
Passivos:Fiat:Empréstimo de Casa -755,831.34 PHP
Patrimônio:Saldo InicialA estrutura da entrada inicial do Ledger é semelhante ao exemplo acima, com uma diferença chave. Aqui, adicionamos um asterisco antes do título da entrada para informar ao Ledger que esta transação já está “liquida”. Isso significa que o Ledger está livre para adicionar e deduzir dessas contas.
Verifique seu Saldo Atual
Uma vez feito, você pode agora testar se o Ledger detecta seu arquivo corretamente.
- Para fazer isso, você pode pressionar Control + C, Control + O, Control + R. Isso solicitará ao Modo Ledger que gere um relatório para você.
- Digite
balpara exibir o saldo corrente.

- Fazer isso produzirá uma hierarquia de todas as contas que você adicionou ao seu arquivo Ledger. Todas elas devem, então, totalizar zero na linha final.
Adicionar Novas Transações
Com isso feito, você pode agora adicionar novas transações ao seu arquivo ledger.
- Você pode fazer isso pressionando Control + C, Control + A. Isso informará ao Modo Ledger que você deseja criar uma nova transação.
- Em seguida, ele pedirá a data que você deseja para esta transação. Isso é útil se você estiver emitindo cheques que só serão liquidadas após uma certa data. No meu caso, quero usar a data atual, então pressionarei Enter aqui.

- A partir daí, o Modo Ledger perguntará o nome de uma transação registrada anteriormente. Você pode usar esse recurso se estiver fazendo pagamentos recorrentes e apenas quiser copiar uma transação anterior. No meu caso, quero criar uma nova transação, então também pressionei Enter aqui.

- Com isso, o Modo Ledger criará uma nova linha em branco com a data atual. Você pode, então, adicionar a transação que deseja fazer a partir daqui. Por exemplo, adicionei a seguinte transação após meu saldo inicial:
2022/02/10* Saldo Inicial
Ativos:PHP:Corrente 5,000.00 PHP
Ativos:PHP:Poupança 10,000.00 PHP
Passivos:PHP:Crédito a Pagar -5,000.00 PHP
Patrimônio:Saldo Inicial
2022/02/11 Minha Primeira Transação
Despesas:Alimentos:Lanchar 250.00 PHP
Ativos:PHP:Corrente -250.00 PHP
Leia também: 7 Melhores Leitores USENET para Linux
Gerar Relatórios Básicos
- Como discutido acima, você pode pressionar Control + C, Control + O, Control + R para gerar um relatório. Além de
bal, no entanto, você também pode usar uma série de outros comandos para gerar diferentes relatórios dentro do ledger. - Por exemplo, você pode digitar
accounte o nome da conta para criar um extrato de conta para uma categoria específica. No meu caso, digitei “Ativos” para criar um extrato para minha categoria de Ativos.

- Por outro lado, você pode digitar
payeepara mostrar todas as transações tituladas com a string que você forneceu. Por exemplo, posso digitar “lanchar” para exibir apenas todas as transações com a palavra lanchar.

- Por fim, você pode digitar
regpara produzir um relatório de registro de todo o ledger. Este é um relatório de saldo mais detalhado onde o Ledger rastreia cada commodity e como todas elas se equilibram.

Parabéns! Agora você sabe como usar o Emacs para ajudá-lo a rastrear suas finanças. Você também aprendeu sobre o programa Ledger e como pode usá-lo para criar relatórios detalhados sobre seu status financeiro.
Leia também: 5 Pacotes Úteis do Emacs para Melhorar a Produtividade
Perguntas Frequentes
1. O Ledger está lançando um erro de que meu ledger não está equilibrado. O que eu fiz de errado?
Isso pode ser devido a uma série de problemas. O mais comum, no entanto, é que você esqueceu de fechar uma transação no ledger. Uma maneira de corrigir isso é verificar se há transações que não têm nenhum valor negativo.
Um valor negativo no Ledger significa que você está retirando um valor de uma conta. Por outro lado, um valor positivo significa que você está adicionando a ele. Esses dois valores representam um fluxo de ativos e é necessário equilibrar suas contas no Ledger.
Com isso, isso significa que para cada transação que você fará no Ledger, você precisa ter um valor positivo e um negativo.
2. O Ledger é utilizável apenas com ativos do mundo real?
De forma alguma. Como discutido acima, todas as contas usadas no Ledger são completamente arbitrárias. Isso significa que, embora os exemplos neste guia se refiram a ativos do mundo real, você também pode usar o Ledger para rastrear ativos virtuais.
Por exemplo, este é um trecho de um ledger que rastreia ativos em um popular jogo MMO, EVE Online:
2022/01/04 Lucros da Venture
Principal:Ativos:Líquido:ISK 150,000,000.00 ISK
Alt 1:Renda:Mineração de Minério -10,000,000.00 ISK
Alt 1:Renda:Comércio de Estação -40,000,000.00 ISK
Alt 2:Renda:Execução de Dados (0.0)-100,000,000.00 ISK
2022/01/07 Custos de Manutenção
Alt 1:Despesas:Seguro de Nave 10,000.00 ISK
Alt 2:Despesas:Nova Nave 53,450,000.00 ISK
Principal:Ativos:Líquido:ISK -53,460,000.00 ISK3. É possível inverter a ordem das transações, semelhante a um extrato bancário?
Sim e não. Você pode inverter a ordem das transações nos relatórios que o Ledger gera. No entanto, você não pode inverter a ordem das transações em seu arquivo Ledger. Para fazer o primeiro, você pode pressionar Shift + R enquanto estiver em um buffer de relatório para inverter sua ordem.
Crédito da imagem: Unsplash