我的习惯追踪工作流

起因

读完《掌控习惯》这本书,一直想结合Obsidian来实践《掌控习惯》里面关于培养习惯的理念:

  • 让它显而易见
  • 让它有吸引力
  • 让它简单易行
  • 让它令人愉悦

选择习惯

经过简单的思考,我选择了几个对我来说比较希望培养的习惯:

  • 读书
  • 写笔记
  • 健身

使用插件

  • Daily Notes:每个习惯的 打卡/计分 主要在日志里记录
  • DB folder:方便 打卡/计分 操作
  • Dataview:按需汇总习惯数据
  • Periodic Notes: 周志,集合Dataview按周回顾与总结习惯执行情况
  • Heatmap Calendar:热图,按年展示各习惯打卡情况。

步骤

  1. 日志:
    截图_16647836131546
  2. 周志:
  3. DB folder 打卡与计分
  4. Heatmap Calender

总结

  • 让它显而易见:每天打开Obsidian,就看到我的习惯热图
  • 让它有吸引力:阅读和写笔记能建立自己的知识体系;健身能让自己保持身材不发福,增加肌肉力量减少受伤。
  • 让它简单易行:先有一个习惯,再优化习惯。开始时,先从简单,容易执行的习惯开始行动
  • 让它令人愉悦:打卡/计分 会产生完成任务的成就感。热图更是为成就感提供了可视化数据支持。
8 个赞

是滴答滴答提不动刀了吗…你在上面弄了这么多东西,这么多流程,还不如打开一个滴答滴答(doge)

2 个赞

谢谢你的回复。

我目前主要在Obsidian上做知识管理和任务管理,有一些新的想法,如这个贴子说的习惯跟踪,我自然而然就想在Obsidian实现。

在同一个地方管理的其中一个好处是做回顾的时候比较方便。比如每周回顾,下面是我的weekly note,我可以快速看到我的习惯跟踪、新笔记和有更新的笔记等。让我想看日志,或者笔记的时候,直接点击链接就能跳转查看。

当然在某些方面,Obsidian一定不及其他软件,已有封装好的功能和模式,用起来比较简单和方便。但我喜欢Obsidian的其中一个原因是,它没有固定模式,可以按照我的想法随心去搭建适合自己的工作流。花时间去思考怎样最适合自己,对我来说也是一种享受。

如果你对滴答滴答情有独钟,也可以分享你的使用经验,供大家参考。论坛的作用就是分享嘛,不是吗?

5 个赞

嘿,我想要看到你在滴答滴答上是如何做到这些的。

1 个赞

我用的是国际版的滴答,但是功能应该是一样的,这里只讲怎么添加习惯以及查看习惯,因为滴答的功能太多了讲不完。

开启习惯打卡功能

首先我们需要先进入设置打开这个 习惯打卡 的功能
IMG_20221006_120155
接着我们进入功能模块


将习惯打卡拖到启用


当开启了习惯打卡以后页面是这个样子,往左滑动代表着完成,往右滑动可以进入编辑文字页面,可以用来写下今天为什么没有完成习惯,或是为什么超时了

而点进去单个习惯并往上滑动就会来到打卡日志,可以查看完成度。

添加习惯

我们需要点选那个+号来添加习惯,进入后会是这个样子


这边看你的任务是什么就输入进去,可以顺便设定图标,好了就下一步

这边是最重要的地方,因为它可以让你设定你的习惯是要一周几次,或者是间隔几天一次,还有什么时候提醒你以及,你可以在这里为这个习惯添加分组,还有希望这个习惯坚持多久。

这样我们就完成了添加习惯的动作, 如果想查看习惯可以点选那个热力图的检视按纽,会看见下面这个图的样式,主要以周跟月,还有时间轴来查看。


时间线功能可以很好的让你对完成一个习惯需要多长时间有个认识。
可能我的步骤有点啰嗦,但其实设定起来很快的,查看也很容易,我们也不需要学会什么语法或样式,而且是全平台的,在手机上也能很好查看以及完成习惯。

我也是读了《掌握习惯》后开始用ob追踪的,不过我选择的是tracker插件,里面提供的折线图、日历视图也挺实用的

谢谢分享,有空我也研究一下Tracker :handshake:

挺好的,工具用起来自己觉得方便就行。

目的是培养习惯,追踪习惯,工具只是达到目的的方式而已。

我们也不需要学会什么语法或样式

对你这句话有一丝有不同的看法,掌握新的技能可以丰富自己的工具箱。可以做更多想做的事情,解决更多的问题。

我听过一句很有名的话:让你成功的不是你做了什么,而是你没做什么。

人的好奇心是永无止境的,但我们必须保持克制来让自己不会偏离目标,因为我们的时间跟精力都是有限的,就连生命也是。

