Emacsでのレジャーモードを使った財務管理方法

Emacs Ledger 00 Featured Image

レジャーモードは、コマンドライン会計プログラムであるLedgerのためのEmacsのパッケージです。これにより、Emacsユーザーはお気に入りのテキストエディタからLedgerの強力な機能を利用することができます。

目次

  • なぜEmacsでレジャーモードを使用して簿記を行うのか?
  • Ledgerの動作
  • Ledgerでのアカウントカテゴリの定義
  • Ledgerのインストール
  • Emacsでのレジャーモードの使用
  • よくある質問

さらに読む: Doom Emacsとは何か、そしてそのインストール方法

なぜEmacsでレジャーモードを使用して簿記を行うのか?

レジャーモードはシンプルで直感的に使用できます。自動的に財務をバランスさせ、記録に問題がある場合は通知します。また、支出と収入源を分類することができ、これらはパッケージ自体からソートおよび分析できます。

Emacs Ledger 02 Ledger Mode Report Example

簡単に言えば、レジャーモードはEmacsを生産性スイートとして使用する人にとって素晴らしい追加機能です。スプレッドシートの必要性を排除し、他のEmacsの体験の中でレジャーデータを使用することを可能にします。

Emacsは相互運用性の考え方で動作します。これは、Emacs内で生成されたデータは、他のパッケージに再利用できることを意味します。そのため、レジャーモードはユーザーがレジャーのために書いたデータをEmacs内の他のツールと作成および結合できるようにします。

Emacs Ledger 03 Emacs Interoperability

これにより、たとえば、アーカイブされたメールとレジャーファイルにリンクするOrgモード文書を作成できます。それだけでなく、レジャーエントリをメールに簡単にコピーしたり、その逆も可能です。これはすべて、レジャーモードのエントリがプレーンテキストであり、Emacsがそれを任意のバッファに簡単に移動できるためです。

Emacs Ledger 04 Interoperability Example

さらに読む: Emacs内でのメールの使用方法

Ledgerユーティリティ

上記で説明したように、EmacsのレジャーモードはLedgerコマンドラインユーティリティにアクセスする方法に過ぎません。それに伴い、Ledgerプログラムが何であるか、そしてそれが何をできるのかを知ることが重要です。

さらに読む: Magitを使用してEmacsでGitを管理する方法

Ledgerの動作

Ledgerはプレーンテキストの元帳を読み取り、それから会計報告を作成するシンプルなプログラムです。従来の簿記プログラムとは異なり、データベースファイルを作成および変更しません。これにより、Ledgerは財務状況を把握するためのスリムで柔軟なソリューションとなります。

Emacs Ledger 05 Traditional Vs Ledger

Ledgerがこれを可能にする方法は、ファイル内の各エントリが特定の形式に従うことを期待していることです。以下の例を考えてみましょう:

2022/02/16 Expenses  
    Expenses:Food:Lunch                          140 PHP  
    Expenses:Food:Snack                          50  PHP  
    Assets:Fiat:Cash                            -190 PHP

ここで、Ledgerはプレーンテキストファイルから3つのことを期待しています:

  • 日付と帳簿エントリの名前を指定するタイトル行。この場合、2月16日にExpensesエントリを追加しました。
  • お金がどこから来てどこに行ったかを示すアカウントのグループ。この場合、現金資産を使用し、それを費用アカウントに移動しました。
  • 移動したお金の価値。ここでは、昼食とスナックのために現金資産を2回移動しました。ただし、これはすべて、1日の終わりに私の資産から一度に引き落とされました。

これらの3つの基本的な前提により、Ledgerをあらゆる状況に簡単に適応させることができます。たとえば、Ledgerは通貨と商品の両方を扱うことができます。これにより、支出習慣を追跡するだけでなく、投資を追跡する人々にも役立ちます。

さらに読む: Elfeedを使用してEmacsでRSSを使用する方法

Ledgerでのアカウントカテゴリの定義

レジャーの各取引のカテゴリは完全に任意であることに注意することが重要です。ただし、個人の財務を追跡する一般的な慣行は、5つの部分に分けることができます:

  • 資産アカウントは、あなたが所有する商品や通貨です。これは単一の通貨または通貨、株式、アイテムの在庫の混合である可能性があります。
  • 費用アカウントは、あなたが資産で購入した商品です。
  • 収入アカウントは、あなたの富の源からお金を引き出す場所です。たとえば、受け取る給与をこのアカウントに添付できます。
  • 負債アカウントは、現在あなたが負っているすべての商品を割り当てる場所です。
  • 資本アカウントは、現在の純資産を決定するために使用できる特別なアカウントです。これは、Ledgerでのオープニングバランスを作成する際に一般的に使用されます。

