Как управлять своими финансами с помощью режима Ledger в Emacs

Изображение на обложке Emacs Ledger

Режим Ledger — это пакет в Emacs для командной программы бухгалтерского учета Ledger. Это позволяет пользователям Emacs использовать мощные функции Ledger из удобства их любимого текстового редактора.

Содержание

  • Почему стоит использовать режим Ledger и вести бухгалтерию в Emacs?
  • Как работает Ledger
  • Определение категорий счетов в Ledger
  • Установка Ledger
  • Использование режима Ledger в Emacs
  • Часто задаваемые вопросы

Также читайте: Что такое Doom Emacs и как его установить

Почему стоит использовать режим Ledger и вести бухгалтерию в Emacs?

Режим Ledger прост и интуитивно понятен в использовании. Он автоматически балансирует ваши финансы и уведомляет вас, когда возникает какая-либо проблема с вашими записями. Он также позволяет вам классифицировать ваши расходы и источники дохода, которые затем могут быть отсортированы и проанализированы непосредственно из пакета.

Пример отчета режима Ledger Emacs

Проще говоря, режим Ledger — это блестящее дополнение для тех, кто использует Emacs в качестве своего рабочего инструмента. Он устраняет необходимость в электронных таблицах, позволяя вам использовать данные Ledger в других частях вашего опыта с Emacs.

Emacs работает по принципу совместимости. Это означает, что любые данные, созданные в Emacs, могут быть переработаны для любого другого пакета внутри него. В этом смысле режим Ledger позволяет своим пользователям создавать и комбинировать данные, которые вы написали для ledger, с другими инструментами в Emacs.

Совместимость Emacs

Это позволяет вам, например, создавать документы Org Mode, которые ссылаются как на архивированные электронные письма, так и на файлы ledger. Более того, вы также можете легко копировать свои записи ledger в свои электронные письма и наоборот. Все это возможно, потому что записи в режиме Ledger являются простым текстом, и Emacs может легко перемещать их в любой буфер.

Пример совместимости

Также читайте: Как использовать электронную почту в Emacs

Утилита Ledger

Как обсуждалось выше, режим Ledger в Emacs — это всего лишь способ доступа к утилите командной строки Ledger. С этим важно знать, что такое программа Ledger и что она может делать из коробки.

Также читайте: Как управлять Git в Emacs с помощью Magit

Как работает Ledger

Ledger — это простая программа, которая читает простые текстовые книги и создает бухгалтерские отчеты на их основе. В отличие от традиционных программ бухгалтерского учета, она не создает и не изменяет никаких файлов баз данных. Это делает Ledger легким и гибким решением для отслеживания вашего финансового состояния.

Традиционный против Ledger

Ledger делает это возможным, ожидая, что каждая запись в файле будет следовать определенному формату. Рассмотрим следующий пример:

2022/02/16 Расходы  
    Расходы:Еда:Обед                          140 PHP  
    Расходы:Еда:Закуска                          50  PHP  
    Активы:Фиат:Наличные                            -190 PHP

Здесь Ledger ожидает три вещи от простого текстового файла:

  • Заголовок, который указывает дату и название для записи книги. В данном случае я добавил запись о расходах 16 февраля.
  • Группу счетов, которая показывает, откуда пришли деньги и куда они ушли. В данном случае я использовал свой актив наличных и переместил его на счет расходов.
  • Значение денег, которое я переместил. Здесь я дважды переместил свои наличные на обед и закуску. Однако все это было снято сразу с моих активов в конце дня.

Эти три основных предположения делают возможным легкое адаптирование Ledger к любой ситуации. Например, Ledger может работать как с валютой, так и с товарами. Это делает его полезным для людей, которые не только отслеживают свои привычки в расходах, но и следят за своими инвестициями.

Также читайте: Как использовать Emacs для RSS с Elfeed

Определение категорий счетов в Ledger

Важно отметить, что категории для каждой транзакции в Ledger совершенно произвольны. Однако общая практика отслеживания личных финансов может быть разделена на пять частей:

  • Счет Активов — это товары и валюты, которые вы владеете. Это может быть как одна валюта, так и смесь валют, акций и инвентаря товаров.
  • Счет Расходов — это товары, которые вы приобрели за свои активы.
  • Счет Доходов — это место, откуда вы можете получать деньги из своих источников богатства. Например, вы можете прикрепить зарплату, которую получаете, к этому счету.
  • Счет Обязательств — это место, где вы можете указать все товары, которые вы в настоящее время должны.
  • Счет Капитала — это специальный счет, который вы можете использовать для определения своей текущей чистой стоимости. Это обычно используется при создании начального баланса в Ledger.

