账本工具
一个针对 Ledger CLI 的 SublimeText 插件
详细信息
安装次数
- 总计 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 |
说明文件
账本工具 - 一个针对 Ledger CLI 的 SublimeText 插件
账本工具是一个Ledger CLI 插件,针对 Sublime Text。
功能
- 语法定义
- 自动对齐金额
- 使收款人和账户插入更加简单
- 自动检测未清算条目
- 自动交易通知
安装
最简单的方法是使用软件包控制。搜索 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.ledger
和 current.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 交易不会被考虑,并且我得到与银行相同的余额。这有助于我确保不犯错误。当交易出现在我的银行余额中时,我只是添加一个星号。 同时,该插件会突出显示尚未清账的条目。 这有助于立即看到哪些条目仍然待处理。
注释
- 默认情况下,Ledger 考虑所有条目,即使是未清账的条目。因此,
ledger balance Assets --real
将考虑 Forno Gusto 交易。
- 如果您不希望有此功能,请按如下修改
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 许可协议分发。
您有权
- 分享 — 以任何介质或格式复制和重新分配材料
- 改编 — 混合、转换和在材料基础上进行构建
根据以下条款
归属 — 您必须提供适当的信用,提供许可协议的链接,并指出是否进行了更改。您可以在任何合理的方式下这样做,但不得以任何方式表示许可方支持您或您使用的方式。
非商业性用途 — 您不得将材料用于商业目的。
相同方式共享 — 如果您混合、转换或在材料基础上进行构建,您必须以相同许可证分发您的贡献。