各取引をさらに指定するには、これらの5つのカテゴリの後にコロン(:)を追加できます。たとえば、Expenses:Food:Lunchというラベルの取引は、3階層の階層で表すことができます。

Emacs Ledger 06 Heirarchy Sample

さらに読む: Emacsを改善するために使用できる5つの隠れた機能

Ledgerのインストール

これを念頭に置いて、Ledgerのインストールは簡単です。ほとんどのLinuxディストリビューションのリポジトリにあります。たとえば、DebianやUbuntuではaptを使用してledgerをインストールできます:

sudo apt install ledger

Fedoraではdnfを使用できます:

sudo dnf install ledger

Arch Linuxではpacmanを使用できます:

sudo pacman -S ledger

私の場合、Debianを使用しているので、aptを通じてledgerをインストールします。

Emacs Ledger 07 Installing Ledger 1

さらに読む: EmacsでERCを使用してIRCを使用する方法

Emacsでのレジャーモードの使用

EmacsでLedgerプログラムを使用するには、そのコンパニオンパッケージであるレジャーモードをインストールする必要があります。このパッケージはデフォルトのELPAリポジトリにあります。そのため、Emacsのパッケージマネージャーを通じてすでにインストールできます。

Emacs Ledger 08 Elpa Website

  1. それを行うには、Alt + Xを押してpackage-installと入力します。これにより、Emacsに追加したいパッケージを入力できるコマンドバッファが表示されます。ledger-modeと入力します。
  2. そこから、Emacsはパッケージのソースコードをダウンロードしてコンパイルします。その後、レジャーモードを通じてEmacsでLedgerを使用できるようになります。

Emacs Ledger 09 Ledger Mode Installed

Emacsでの最初のレジャーの作成

デフォルトでは、Emacsが.ledgerで終わるファイルを開くと、レジャーモードが自動的に有効になります。

  1. そのため、Control + X、Control + Fを押してEmacsで独自のレジャーファイルを作成し始めることができます。

  2. これにより、作成したいファイルの名前を入力できるバッファが開きます。example.ledgerと入力します。

  3. その後、Emacsは現在のディレクトリに「example.ledger」ファイルを作成し、それを開きます。ここから、取引でレジャーファイルを埋め始めることができます。

さらに読む: Emacsで美しいBeamerスライドを作成する方法

Emacsでのオープニングバランスの作成

Ledgerで財務を追跡し始めるには、まず現在の残高を提供する必要があります。これは、現在の資産と負債を差し引くことで行えます。たとえば、これは資産と負債を持つ人のオープニングバランスです:

2022/02/10* Opening Balance  
    Assets:Bitcoin:Savings                     0.045 BTC  
    Assets:Bitcoin:Checking               0.00050712 BTC  
    Assets:Fiat:Checking                   15,000.00 PHP  
    Assets:Fiat:Savings                   255,944.00 PHP  
    Liabilities:Fiat:Car Loan            -450,000.00 PHP  
    Liabilities:Fiat:Credit Payable        -5,000.00 PHP  
    Liabilities:Fiat:Home Loan           -755,831.34 PHP  
    Equity:Opening Balance

オープニングレジャーエントリの構造は、上記の例と似ていますが、1つの重要な違いがあります。ここでは、Ledgerにこの取引がすでに「クリア」であることを伝えるために、エントリタイトルの前にアスタリスクを追加しました。これは、Ledgerがこれらのアカウントから追加および差し引くことができることを意味します。

現在の残高を確認する

完了したら、Ledgerがファイルを正しく検出するかどうかをテストできます。

  1. それを行うには、Control + C、Control + O、Control + Rを押します。これにより、Ledgerモードがレポートを生成します。
  2. balと入力して、実行中の残高を表示します。

Emacs Ledger 11 Balance Sample

  1. これを行うと、Ledgerファイルに追加したすべてのアカウントの階層が生成されます。これらはすべて、最終行で合計がゼロになるはずです。

新しい取引を追加する

これが完了したら、レジャーファイルに新しい取引を追加できます。

  1. Control + C、Control + Aを押すことで、Ledgerモードに新しい取引を作成したいことを伝えます。
  2. その後、この取引の日付を尋ねられます。これは、特定の日付の後にクリアされる小切手を発行する場合に便利です。私の場合、現在の日付を使用したいので、ここでEnterを押します。