Вы можете дополнительно уточнить транзакцию, добавив двоеточие (:) после каждой из этих пяти категорий. Например, транзакция с меткой Расходы:Еда:Обед может быть представлена трехуровневой иерархией.

Пример иерархии

Также читайте: 5 скрытых функций, которые вы можете использовать для улучшения Emacs

Установка Ledger

С учетом этого, установка Ledger проста. Вы можете найти его в репозиториях большинства дистрибутивов Linux. Например, вы можете установить ledger в Debian и Ubuntu с помощью apt:

sudo apt install ledger

Для Fedora вы можете использовать dnf:

sudo dnf install ledger

В Arch Linux вы можете использовать pacman:

sudo pacman -S ledger

В моем случае я использую Debian, поэтому я установлю ledger через apt.

Установка Ledger 1

Также читайте: Как использовать IRC в Emacs с ERC

Использование режима Ledger в Emacs

Чтобы использовать программу Ledger с Emacs, вам нужно установить ее сопутствующий пакет, режим Ledger. Этот пакет доступен в стандартном репозитории ELPA. Таким образом, вы можете установить его через менеджер пакетов Emacs.

Сайт Elpa

  1. Для этого вы можете нажать Alt + X и ввести package-install. Это откроет буфер команд, где вы можете ввести пакет, который хотите добавить в Emacs. Введите ledger-mode.
  2. После этого Emacs загрузит и скомпилирует исходный код пакета. После этого вы сможете использовать Ledger в Emacs через режим Ledger.

Режим Ledger установлен

Создание вашего первого Ledger в Emacs

По умолчанию режим Ledger автоматически включается, когда Emacs открывает файл, который заканчивается на .ledger.

  1. Таким образом, вы можете начать создание своего файла ledger в Emacs, нажав Control + X, Control + F.

  2. Это откроет буфер, где вы можете ввести имя файла, который хотите создать. Введите example.ledger.

  3. После этого Emacs создаст файл “example.ledger” в текущем каталоге и откроет его для вас. Отсюда вы можете начать заполнять свой файл ledger своими транзакциями.

Также читайте: Как создать красивые слайды Beamer с помощью Emacs

Создание вашего начального баланса в Emacs

Чтобы начать отслеживать свои финансы в Ledger, вам сначала нужно предоставить ему ваш текущий баланс. Вы можете сделать это, вычитая то, что у вас есть и что вы должны, из счета Капитала. Например, это начальный баланс человека с несколькими Активами и Обязательствами:

2022/02/10* Начальный баланс  
    Активы:Биткойн:Сбережения                     0.045 BTC  
    Активы:Биткойн:Текущий счет               0.00050712 BTC  
    Активы:Фиат:Текущий счет                   15,000.00 PHP  
    Активы:Фиат:Сбережения                   255,944.00 PHP  
    Обязательства:Фиат:Автокредит            -450,000.00 PHP  
    Обязательства:Фиат:Кредит к оплате        -5,000.00 PHP  
    Обязательства:Фиат:Ипотека           -755,831.34 PHP  
    Капитал:Начальный баланс

Структура начальной записи Ledger аналогична приведенному выше примеру с одним ключевым отличием. Здесь мы добавили звездочку перед заголовком записи, чтобы сообщить Ledger, что эта транзакция уже “очищена”. Это означает, что Ledger может добавлять и вычитать из этих счетов.

Проверьте ваш текущий баланс

После завершения вы можете проверить, правильно ли Ledger обнаруживает ваш файл.

  1. Для этого вы можете нажать Control + C, Control + O, Control + R. Это заставит режим Ledger сгенерировать отчет для вас.
  2. Введите bal, чтобы отобразить текущий баланс.

Пример баланса

  1. Это создаст иерархию всех счетов, которые вы добавили в свой файл Ledger. Все они должны в итоге составлять ноль в последней строке.

Добавление новых транзакций

После этого вы можете добавить новые транзакции в свой файл ledger.

  1. Вы можете сделать это, нажав Control + C, Control + A. Это сообщит режиму Ledger, что вы хотите создать новую транзакцию.
  2. Затем он спросит вас о дате, которую вы хотите установить для этой транзакции. Это полезно, если вы выписываете чеки, которые будут очищены только после определенной даты. В моем случае я хочу использовать текущую дату, поэтому я нажму Enter здесь.

