V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
JSDTTT
V2EX  ›  分享创造

我 Vibe Coding 了一个 Fava 预算可视化增强插件

  •  
  •   JSDTTT · 1 天前 · 440 次点击

    用了三年 Beancount ,从 MoneyWiz 转过来的。 有一说一,Beancount 记账是爽,但 Fava 自带的预算展示真的是……一言难尽。

    最受不了两点:

    1. 没法滚存:上个月省下的钱,下个月就归零了?这不科学。我想攒几个月的零花钱买个大件都看不出来。
    2. 太干巴:怀念 MoneyWiz 那种红红绿绿的进度条,一眼就能看出来这个月还能浪多久。

    找了一圈没得趁手的,干脆自己动手。 最近 Vibe Coding 把这个 fava_budget_freedom 给搓出来了。

    主要就为了解决这几个痒点

    • 预算滚存 (Rollover):这是刚需。我在语法里加了个 rollover 开关,上个月没花完的额度,自动累积到这个月。
    • 进度条回归:简单粗暴,就是看图。带时间参考线,月过半,预算花了一多半,那就该剁手了。
    • 兼容折旧摊销 (Amortize):如果你用 beancount_periodic.amortize 做大额折旧摊销,这插件能自动识别,不会把分期生成的条目算进预算里,而是将一次性开支算进去,避免产生没怎么花钱的幻觉。

    预算可视化截图

    用法很简单,继续使用 fava 的 预算语法,扩展了一些:

    ; 1. 开启插件
    2025-01-01 custom "fava-extension" "fava_budget_freedom"
    
    ; 2. 定义预算(支持通配符 *,这比原生的好用)
    ; 比如:每月吃的预算 2000 ,开启滚存(攒下的钱下月接着吃)
    2025-01-01 custom "budget" "Expenses:Food:*" "monthly" "2000 USD" "rollover"
    
    ; 比如:房租(配合 amortize 插件用,自动处理分期逻辑,不重复统计)
    2025-01-01 custom "budget" "Expenses:Home:Rent" "yearly" "12000 USD"
    
    

    项目地址: https://github.com/Leon2xiaowu/fava_budget_freedom

    代码属于 Vibe Coding 产物,主打一个能跑就行,功能反正我是用爽了。 各位 Beancount 道友如果也有预算焦虑,可以试一下。有 bug 欢迎提,或者直接 PR 帮我修修车。🙈

    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   798 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 20:25 · PVG 04:25 · LAX 12:25 · JFK 15:25
    ♥ Do have faith in what you're doing.