Jin's blog

Logseq/p2 记录和管理我的生活

Logseq笔记

已经持续使用 Logseq (opens in a new tab) 两年多的时间了(2022/2 -> 现在),从开始对双链笔记(或者说如何正确使用笔记软件提升自己)的不熟悉,到现在勉强有一些自己的理解。本文是对我实践的一些总结,希望能帮助到你,我的朋友。

本文主要是描述我如何通过笔记解决问题,同时会穿插介绍一些 Logseq 的使用方式。

如果我不犯懒的话,本文应该会随着我的理解持续更新(理论上🤣)

☀️ Daily Note 日记

把一切记录下来,通过记录的方式让做事更专注、同时进行更多的思考

帮助我思考与复盘

这部分更多是参考此文进行的实践 提升个人效率从写日志开始 (opens in a new tab),也有其他文章介绍过这种方法,这篇是我认为非常不错的一个总结。

我这里提两个最我来说最有用的点:思考 & 复盘

思考:

复盘:

理论上来说把事情记下来可以让做事变的更加 focus,但是很可惜我暂时还没能做好这一点。工作中的琐事太多,我也只能慢慢探索尝试找到最适合我的解决方案了。

Tips: 每天最重要的 3 件事、感谢、时间戳

找到每天最重要的 3 (<= 3) 件事,不能有太多。只要最重要的事情能有进展,这就是成功的一天,不需要有任何其他的焦虑。

在 Daily Note 中应该学会感谢,发现生活中点点滴滴值得感谢的点,在如今焦虑感拉满的世界中才能活的相对幸福😭。

通过打时间戳的方式,来记录是什么时间点发生的事情,拯救该死的记忆力。(时间戳可以通过输入,再选择 current time 即可。不过这种方式过于麻烦,我是用 BetterTouchTool 将快捷键配置成了输入当前时间,也可以用其他免费的工具,具体自行检索)

510144cff45b385506009aec4910d33a6847499ebcb99c6f4af646ce817a45a9.png

再推荐一个相关的视频:【写下来】从每日笔记开始,「间歇日记」让你坚持每天记笔记丨Roam & Daily Notes (opens in a new tab)

🖇️ 管理待办

我在 Logseq/P1 管理待办事项和目标 文章里详细总结了我是如何通过 Logseq 管理 TODO 的,这里就不再赘述了。

💭 围绕 Project 记录与思考

首先贴一个对我很有帮助的视频: 小心效率陷阱:為什麼你不需要"第二大腦"或者"個人知識庫"? (opens in a new tab),这个视频帮我解决了 “如何通过笔记思考&成长” 的烦恼。

在没有看这个视频前,我其实对怎么使用笔记来提升我的某方面的能力一直是很模糊的。网上各种视频都在论述第二大脑,让我们把各种东西都记下来,在需要的时候随时使用。

但只是把东西记下来又有什么用呢?就像把发现的各种干活内容扔进收藏夹,再也不会打开一样,几乎完全没有作用,也完全没有发挥 “双链笔记” 的特性。尤其是现在 AI 崛起的时代,就更不需要做这种内容收集的事情了(从一个研发工程师的角度上来看)。

那什么是 “围绕 Project 来做笔记?”,我推荐直接观看上面的视频来学习。用一句话来解释的话,则是:围绕一个项目/问题来构建自己的笔记和思考,从而解决(完成)这个项目/问题

12 FAVOURITE PROBLEMS

"你必须在脑子里时刻保持12个最想解决的问题,大多数时候这些问题都处在“休眠状态"。每当获得一个新信息,你把它同这些问题挨个做对比,看能否帮你解决问题。长此以往,你迟早会遇到一个新的信息能帮你突破一个大难题。(就这么简单),但在外人眼里,你看起来像个天才"

例如我现在有一个问题 “如何做一个合格的导师?”,当我把这个问题 “立项” 之后 (这里指的是把这个 Project 印在我的脑子里,持续去思考,这个 Project 可以是工作中的一个难点、一个目标、一个项目、一个问题等等)。

当我有任何灵感的时候对这个问题点进行补充,同时当我看到什么好的内容能帮我解决这个问题的时候,也立即围绕这个问题来记录,通过这种方式,我们就可以逐步对这个问题有更多思考与理解,最终得出一个结果,突破这个问题,得到成长。

我是如何在 Logseq 中进行实践的?

这其实和笔记无关,理论上你用任何笔记都可以通过这种围绕 Project 的方式去实践。

首先我会新建一个相关的 page,拿上面的例子来讲,我会在 Logseq 中新建一个 [[p/work/require/mentor]] 页,p/work/require 是方便用来对不同类型的问题进行筛选的。

当我在遇到任何可以解决我这个问题的灵感时,我都会立马在当天的日记中写上我的思考,然后通过 Tag 的方式和项目进行关联,例如:

