ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

账本工具

一个针对 Ledger CLI 的 SublimeText 插件

详细信息

  • 1.1.3
  • github.com
  • github.com
  • 3年前
  • 1小时前
  • 4年前

安装次数

  • 总计 406
  • Win 113
  • Mac 198
  • Linux 95
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 1 2 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1

说明文件

源文件
raw.githubusercontent.com

账本工具 - 一个针对 Ledger CLI 的 SublimeText 插件

账本工具是一个Ledger CLI 插件,针对 Sublime Text。

LedgerTools demo

功能

  • 语法定义
  • 自动对齐金额
  • 使收款人和账户插入更加简单
  • 自动检测未清算条目
  • 自动交易通知

安装

最简单的方法是使用软件包控制。搜索 LedgerTools 软件包并安装。

其他解决方案:只需将其克隆到软件包目录中。

git clone https://github.com/etienne-monier/LedgerTools.git ~/.config/sublime_text/Packages/LedgerTools

关于我如何维护我的账本的几点说明

我不喜欢把所有用户交易与所有收款人、账户、自动交易定义混合在一起。我通常这样做:定义一个主要文件 main.ledger,其内容是

; This is main.ledger

include definitions.ledger
include current.ledger

在同一个目录中,我还设有另外两个文件 definition.ledgercurrent.ledger。第一个文件保留所有命令和自动交易。

; This is definition.ledger

account First account
account Second account

payee A payee

tag aTag

= /aReGeX/
    First account     10 EUR
    Second account   -10 EUR

第二个文件保留所有用户交易。

; This is current.ledger

04/02/2021 A payee
    First account     10 EUR
    Second account   -10 EUR

这种区别很重要,因为程序在 definition.ledger 中查找账户、收款人和自动交易定义来运行。应在软件包设置中提供此文件位置.

注意:这并不意味着你不能在单个文件中混合这两者,但这意味着你必须将此单个文件定义为设置中的定义文件。

自动对齐金额

该软件包提供了一个 Sublime 命令 ledger_align_amounts,通过 dot_pos 键在设置中指定的位置对齐所有金额中的点。此默认位置为 58。

关联的快捷键是 Ctrl+Shift+q

只要满足以下条件,金额也可以自动对齐:- automatic_amount_alignment 设置设置为 true(这是默认设置),- 当前文件扩展名在 valid_ledger_file_ext 设置中指定。

简单的收款人和账户插入

它是如何工作的?

如果您像我一样,定义了收款方和账户以保持一致的日记账,您可能有一个包含大量类似以下定义的文件:

account Expenses:Books
payee My Favorite Book Shop

account Expenses:Food
payee The Amazing French Restaurant

然后,您只需指定作为 definition_filename 设置的文件名。然后,定义了两个默认的键映射:使用 Ctrl+Shift+a 在光标位置插入账户,使用 Ctrl+Shift+z 插入收款方。将弹出一个快速面板,您可以输入一些文字来搜索所需内容。

那么虚拟账户怎么办呢?

如果您像我一样也使用 Ledger 进行预算(例如 You Need A Budget),那么您可能有一些与预算相关的虚拟账户。

account Budget:Books
account Budget:Food

那么不用担心,预算账户在插入账户时也会提供,一旦插入,括号将自动插入。

2020/07/24 * My Favorite Book Shop
    Expenses:Books                      10 EUR
    Assets:Checking                    -10 EUR
    [Equity:Budget]                     10 EUR
    [Budget:Books]                     -10 EUR

自动检测未清算条目

该插件假设您使用已清账项系统。

为了解释这一点,考虑以下条目列表:

2020/07/24 * My Favorite Book Shop
    Expenses:Books                      10 EUR
    Assets:Checking

2020/07/25 * Mr Jones
    Expenses:Books                       5 EUR
    Assets:Cheking

2020/07/25 Forno Gusto
    Expenses:Food                        9.50 EUR
    Assets:Cheking

在这个列表中,前两个条目使用了星号在收款方之前表示已清账。最后一个(Forno Gusto)未清账。这可能表示任何您想表示的内容。在我的例子中,我使用它来表示尚未出现在我的在线银行账单上的交易,这样,当我键入

ledger balance Assets --real --cleared

(请注意 --cleared 选项),Forno Gusto 交易不会被考虑,并且我得到与银行相同的余额。这有助于我确保不犯错误。当交易出现在我的银行余额中时,我只是添加一个星号。 同时,该插件会突出显示尚未清账的条目。 这有助于立即看到哪些条目仍然待处理。

注释

  1. 默认情况下,Ledger 考虑所有条目,即使是未清账的条目。因此,
ledger balance Assets --real

将考虑 Forno Gusto 交易。

  1. 如果您不希望有此功能,请按如下修改 Ledger.sublime-syntax 文件 的以下行(70-72):
# Non-cleared entry
        - match: '\s+({{payee}})'
          captures:
            1: invalid

# Non-cleared entry
        - match: '\s+({{payee}})'
          captures:
            1: markup.italic.desc

自动交易通知

再次,我通常使用自动交易来维护我的预算。为此,我在定义文件中定义了许多这样的交易,如

= /Depenses:Food/
    [Equity:Budgets]                                   1
    [Assets:Budgets:Food]                             -1

current.ledger 文件中定义的用户交易,隐藏了自动交易,将通知隐藏交易的详细信息。

作者和许可协议

此插件由 Etienne Monier 编写。

它根据 Creative Commons BY-NC-SA 4.0 许可协议分发。

您有权

  • 分享 — 以任何介质或格式复制和重新分配材料
  • 改编 — 混合、转换和在材料基础上进行构建

根据以下条款

  • 归属 — 您必须提供适当的信用,提供许可协议的链接,并指出是否进行了更改。您可以在任何合理的方式下这样做,但不得以任何方式表示许可方支持您或您使用的方式。

  • 非商业性用途 — 您不得将材料用于商业目的。

  • 相同方式共享 — 如果您混合、转换或在材料基础上进行构建,您必须以相同许可证分发您的贡献。