Emacs Ledger 12 New Transaction Date

  1. そこから、Ledgerモードは以前に記録された取引の名前を尋ねます。この機能は、定期的な支払いを行っていて、以前の取引をコピーしたい場合に使用できます。私の場合、新しい取引を作成したいので、ここでもEnterを押しました。

Emacs Ledger 13 Previous Transactions

  1. これにより、Ledgerモードは現在の日付で新しい空白行を作成します。ここから、実行したい取引を追加できます。たとえば、オープニングバランスの後に次の取引を追加しました:
2022/02/10* Opening Balance  
   Assets:PHP:Checking                     5,000.00 PHP  
   Assets:PHP:Savings                     10,000.00 PHP  
   Liabilities:PHP:Credit Payable         -5,000.00 PHP  
   Equity:Opening Balance  
  
2022/02/11 My First Transaction  
   Expenses:Food:Snack                       250.00 PHP  
   Assets:PHP:Checking                      -250.00 PHP

Emacs Ledger 14 Sample New Transactions

さらに読む: Linux用の7つの優れたUSENETリーダー

基本レポートの生成

  1. 上記で説明したように、Control + C、Control + O、Control + Rを押してレポートを生成できます。ただし、balの他にも、Ledger内で異なるレポートを生成するためのいくつかの他のコマンドを使用できます。
  2. たとえば、accountとアカウント名を入力して、特定のカテゴリのアカウントステートメントを作成できます。私の場合、「Assets」と入力して、資産カテゴリのステートメントを作成しました。

Emacs Ledger 15 Asset Statement

  1. 一方、payeeと入力して、提供した文字列でタイトル付けされたすべての取引を表示できます。たとえば、「snack」と入力して、スナックという単語を含むすべての取引を表示できます。

Emacs Ledger 16 Payee Snack

  1. 最後に、regと入力して、全体のレジャーの登録レポートを生成できます。これは、Ledgerが各商品を追跡し、それらがどのようにバランスを取るかを示すより詳細な残高レポートです。

Emacs Ledger 17 Reg Sample

おめでとうございます!これで、Emacsを使用して財務を追跡する方法がわかりました。また、Ledgerプログラムについて学び、財務状況に関する詳細なレポートを作成する方法も学びました。

さらに読む: 生産性を向上させるための5つの便利なEmacsパッケージ

よくある質問

1. Ledgerが私のレジャーがバランスしていないというエラーを出しています。何が間違っていたのでしょうか?

これはいくつかの問題が原因である可能性があります。ただし、最も一般的なものは、Ledgerで取引を閉じるのを忘れたことです。これを修正する1つの方法は、負の値を持たない取引がないか確認することです。

Ledgerにおける負の値は、アカウントから金額を引き出すことを意味します。一方、正の値はそれに追加することを意味します。これらの2つの値は資産の流れを表し、Ledgerでアカウントのバランスを取るために必要です。

これにより、Ledgerで行うすべての取引には、正の値と負の値が必要です。

2. Ledgerは実世界の資産でのみ使用できますか?

まったくありません。上記で説明したように、Ledgerで使用されるすべてのアカウントは完全に任意です。これは、このガイドの例が実世界の資産を指している一方で、Ledgerを使用して仮想資産を追跡することもできることを意味します。

たとえば、これは人気のMMOゲームEVE Onlineで資産を追跡するレジャーの抜粋です:

2022/01/04 Venture Profits  
      Main:Assets:Liquid:ISK            150,000,000.00 ISK  
      Alt 1:Income:Ore Mining           -10,000,000.00 ISK  
      Alt 1:Income:Station Trading      -40,000,000.00 ISK  
      Alt 2:Income:Data Running (0.0)-100,000,000.00 ISK  
  
2022/01/07 Upkeep Costs  
      Alt 1:Expenses:Ship Insurance          10,000.00 ISK  
      Alt 2:Expenses:New Ship            53,450,000.00 ISK  
      Main:Assets:Liquid:ISK            -53,460,000.00 ISK

3. 銀行明細書のように取引の順序を逆にすることは可能ですか?

はいといいえ。Ledgerが作成するレポート内で取引の順序を逆にすることはできます。ただし、Ledgerファイル内の取引の順序を逆にすることはできません。前者を行うには、レポートバッファ内でShift + Rを押してその順序を逆にします。

画像クレジット: Unsplash