d8eb58dbaa6b3ad2afe9726133626fd0da413f254ed6b488908468027ce60d99.png

可以看到这个思考中,我同时打上了 "owner", "mentor", "review" 的 Tag。

最终可以在这个 page 中检索到所有我对这个问题的思考和总结,当我们每次有一些大的进展时,就可以把相关总结更新到项目页中即可,然后慢慢去解决这个问题。

37c4bba25769b844502867db1d73a1bddc8fd1dc66c3c7978af460053f6fe358.png

在 Logseq 中实践这个其实没什么复杂的操作,双链的方式让我们可以低成本的去关联这些信息,这需要在有任何灵感的时候追加上 tag 就好,非常方便。

🗓️ 计划与总结

计划和总结都是非常必要的,虽然这两点我做的都不是太好,但是多多少少也做了点,下面简述我是如何做计划和总结的。

我在每周/月/季/半年/全年,都会做计划和总结,这部分其实我之前实践的并不好,以前做事都是被工作上的事情推着走,目标感也偏模糊。现在有了一套新的,可以在 Logseq 中实践的方式,今年会好好实践这套模式。

目前的实践方法

因为每天都在写 Daily Notes 记录和思考,所以每周的复盘总结就非常简单,把这周的 Daily Notes 读一遍,然后总结出这周的收获和不足,然后再制定下周的计划。

如果碰到什么特别头痛的问题没有解决的,可以在这个时候把这个问题拿出来,然后再思考一下,看看有没有什么新的思路。

我在每日笔记中,还会给需要后续 Review 的内容单独打上 #review 的 tag,这样在每周/月的时候,我就可以通过这个 tag 来检索出所有需要 Review 的内容,然后再进行思考与总结。

在 Logseq 中实践

由于 Logseq 是没有目录这种形式的,所以我这里用了一个单独 Page 来承载当年的所有复盘链接,以及一些月/季度/年的规划。

有一点需要强调的是,一定要降低写复盘的成本。

我的方式是抽时间把所有 Review 页面提前创建好,同时和日期进行关联,这样我们要开始写 Review 的时候,只需要点进去,直接开写。

如果开始复盘前,还要做 “找页面” “这周是今年是第几周来着?” “这周是什么时间开始来着?” “让我新建一个 review 页面” 等等其他的事情的话,很容易还没开始复盘就直接放弃了,最终导致这个事情直接黄了,因为一想到要写 review 还得花个 5 分钟时间折腾一下,整个人就会觉得很麻烦抗拒这件事。

这个是我感觉到的一个很重要的经验,因为我就是一个错误示范例子。

Xnip2024-04-27_20-43-01.png

有需要的朋友可以参照,直接复制到自己的 Logseq 中就可以使用了。

- ## 2024 [[Annual goal]]
	- 旅行
		- DONE 长沙看 [[邓紫棋]] 演唱会
	- 工作
		- LATER 成为一个合格的 mentor 和 owner,对于如何带同学一起成长有自己的理解(每季度总结输出)
- ### ⭐️⭐️⭐️ [[Reivews/2024/Q/2]] ⭐️⭐️⭐️
    - [[Quarter Goals]]
        - LATER 目标1
        - LATER 目标2
- #### LATER [[Reivews/2024/M/4]] [[May 1st, 2024]]
	- [[Monthly Goals]]
		- DONE 长沙游 & GEM 演唱会
	- DONE [[Reviews/2024/W12-13]] ____ [[Mar 18th, 2024]] - [[Mar 31st, 2024]]
	- DONE [[Reivews/2024/W/14]] ____ [[Apr 1st, 2024]] -> [[Apr 7th, 2024]]
	- DONE [[Reivews/2024/W/15]] ____ [[Apr 8th, 2024]] -> [[Apr 14th, 2024]]
	- DONE [[Reviews/2024/W/16]] ____ [[Apr 15th, 2024]] -> [[Apr 21st, 2024]]
	- LATER [[Reviews/2024/W/17]] ____ [[Apr 22nd, 2024]] -> [[Apr 28th, 2024]]
-
- #### LATER [[Reivews/2024/M/5]]
	- [[Monthly Goals]]
		- LATER 目标1
	- LATER [[Reviews/2024/W/18]] ____ [[Apr 29th, 2024]] -> [[May 5th, 2024]]
	- LATER [[Reviews/2024/W/19]] ____ [[May 6th, 2024]] -> [[May 12th, 2024]]
	- LATER [[Reviews/2024/W/20]] ____ [[May 13th, 2024]] -> [[May 19th, 2024]]
	- LATER [[Reviews/2024/W/21]] ____ [[May 20th, 2024]] -> [[May 26th, 2024]]
