纯文本生产力方案探讨

全文共3685字, 阅读约需10分钟 38 条评论

很多人会尝试利用手头有限的工具去解决日常生活、工作记录的需求,例如每日晨间日记、每日晚间小结、待办清单、完成清单、灵感速记、项目行动计划等等,或安装一些时髦的App,或直接使用记事本或者excel表格等常见软件。不少程序员利用其轻量开发工具(Sublime Text、Notepad、EditPlus等)同时完成了编码、日常记录和会议记录的诉求。借助 Markdown 语法,甚至可以作为你的超链接收藏夹管理。在纯文本生产力(Plaintext Productivity)的探索上,我分享下我的了解和方案。

探索这个方案的起因,是经历了当年印象笔记 5000+ 条笔记的迁移后,我已尽量远离云笔记,迁移成本太高了。所以现在无论笔记、日志、会议纪要和日记,都使用数据本地化的管理方式,并且文档格式永远不会过时的。

 

2008年 Daniel Lucraft 在其博客中分享了使用单个大文本文件(One Big Text File (OBTF))的利弊:

优点:1) 一切都在一个地方,2) 它很容易在计算机之间同步,3) 它可以在任何文本编辑器中使用,4) 格式永远不会过时。

缺点:1)必须严格地同步,2) 文件可能会变得非常大,3) 在一个大文件中较难找到东西,即使使用搜索,4) 想法可能会在所有其他项目中丢失。

他提出使用git进行版本管理,使用文件夹归类的方式把一个大文件进行拆分,单个文件中对于不同类型的记录内容进行堆栈式(模块化)等方法解决单个大文件的缺点。

但我不建议把纯文本文件拆分的太细,或分类到多个层级的文件夹中。尽量还是坚持一元笔记法的原则。

 

如何有效整理信息》中有关一元笔记法的三条原则:

1、一元化:所有信息都只记录在一个笔记本里/所有信息都只记录在一个文本文件里面;
2、时序化:所有信息按照时间顺序记录,把所有笔记按照日期编号,类似 YYMMDD 这样的 6 位编号/OBTF 里可以把日期标记为小标题;
3、索引化:让笔记能够通过某种规则被找到,提供寻找笔记的线索。

 

堆栈式(模块化)的区分方法其实很简单,每个部分使用明显的区分字符作为间隔。如:

______Inbox 收集箱
______ToDo List 待办清单
______Open Projects 进行中项目
______Done List 完成清单 + Daily 日记
______Close Projects 已完结项目

当任务或项目完成,则按时间倒序移动到对应的模块中。使用明显的区分字符式方便我们在搜索的时候可以快速的定位对应的位置。

 

Daniel Lucraft 在文中还分享了两个有趣的纯文本日历和日志的记录方式。

纯文本日历日记录方式:

以月为一组,每天一行文本记录当天的重要事情。保证每日的记录在一行内,控制字数

五月
2024-05-01 周三 | 启程去阿勒泰
2024-05-02 周四 |
2024-05-04 周六 | 约李娟一块吃饭庆祝
...
2024-05-31 周五 | 每日一记

六月
2024-06-01 周六 | 庆祝儿童节
...

另外对于纯文本笔记,使用日期时间,务必严格保持统一的格式,建议使用 YYYY-MM-DD HH:mm 作为固定格式,时间可选。

纯文本80字符日志:

每行开头是当日时间戳,控制每日日志字数在80字符内,中文可能40个汉字内,一年就365行,一年的点点滴滴就真的历历在目了。

 

可见在单个纯文本中的结构化处理,方式还是非常多样的。

 

Matthew Cornell 在2005年的博客中分享其纯文本的日志方式,和我目前稳定下来的记录方式差不多。每日以“---”作为间隔,正文后面带上时间戳。例子:

---
约李娟一块吃饭庆祝。
2024-05-03 12:30
---
启程去阿勒泰,第一站是喀纳斯。
DAY1:贾登峪——观鱼台——喀纳斯湖——夜宿禾木村
DAY2:禾木村——神仙湾——月亮湾——卧龙湾
2024-05-01 18:30
---

 

