告别糊涂账!用 Beancount 让你的钱袋子一目了然!
嘿,各位理财小能手们,你们有没有过这样的烦恼:月底一看银行卡余额,心想“我的钱都去哪儿了?” 😤 各种消费软件、银行App,数据七零八碎,根本搞不清自己的财务状况?别担心,今天我要给大家介绍一个超酷的工具——Beancount!
Beancount 是什么?
简单来说,Beancount 就是一个命令行复式记账工具。听到“命令行”和“复式记账”是不是有点懵?别怕,听我慢慢道来!
复式记账:它可不是那种“收入减支出等于结余”的流水账。复式记账就像给你的每一笔钱都找到了“来龙去脉”。比如,你花 50 块钱买了一杯咖啡,这笔钱不仅从你的“银行账户”里出去,还会跑到你的“餐饮支出”账户里。一进一出,记录得清清楚楚,保证不会有钱悄悄溜走!
命令行:别被这个词吓到!它只是意味着 Beancount 是一个基于文本文件的记账系统。你的所有账目都写在一个普通的 .bean
文件里,用代码编辑器就能打开。这有什么好处呢?
- 数据都在你手里! 不用担心某个 App 突然倒闭,你的数据就没了。你的账本永远是你的。
- 版本控制超方便! 可以用 Git 来管理你的账本文件,每一笔修改都有记录,想恢复到哪个版本都行。
- 隐私性极佳! 你的财务数据不会上传到任何云端服务器。
- 扩展性强大! 社区里有很多插件,可以帮你实现各种骚操作。
所以,Beancount 不仅能帮你记清每一笔账,还能让你真正掌控自己的财务数据!它不像那些花里胡哨的 App,Beancount 追求的是极致的清晰和掌控感!
为什么选择 Beancount?
- 极简纯粹,专注数据本身: Beancount 没有花哨的界面,只有纯粹的文本数据。这让你能更专注于分析你的财务流向,而不是被各种图表和动画分心。
- 可定制性强: 你可以根据自己的需求创建各种账户,比如“零食账户”、“旅游基金账户”等等,灵活度爆表。
- 强大的报告功能: 虽然是文本文件,但 Beancount 可以生成各种专业的财务报表,让你对自己的资产负债、收入支出一目了然。
- 社区活跃,文档丰富: 有问题不用怕,强大的社区和完善的文档会帮你解决所有难题。
Beancount 极简上手教程:你的第一个账本!
好了,说了这么多,是不是迫不及待想试试了?别急,我来教你如何开始你的第一个 Beancount 账本!
步骤一:安装 Beancount
首先,你需要安装 Python。Beancount 是基于 Python 的。
如果你已经安装了 Python,打开你的命令行终端(Windows 用户是 CMD 或 PowerShell,macOS/Linux 用户是 Terminal),输入:
搞定!就是这么简单!
步骤二:创建你的第一个账本文件
找个你喜欢的地方,创建一个文本文件,比如叫 my_accounts.bean
。然后用你喜欢的代码编辑器(比如 VS Code、Sublime Text)打开它。
步骤三:开始写账!
现在,我们要在 my_accounts.bean
文件里写一些最基本的配置和第一笔账。
1. 设置你的币种和日期格式:
在文件的开头,写上:
2. 定义你的账户:
就像银行账户一样,你需要定义你的 Beancount 账户。账户名通常用大写字母开头,并且用冒号 :
来表示层级。
这里的日期 2023-01-01
表示这个账户从那天开始生效。
3. 记下你的第一笔交易!
现在,我们来记一笔你发工资的交易:
解析一下这笔交易:
2024-07-25
:交易发生的日期。*
:表示这是一笔已清算的交易(未清算的用!
)。"公司"
:付款人/收款人(可选)。"发放工资"
:交易的描述。Assets:Bank:ICBC 10000.00 CNY
:你的工商银行账户增加了 10000 元人民币。Income:Salary -10000.00 CNY
:你的工资收入账户增加了 10000 元人民币(复式记账中,收入账户的增加表示借方,所以此处为负数,表示资金流入)。
再来一笔消费:买咖啡!
这笔交易表示:你的外出就餐支出增加了 30 元(以负数表示支出),你的现金账户减少了 30 元。
记住,复式记账的原则是:所有账户的借方总和必须等于贷方总和。简单来说,每一笔交易,资金流出和流入的金额必须相等,才能保持平衡。所以,在 Beancount 里,每一笔交易的借方和贷方总和必须为零。
步骤四:查看你的账本
保存你的 my_accounts.bean
文件。然后,在命令行终端中,切换到你文件所在的目录,输入:
如果没有报错信息,恭喜你,你的账本是有效的!
你还可以启动 Beancount 的 Web 界面来查看你的报表:
这会在你的浏览器中打开一个网页,你可以看到你的账户余额、资产负债表、收入支出表等等。
更多骚操作
- 标签 (Tags): 你可以给交易打标签,比如
#旅行
,这样方便以后按标签筛选和统计。 - 元数据 (Metadata): 在交易下面添加
key: "value"
格式的元数据,记录更多信息。 - 断言 (Assertions): 定期检查某个账户的余额是否和你实际的余额一致,防止记错账。