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

Режим Ledger — это пакет в Emacs для командной программы бухгалтерского учета Ledger. Это позволяет пользователям Emacs использовать мощные функции Ledger из удобства их любимого текстового редактора.
Содержание
- Почему стоит использовать режим Ledger и вести бухгалтерию в Emacs?
- Как работает Ledger
- Определение категорий счетов в Ledger
- Установка Ledger
- Использование режима Ledger в Emacs
- Часто задаваемые вопросы
Также читайте: Что такое Doom Emacs и как его установить
Почему стоит использовать режим Ledger и вести бухгалтерию в Emacs?
Режим Ledger прост и интуитивно понятен в использовании. Он автоматически балансирует ваши финансы и уведомляет вас, когда возникает какая-либо проблема с вашими записями. Он также позволяет вам классифицировать ваши расходы и источники дохода, которые затем могут быть отсортированы и проанализированы непосредственно из пакета.

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

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

Также читайте: Как использовать электронную почту в Emacs
Утилита Ledger
Как обсуждалось выше, режим Ledger в Emacs — это всего лишь способ доступа к утилите командной строки Ledger. С этим важно знать, что такое программа Ledger и что она может делать из коробки.
Также читайте: Как управлять Git в Emacs с помощью Magit
Как работает 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.

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

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

Создание вашего первого Ledger в Emacs
По умолчанию режим Ledger автоматически включается, когда Emacs открывает файл, который заканчивается на .ledger.
Таким образом, вы можете начать создание своего файла ledger в Emacs, нажав Control + X, Control + F.
Это откроет буфер, где вы можете ввести имя файла, который хотите создать. Введите
example.ledger.После этого 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 обнаруживает ваш файл.
- Для этого вы можете нажать Control + C, Control + O, Control + R. Это заставит режим Ledger сгенерировать отчет для вас.
- Введите
bal, чтобы отобразить текущий баланс.

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

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

- После этого режим 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
Генерация базовых отчетов
- Как обсуждалось выше, вы можете нажать Control + C, Control + O, Control + R для генерации отчета. Кроме
bal, вы также можете использовать ряд других команд для генерации различных отчетов из ledger. - Например, вы можете ввести
accountи имя счета, чтобы создать отчет по счету для конкретной категории. В моем случае я ввел “Активы”, чтобы создать отчет для своей категории активов.

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

- Наконец, вы можете ввести
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 ISK3. Можно ли изменить порядок транзакций, как в банковской выписке?
Да и нет. Вы можете изменить порядок транзакций в отчетах, которые создает Ledger. Однако вы не можете изменить порядок транзакций в вашем файле Ledger. Чтобы сделать первое, вы можете нажать Shift + R, находясь в буфере отчета, чтобы изменить его порядок.
Кредит изображения: Unsplash