Jeff Huang 2022年曾分享其生产力工具就是一个永无止境的.txt文件,引起过一阵骚动。他对单个纯文本文件反复编辑更新长达14年,5万多行文字,记录他作为教授的所做的一切,每天的工作,和谁见面,遇到什么问题等等。通过搜索"meet with",会显示他有超过3000个预定的会议。他会在内容中插入 #关键词,以帮助其快速定位内容和查找上下文。每一天的日志以日期作为开始标记,使用类似"meet with"和#关键词的时候,需要保证格式统一,文本一致。在每一天结束的时候,他就会回顾一天记录的内容,并整理出第二天的待办事项,周而复始。

另外有个经典的案例就是 Soren Bjornstad 在其网站分享的 Random Thoughts,坚持从 2009年到2024年在单页网页上记录其所阅所思。以日期作为间隔,每天的多个事项以 @编号 作为锚点标记,关联的内容以 #编号 实现相互关联,目前已编号至13000+。耐心去看,当中有不少干货信息,是一笔宝贵的财富。

Matthew Cornell 曾对其单个大文本文件进行统计分析, 一个14000行的文本文件大约0.5MB,一个55000行的文本文件大约1.5MB。在2024年,这个大小的文本文件使用文本编辑器都可以秒开和保存,文件同步效率自然也没什么障碍。

 

把以上内容捋一捋,综合各大神的纯文本笔记特点,我的纯文本生产力模板文件结构是这样的:

______Motto座右铭 + Annual Plan 年度计划
/* 每次打开都警示自己和明确核心目标 */

座右铭:
年度计划:
-
-

______Inbox 收集箱
/* 你有什么想法,当天发生什么事情,什么都往这里填,可以加 #关键词 作为索引。当晚或次日早上清空,从而完成整理和回顾。 */

2024-05-01
- 灵感想法 #写作
- 今天发生的事
- 笔记
...

______ToDo List 待办清单
/* 参考 Todo.txt 待办记录规则,见以下规则于示例,+项目标记 作为索引,开始结束时间可省略 */

2024-05-01
- [x] (A) 收拾出游行李 +阿勒泰之旅 @home due:2024-05-01 2024-05-01 2024-05-01
- [完成标记] (优先级) 具体事项描述 +项目标记 @处理环境 due:期限YYYY-MM-DD 创建任务时间YYYY-MM-DD 实际结束时间YYYY-MM-DD
- [ ] (B)
...
- [ ]

______Open Projects 进行中项目
/* +项目标记 作为索引,在整个文档保持一致,标题可补充开始和截至时间 */

+项目名称 start:2024-05-01 due:2024-04-30
- 事项内容 #预定会议
- 事项计划
按需罗列计划细节
记录项目发生事项
...

______Done List 完成清单 + Daily 日记
/* 一天结束,整理、回顾,制定第二天计划,把当日收集箱和已完成任务转移到这里,可补充一段日记或每日复盘感想,每日以“---”作为间隔 */

2024-05-02
- [x] (A)
- [x] (B)
- [x]
...
当日所有速记
每日复盘
---
2024-05-01
- [x]
- [x]
...
当日所有速记
每日复盘
---

______Close Projects 已完结项目
/* 项目结束,把项目转移到这里,标记结束时间,可补充项目小结,项目间以“---”作为间隔 */

+项目名称 close:2024-05-01
- 事项
- 事项
...
项目小结:
---
+项目名称 start:2024-04-01 due:2024-04-30
- 事项
- 事项
...
项目小结:
---

以上每个“______栈”(模块)可根据自己需求调整,栈名称英文中文按喜好调整;“- 事项”按需无限增加;统一以“---”作为分隔;文件以年为周期保存为 .md 格式文件。/* */ 内为模板使用说明。

以上的纯文本生产力模板我自己也还在不断的实验和完善中。目前使用 VS Code 作为 .md 的编辑软件,工作上配合使用 WPS 进行文档处理,.md 文档文件夹使用 WPS云盘进行同步,同步文件夹放在 iCloud 盘中。这样就解决 Win + Mac 的同步处理问题,同时 iOS 可以安装应用打开 iCloud 盘中的 .md 文件进行移动编辑。部分收集箱的内容在一天结束的时候,我会转移到 Obsidian 的仓库中。这个纯文本文件作为 Obsidian 的仓库的其中一个文件也未尝不可,配合双链。