而学习程序语言本身就不在我的规划上面。

如果你今天已经有相关背景或是规划而去学习我觉得很好,但是如果你今天为了使用一个笔记软件而去学习程序语言我就只能???

按你说的,今天我学了新技能是为了未来可以更好的解决问题,但你怎么会知道自己以后会遇到这方面的问题呢?

万一你学了一个你一辈子用不上的技能你不觉得挺浪费时间精力的吗?

我们学习的前提难道不是因为需求跟兴趣吗???

今天要是遇到了代码问题,我的想法肯定不是去学习代码怎么写,而是打给我程序员的老同学,或是上来论坛问人。

1 个赞

嗯,结合自己实际选择工具即可。

对相关的内容有一定的了解之后就能大概判断其价值。每个人有着自己所感兴趣的事,所需要用到的技能也不同吧。而我第一次遇到代码问题的时候,就觉得以后肯定还要经常遇到,所以每次都希望能够有所了解。事实上也的确如此。

而且所谓的以后是否遇到其实也不是很简单的事情,有些东西不了解的话也就不会遇到。我见到过有一个人因为Obsidian而学习了代码,因为学习了代码又接触了插件的开发,因为要开发不同的插件所以又学习了新的代码的知识。如果最开始选择没有学习的话,也不会遇到后面这些事了吧。

所以说,的确,每个人都是不同的,说到底就是要根据需求和兴趣而决定要做的事,可是“为了使用一个笔记软件”不一定对于每个人来说都只是一件不值得重视的事,不值得去为之学习一些新的东西的事。当然,我也看到有些人,即使本意并不是想要学习,可是在长时间的接触中也得到了不少收获。

2 个赞

我在日记、周记中追踪习惯的方式和楼主一样,但是可视化方面确实不太够。
我也去试用一下 DB folder 和 Heatmap Calendar,感谢分享~

可视化还是很重要的。图像、图表可以让我们看一眼就有个整体的印象,无论是表达想法还是接收信息,效率都比文字信息要高很多

老哥可以贴一下Heatmap Calendar的代码吗?想抄作业,实现和你一样的效果。

1 个赞
dv.span("习惯🔁") 
const calendarData = {
    year: 2022,  // (optional) defaults to current year
    colors: {    // (optional) defaults to green
        blue:        ["#8cb9ff", "#69a3ff", "#428bff", "#1872ff", "#0058e2"], // first entry is considered default if supplied
        green:       ["#c6e48b", "#7bc96f", "#49af5d", "#2e8840", "#196127"],
        red:         ["#ff9e82", "#ff7b55", "#ff4d1a", "#e73400", "#bd2a00"],
        orange:      ["#ffa244", "#fd7f00", "#dd6f00", "#bf6000", "#9b4e00"],
        pink:        ["#ff96cb", "#ff70b8", "#ff3a9d", "#ee0077", "#c30062"],
        orangeToRed: ["#ffdf04", "#ffbe04", "#ff9a03", "#ff6d02", "#ff2c01"]
    },
    showCurrentDayBorder: true, // (optional) defaults to true
    defaultEntryIntensity: 1,   // (optional) defaults to 4
    intensityScaleStart: 1,    // (optional) defaults to lowest value passed to entries.intensity
    intensityScaleEnd: 5,     // (optional) defaults to highest value passed to entries.intensity
    entries: [],                // (required) populated in the DataviewJS loop below
}

//DataviewJS loop
for (let page of dv.pages('"日志"').where(p => p.写笔记)) {
    //dv.span("<br>" + page.file.name) // uncomment for troubleshooting
    calendarData.entries.push({
        date: page.file.name,     // (required) Format YYYY-MM-DD
        intensity: page.写笔记, // (required) the data you want to track, will map color intensities automatically
        content: "✍",           // (optional) Add text to the date cell
        color: "blue",          // (optional) Reference from *calendarData.colors*. If no color is supplied; colors[0] is used
    })
}

renderHeatmapCalendar(this.container, calendarData)
2 个赞

没忍住好奇试了试heatmap插件。
发现它好就好在和dataviewjs结合。所以只要传入日期和数字就可以使用。可以用来自动可视化ob的一些参数,比如每日创建笔记数量,每天日记记录条数

3 个赞

:+1:强啊,有代码能力在 Obsidian 果然是为所欲为。谢谢分享,看来我也要开始学点 DataviewJS 了。

你好,可以分享下这个笔记修改数图的代码吗?

能分享一下怎么在ob上实现的吗?

惊喜!刚发现 Heatmap Calendar 还可以直接跳转到 daily note,需要配合 css 让显示效果更佳。详细请参考 FEATURE REQUEST: link to daily note on hover · Issue #12 · Richardsl/heatmap-calendar-obsidian · GitHub

heatmap link to daily note

1 个赞