Дата новой транзакции

  1. Затем режим Ledger спросит вас о названии ранее зарегистрированной транзакции. Вы можете использовать эту функцию, если вы делаете периодические платежи и просто хотите скопировать предыдущую транзакцию. В моем случае я хочу создать новую транзакцию, поэтому я также нажал Enter здесь.

Предыдущие транзакции

  1. После этого режим Ledger создаст новую пустую строку с текущей датой. Вы можете затем добавить транзакцию, которую хотите сделать отсюда. Например, я добавил следующую транзакцию после моего начального баланса:
2022/02/10* Начальный баланс  
   Активы:PHP:Текущий счет                     5,000.00 PHP  
   Активы:PHP:Сбережения                     10,000.00 PHP  
   Обязательства:PHP:Кредит к оплате         -5,000.00 PHP  
   Капитал:Начальный баланс  
  
2022/02/11 Моя первая транзакция  
   Расходы:Еда:Закуска                       250.00 PHP  
   Активы:PHP:Текущий счет                      -250.00 PHP

Пример новых транзакций

Также читайте: 7 лучших читателей USENET для Linux

Генерация базовых отчетов

  1. Как обсуждалось выше, вы можете нажать Control + C, Control + O, Control + R для генерации отчета. Кроме bal, вы также можете использовать ряд других команд для генерации различных отчетов из ledger.
  2. Например, вы можете ввести account и имя счета, чтобы создать отчет по счету для конкретной категории. В моем случае я ввел “Активы”, чтобы создать отчет для своей категории активов.

Отчет по активам

  1. С другой стороны, вы можете ввести payee, чтобы показать все транзакции с заголовком, содержащим предоставленную вами строку. Например, я могу ввести “закуска”, чтобы отобразить только все транзакции со словом закуска.

Получатель закуски

  1. Наконец, вы можете ввести reg, чтобы создать отчет реестра всего ledger. Это более детализированный отчет о балансе, где Ledger отслеживает каждое товарное движение и как они все балансируют.

Пример реестра

Поздравляем! Теперь вы знаете, как использовать Emacs для помощи в отслеживании ваших финансов. Вы также узнали о программе Ledger и о том, как вы можете использовать ее для создания детализированных отчетов о вашем финансовом состоянии.

Также читайте: 5 полезных пакетов Emacs для повышения продуктивности

Часто задаваемые вопросы

1. Ledger выдает ошибку, что мой ledger не сбалансирован. Что я сделал не так?

Это может быть связано с рядом проблем. Однако наиболее распространенной является то, что вы забыли закрыть транзакцию в ledger. Один из способов исправить это — проверить, есть ли транзакции, которые не имеют отрицательного значения.

Отрицательное значение в Ledger означает, что вы берете сумму с счета. С другой стороны, положительное значение означает, что вы добавляете к нему. Эти два значения представляют собой поток активов, и они необходимы для балансировки ваших счетов в Ledger.

Это означает, что для каждой транзакции, которую вы будете делать в Ledger, вам нужно иметь положительное и отрицательное значение.

2. Можно ли использовать Ledger только с реальными активами?

Совсем нет. Как обсуждалось выше, все счета, используемые в Ledger, совершенно произвольны. Это означает, что, хотя примеры в этом руководстве указывают на реальные активы, вы также можете использовать Ledger для отслеживания виртуальных активов.

Например, это отрывок из ledger, который отслеживает активы в популярной MMO игре EVE Online:

2022/01/04 Прибыль от предприятия  
      Основной:Активы:Жидкие:ISK            150,000,000.00 ISK  
      Альт 1:Доход:Добыча руды           -10,000,000.00 ISK  
      Альт 1:Доход:Торговля на станции      -40,000,000.00 ISK  
      Альт 2:Доход:Данные (0.0)-100,000,000.00 ISK  
  
2022/01/07 Расходы на содержание  
      Альт 1:Расходы:Страхование корабля          10,000.00 ISK  
      Альт 2:Расходы:Новый корабль            53,450,000.00 ISK  
      Основной:Активы:Жидкие:ISK            -53,460,000.00 ISK

3. Можно ли изменить порядок транзакций, как в банковской выписке?

Да и нет. Вы можете изменить порядок транзакций в отчетах, которые создает Ledger. Однако вы не можете изменить порядок транзакций в вашем файле Ledger. Чтобы сделать первое, вы можете нажать Shift + R, находясь в буфере отчета, чтобы изменить его порядок.

Кредит изображения: Unsplash