自从简化了我的笔记工具为 Obsidian + VS Code 之后,我已经很少有折腾新的笔记软件的念头。任务提醒应用我只有 iOS 原生的“提醒事项”应用。对于新生的软件工具,我只会大致的试用,了解技术的发展就适可而止了。利用倒腾软件工具的时间,把数据在各个软件间搬来搬去的时间,可以去多读几本书,多出去散步拍照。通过纯文本生产力的持续探索,我在 Obsidian 和 VS Code 所使用的插件也减少到寥寥无几。关于插件的极简,需另外开篇。

关于纯文本生产力,你还可以了解我上一篇内容介绍:值得拥有的纯文本生产力

 

扩展阅读:

- My Big-Arse Text File - a Poor Man's Wiki+Blog+PIM

- My productivity app is a never-ending .txt file

- A Plain Text Personal Organizer

上一篇

日常漫步 Vol.6 之走走拍拍

下一篇

微言雅语 @2024-05

本文有 38 条评论

全放在一个txt中,我总担心文件损坏,或一个误操作文件没了。所以,我还是坚持按时间分割文件。
todo是每年建一个文件。
普通日记、random thought每天建一个,就是daily note的方式。

我也是看到一个TXT文件规划工作生活这事,受到启发,之后一直在用;
感觉很好,有连续性,容易搜索,不再丢三落四,不再纠结用哪个笔记软件。

第一次见单文本记录
– 我的日记是ob每天打开自动创建,所以回家打开电脑第一件事差不多就是写今天或者昨天的日记
– 在公司的话,待办用滴答,一些思考用浮墨,摸鱼写的文章就用git同步,回家再整理
– ob整理完成后发表到博客

默认自动创建日记这个功能若能坚持还是很不错的,只要不是流水账,假以时日必有成果。
我现在没有使用那么多软件,尽可能的简单化,以md作为主要格式。
ob 我主要作为思考的整理,博客的文章也是在 ob 起草的。

请教一下,ob有没有一款插件能自动或者手动把一个月的日记在一个md文档中汇总或现实出来。

你可以了解一下自动化插件 Thino,或者半自动的 Dataview。
可以通过 Dataview 语法,利用分类目录或者关键词筛选日记。

比如罗列所有文件名称有“日记”的笔记:
list
from “”
where contains(file.name,”日记”)

或者罗列某个分类并按更新时间排序:

“`dataviewjs
dv.table([“名称”,”分类”,”更新时间”],
dv.pages() //括号内填入”#日记”,或者 “文件夹名称”
.sort(b => b.file.mtime,”desc”)
.limit(10)
.map(b => [b.file.link,b.category,b.file.mday])
)
“`

旁边的老哥说得对,dataview做得到,但它的表现形式是,一个md里显示近一个月的日记的标题,点进去才能看到日记,如果你要的是单个md直接看一个月的日记的内容,dataview可能做不到

另外,只是看近一个月的日记的标题的话,我觉得直接用那个日记插件就行,只是那个插件显示的是当月的所有日记

我要求自己每天写日记,以年为单位命名文件,使用 Org-mode 文件格式。这些文件放在 GitHub 上云端同步。

2024.org:

“`org
#+TITLE: 2024 Yearly Journal

* 2024-05-17
** xxxxxxxx
* 2024-05-16
** xxxxxxxx
“`

如果你有多个txt文件,可以考虑使用 VS Code (支持文件夹/项目管理)这样的工具进行查询和编辑,对一个/多个文件夹进行关键词查询。
归档的话,我目前都是按年归档。

这个方案只适合本地管理,和发布没有关系。其实有点像自己的记事本。
以前我会使用 simplenote、云笔记的应用去记录,现在都是本地化处理了,不依赖云服务。
使用 git 仓库,配合 VS Code 插件是可以直接 push 进行版本管理的。

是的,但是本地管理就随便找个mac下的文本app放放行了。
我说的是博客,不知道有没有易于部署、托管于国内的云服务、在自己电脑文本编辑器上写写后一键push的那种服务。

我知道。。。
但不想用git,毕竟不知哪天墙了。
从微软space到wp.com一路走来的人不信任这些服务了。

纯文本记录还是很有意思的,目前我延续了多年的一套路子有些复杂,但还算适应好用。灵感记录用的Notability+备忘录,代办事项用的Things,时间专注用的Forest。记录类专门搞了个网站记录工作、育儿、睡眠、时间专注日志;个人博客叙事、EXCEL记账简记事项。天天记录,看着资料能很好的复盘每一天。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注