基于柳比歇夫时间统计法设计的obsidian 时间管理插件

程序员费曼大约 4 分钟Obsidian插件开发TypeScript

Obsidian Time Tracking

一个简洁的 Obsidian 时间追踪插件,通过快捷键自动追踪任务耗时。

💡 设计理念:柳比歇夫时间统计法

本插件的设计灵感来源于苏联昆虫学家 亚历山大·柳比歇夫(Alexander Lyubishchev, 1890-1972)的时间统计方法。

柳比歇夫从 1916 年开始,坚持记录自己每天的时间使用情况,持续了 56 年,直到去世。他的方法被格拉宁在《奇特的一生》一书中详细记录,核心理念包括:

  • 记录一切时间开销:像记账一样记录时间,了解时间都去哪了
  • 事后统计而非事前计划:不是严格的日程表,而是客观记录实际发生的事
  • 简洁的格式:只记录开始时间和持续时长,不需要复杂的分类系统
  • 长期坚持:日积月累,形成对自己时间使用的深刻认知
  • 自我认知:通过统计发现自己真正的时间使用规律

本插件正是基于这一理念设计:用最简单的方式记录任务的开始时间和耗时,帮助你建立对时间的感知,发现自己的时间规律。

功能特性

  • ⌨️ 使用 Cmd/Ctrl + Enter 快捷键切换任务状态
  • 🖱️ 点击 DOING 状态的复选框自动完成时间统计
  • ⏱️ 自动追踪任务耗时
  • 🕐 显示任务开始时间(如 DOING 10:32 任务名称
  • 🔄 智能替换已存在的时间戳(将创建时间替换为开始时间)
  • 📊 智能时长显示(秒/分钟/小时)
  • 🔄 支持任务状态循环切换
  • ✅ 支持原生 Markdown 复选框(- [ ] / - [x]
  • 🎯 简洁设计,不干扰其他插件

使用方法

基本流程

  1. 创建普通列表项

    - 实现时间追踪功能
    
  2. 添加 TODO 标记 - 按 Cmd/Ctrl + Enter

    - TODO 实现时间追踪功能
    
  3. 开始计时 - 再次按 Cmd/Ctrl + Enter

    - DOING 10:32 <!-- ts:2026-01-19T10:00:56|source:todo --> 实现时间追踪功能
    

    注:10:32 是任务开始时间,方便查看每个任务的开始时刻

  4. 完成任务 - 再次按 Cmd/Ctrl + Enter点击复选框

    - DONE 10:32 实现时间追踪功能 5分钟
    

    注:完成后保留开始时间 10:32 和耗时 5分钟

    💡 新功能:在实时预览模式下,可以直接点击 DOING 状态的复选框来完成任务,插件会自动计算并添加耗时!

  5. 移除状态(可选)- 再次按 Cmd/Ctrl + Enter

    - 10:32 实现时间追踪功能
    

    注:移除状态后保留开始时间,方便查看任务创建/开始时刻

状态流转

- task  →  - TODO  →  - DOING 10:32  →  - DONE 10:32 5分钟  →  - 10:32 task
         (添加标记)  (开始计时)        (显示耗时)            (保留时间戳)

复选框支持

插件也支持原生 Markdown 复选框格式:

  1. 创建复选框

    - [ ] 完成报告
    
  2. 开始计时 - 按 Cmd/Ctrl + Enter

    - DOING 14:25 <!-- ts:2026-01-19T14:25:30|source:checkbox --> 完成报告
    
  3. 完成任务 - 再次按 Cmd/Ctrl + Enter

    - [x] 14:25 完成报告 15分钟
    

    注:完成后保留开始时间和耗时

  4. 移除复选框(可选)- 再次按 Cmd/Ctrl + Enter

    - 14:25 完成报告
    

    注:移除复选框后保留开始时间

时长显示格式

插件会根据任务耗时自动选择合适的单位:

  • 小于 60 秒:显示秒数(例如:30秒
  • 小于 1 小时:显示分钟数(例如:15分钟
  • 大于等于 1 小时:显示小时数(例如:2小时

设置选项

自动追加时长

  • 默认:开启
  • 完成任务时自动在任务末尾追加耗时

时长显示位置

  • 任务末尾(默认):- DONE 任务名称 5分钟
  • 状态后面- DONE 5分钟 任务名称

技术细节

  • 使用 HTML 注释存储开始时间,不影响笔记渲染
  • 完成任务后自动清理 HTML 注释
  • 兼容其他 Obsidian 插件(如闪卡插件)
  • 默认绑定 Cmd/Ctrl + Enter 快捷键

快捷键冲突

如果你安装了其他使用 Cmd+Enter 的插件(如 logseq-todo-compatibility),可能会有冲突。解决方法:

  1. 在 Obsidian 设置 → 快捷键中
  2. 禁用其他插件的 Cmd+Enter 绑定
  3. 或者修改本插件的快捷键为其他组合

安装

手动安装

  1. 下载最新的 main.jsmanifest.json
  2. 在 vault 的 .obsidian/plugins/ 目录下创建 obsidian-time-tracking 文件夹
  3. 将文件复制到该文件夹
  4. 在 Obsidian 设置中启用插件

开发

# 安装依赖
npm install

# 开发模式(监听文件变化)
npm run dev

# 构建生产版本
npm run build

# 部署到 vaults
npm run deploy

# 发布新版本
npm run release

许可证

MIT

作者

lizhifeng