-
- #### LATER [[Reivews/2024/M/6]]
	- [[Monthly Goals]]
        - LATER 目标1
	- LATER [[Reviews/2024/W/22]] ____ [[May 27th, 2024]] -> [[Jun 2nd, 2024]]
	- LATER [[Reviews/2024/W/23]] ____ [[Jun 3rd, 2024]] -> [[Jun 9th, 2024]]
	- LATER [[Reviews/2024/W/24]] ____ [[Jun 10th, 2024]] -> [[Jun 16th, 2024]]
	- LATER [[Reviews/2024/W/25]] ____ [[Jun 17th, 2024]] -> [[Jun 23rd, 2024]]

⚒️ Logseq 常用插件

目前插件只用了两个:

其他插件试过不少,感觉都不太好用,后续应该会写一些自己需要的插件来支持我的一些想法(再说把哈哈。

主题目前用的最多的是:https://github.com/pengx17/logseq-dev-theme (opens in a new tab) ,我自己补了下标题的样式,贴在 custom.css 里面就可以了:

.CodeMirror-gutters {
  display: none;
}
 
.CodeMirror-linenumber {
  display: none;
}
 
.ls-block :is(h1, h2, .h1, .h2) {
  font-weight: 500 !important;
}
 
h1.title {
  font-weight: 500 !important;
}

自定义脚本,可以参考 https://discuss.logseq.com/t/show-week-day-and-week-number/12685/6 (opens in a new tab) 配置:

  1. 可以在 Journal 标题上追加上当前是周几 & 今年的第几周
  2. 对于 [p/work/require/mentor] 这种过长的 page,在 Favorites 中省略前面的信息
function insertInfo() {
    console.log('inserting info');
    var journalTitles = document.querySelectorAll("span.title") // in page view this will find the page title
    if (journalTitles.length == 0)
      journalTitles = document.querySelectorAll("h1.title") // in journals view, this will find all visible journal titles
    for (let t of journalTitles) {
      addToElement(t)
    }
  }
  
  function addToElement(t) {
    const dateRegexMatch = new RegExp('([A-Z]\\w+) (\\d+)\\w\\w, (\\d\\d\\d\\d)$').exec(t.textContent)
    
    if (!!dateRegexMatch && dateRegexMatch.length == 4) {
        const journalDate = new Date(dateRegexMatch[1] + " " + dateRegexMatch[2] + " " + dateRegexMatch[3])
        
        const startDate = new Date(journalDate.getFullYear(), 0, 1);
        const days = Math.floor((journalDate - startDate) / (24 * 60 * 60 * 1000));
        const weekNumber = Math.ceil(days / 7);
        
        const dayOfWeekName = journalDate.toLocaleString(
          'default', {weekday: 'long'}
        );
  
        const span = document.createElement("span")
        span.style = "opacity:0.5;font-size:0.7em"
        span.innerHTML = " " + dayOfWeekName + ', Week ' + weekNumber
        t.append(span)
    }
  }
  
  var t=setInterval(insertInfo,1000);
  
  setTimeout(() => {
    const optimizeFavorite = () => {
      console.log("Optimize favorite");
      try {
        [...document.getElementsByClassName("favorite-item")]
          .map((item) => item.getElementsByClassName("page-title")[0])
          .forEach((item) => {
            if (item.innerText?.split("/").length > 2 && item["isOptimized"] !== true) {
              const newTitle = item.innerText?.split("/").slice(2);
              item.innerText = '.../' + newTitle.join("/");
              item["isOptimized"] = true;
            }
          });
      } catch (error) {}
      setTimeout(() => {
        optimizeFavorite();
      }, 1000)
    };
    optimizeFavorite()
  }, 1000)

☁️ 数据同步与备份

如果你使用的是 Mac 设备的话,最简单的同步方案就是 iCloud,我在前期使用的就是这个方案,直接把 Graph 移动到 iCloud 中就可以了。通常来说不会出什么问题,搞个定时备份就可以了(定期 Git 备份)。

但是由于 iCloud 在我这出过几次丢数据的问题,我最终迁移到了 https://github.com/CharlesChiuGit/Logseq-Git-Sync-101 (opens in a new tab) 这个同步方案,简单半个个小时配置一下就可以,目前我在两台 Mac 设备上同步了 1 年多,没出过什么问题。

使用这个方式同步到 GitHub 上的话,记得修改一下 git commit email 地址,不然就会污染 GitHub 的 commit 真实性啦(也就是会全绿,但其实都是笔记自动 update,没啥意义)。

这个方式进行 Git 同步的好处是每分钟自动同步,所以历史记录不会丢(妈妈再也不用担心我丢数据啦!)。

b91d53fcc8768b229a0538f3ad5b5c0e6113726d73dad70d305905c4acbda890.png

对于笔记软件来说,备份真的非常非常非常(重复N遍)重要,所以请务必做好数据备份!!!