Blog/source/_posts/2022/05/我拿Emacs做什么暨Emacs随记(2).md

185 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
author: SouthFox
title: 我拿Emacs做什么暨Emacs随记2
date: 2022-05-14 17:34:55
tags:
- Emacs
- 随记
category: 技术
toc: true
---
大概也算是卡片笔记法的介绍?
<!-- more -->
> **提醒**:本文作者用上下列的方法也不是很久,甚至这篇文章还能算做第一个正式产出,所以……请谨慎判断。
## 卡片笔记
### 卡片笔记法解决了什么?
在空白处写涂涂写写、划重点、摘抄、不断翻阅资料,但是最后感觉还是学废了,到头来还是什么也没学到,或者记了一大堆笔记但是却成了一个坟墓,每次到里面想要提取点东西简直痛不欲生……
因为不断的阅读书籍并没有对学习产生帮助,反而因为**曝光效应**而更有害(曝光效应:当我们熟悉某事物的时候,我们还会对其越发喜欢,相信自己理解了,**但是熟悉不等同于理解**)。
卡片笔记法就是针对这种情况而产生的。
### 卡片笔记法该怎么做?
我目前所使用的工作流是这样的:
- 阅读材料,写下关键词或者想法和页数。(闪念笔记)
- 结束阅读后,通过关键词重构当时的话语,并通过页数返回当时的段落,对照着材料**转写**成自己的话语录入到笔记系统中。(文献笔记)
- 当天结束前,浏览自己的所写的文献笔记,思考它能和自己的课题、兴趣、兴趣有何关联。(永久笔记)
#### 闪念笔记
闪念笔记可以……在任何地方开记,餐巾纸、手机、记事本等,只是写下几个关键字而已,并标上页数,结束完阅读后,再通过关键词思索当时的想法,之后通过页数方便返回对照材料。
此举是为了增加想法的**必要难度**,边阅读、边听课、边看视频边记笔记实在太简单,就像在沙地上浅浅地写字一样,太容易模糊了……而通过记下关键词和页数,再回忆起当时所想记的,这样(大概)就提升了想法的**存储强度**。
#### 文献笔记
文献笔记最重要的是用**自己的话**简洁得写下阅读材料中的观点。
之所以强迫用自己的话转写,是因为只有这样做才能更好地理解材料里的观点,一味摘抄是不行的……
#### 永久笔记
永久笔记是通过浏览前几步写下的笔记所产生的,卡片笔记盒的思想就是:
> 一个想法或者笔记只有在它的上下文才有意义,而它的上下文不一定是它在文章中的出处。所以卡片笔记法是要让笔记与不同上下文聚集起来并起到相应的作用。
其中永久笔记应该是**原子化**的,即应该在没有上下文的情况下也能解释的清楚,这样才能更好的和其他相同的笔记组合成「分子」、「复杂化合物」。
所以为了更好地产生想法,每天划出一部分时间是去回顾是必要的(当然我也老是忘掉)。
### Carry on!
> 简单,简单,简单啊!我说,最好你的事只两件或三件,不要一百件或一千件;不必计算一百万,半打不是够计算了吗,总之,账目可以记在大拇指甲上就好了。不必一天三餐,如果必要,一顿也够了;不要百道菜,五道够多了; -- 《瓦尔登湖》
卡片笔记法并不复杂,实践起来只要选用一个专门对此进行优化过的软件就好了,`Notion`、`obsidian`、`org-roam` 等都可以,我选用的是基于 `Emacs``org-roam`
过于复杂的工作流会马上消磨掉自己的耐心,而做事从来不能凭着虚无缥缈的「专注力」去完成,同时卡片笔记法所产生的笔记也让我觉得能在实实在在的做了某事,这样在对抗「不确定性」这一大怪兽面前也能有底气几分。
卡片笔记法也不是什么银弹,不能指望换用软件就能产生很好的效果,比如说卡片笔记法里重要的一点既是用自己的话去转写阅读材料的话语,没了解这一点,换软件后还把软件当成原文摘抄、文章剪辑之地,那么无非是又造了个坟墓,只不过是卡片式的。
## 任务管理
任务管理也是我拿 `Emacs` 所做的事,并且他的表现也比较优秀,稍微设置一些模板就能表现的很好。
### 番茄工作法
番茄工作法,即在做事时划分一段专门用来做**一件事**的时间,期间不允许做其他事,以期达到更好的做事效果。
### 蔡格尼克效应
蔡格尼克走近一家餐馆,发现服务员游刃有余得在多个顾客间间穿梭并记下点单且上菜,吃罢饭后,蔡格尼特发现忘记取大衣并折返,还想顺道称赞一下服务员的能力,但她惊讶的发现服务员竟然表示完全不记得她来过了!服务员表示干这一行的都把注意力集中在点单上面了……
蔡格尼特对此事做了研究发现:
> 相较于已经完成的工作,人们比较容易记得未完成的,或是被打断的工作。这就是为什么我们的注意力很容易被未完成任务的想法所干扰,而不管这些想法的重要性如何。得益于蔡格尼克的后续研究,我们还知道,其实我们并不一定要完成任务才能说服我们的大脑停止思考它们,我们所要做的就是把想法写下来,让大脑相信它会在之后被妥善处理。至于任务是真的被完成了,还是通过记下笔记而推迟了,大脑并不会区分。
### Just do it!
而具体的工作流,就是我会专门在一天的开始的时候,通常是泡咖啡的时候打开电脑,开始把今天要干的麻烦事写下来(我同时也把 `Emacs` 设置成开机启动了,打开电脑就是打开 `Emacs`)。等到有晚上有时间了,我会把想做的事进行分解,以期降低自己的抵抗心理(例如`写一篇文章`的任务看起来太困难了,但把它分解成`收集材料`、`思考结构`、`完成初稿`等就容易一点了)。
## Emacs
啊,甜美的 `Emacs`
### org-roam
#### 安装
安装很简单,在配置文件中 `~/.doom.d/init.el` 中的 `org` 模块里加上 `roam2``sync` 一下就好了。
```lisp
(org
+roam2) ; organize your plain life in plain text
```
#### 配置
```lisp
;; org-roam
(setq org-roam-directory "~/Nextcloud/Note/org-roam")
(setq org-roam-capture-templates
'(("m" "main" plain
"%?"
:if-new (file+head "main/${slug}.org"
"#+title: ${title}\n")
:immediate-finish t
:unnarrowed t)
("r" "reference" plain "%?"
:if-new
(file+head "reference/${title}.org" "#+title: ${title}\n")
:immediate-finish t
:unnarrowed t)
("a" "article" plain "%?"
:if-new
(file+head "articles/${title}.org" "#+title: ${title}\n#+filetags: :article:\n")
:immediate-finish t
:unnarrowed t)))
```
其中 `org-roam-directory` 是放置笔记文件的路径,我把它设置到了 `Nextcloud` 的同步目录下,这样换台电脑也能快速查看笔记。
`org-roam-capture-templates` 是配置笔记的模板,`main` 是对应的是 `永久笔记``reference` 对应的是 `文献笔记``article` 可以对应的产出文章,虽然我这篇是直接在博客文件夹下写的(
#### 具体使用
经过模板配置后,按下 `SPC n r f` 输入一个不存在的标题就是新建一个笔记了,再按下提前配置好的键指定是哪类笔记。
按下 `SPC n r i` 既是在正文中插入一条笔记链接,`SPC n r r` 既是打开显示双向链接的菜单,能帮助我更好地查看笔记之间的联系。
而通过 `SPC n r a` 即可随机跳转到一条笔记上方便我回顾笔记可惜我太菜了不知道怎么设置成过滤成只显示仅某一类笔记orz
同时 `org-roam` 里还附带了一个日志功能,可以像 `Logseq` 那样写日志,其前缀是 `SPC n r d`,但由于太长我一般都是通过 `M-x` 来进行选择对应功能的,现在我的一些想法和梦记都是录入到其中的。
而对于文献笔记,因为没琢磨透 `Emacs` 相关文献管理包怎么用,那我就用自带的大纲模式进行折腾了,具体就是用各个标题层级对应书的不同目录,并在最后加上页码,这样也方便我进行回读。
![](https://media.southfox.me/ipfs/bafkreidapw5bcu6ix2nxxi7uhbaiwnc23nukqfyzububigmk4hfcancc3u)
#### 连接
`org-roam` 第 2 个大版本将里面的链接机制换成了基于 `org-mode``link`,所以让 `org-roam` 有了跟其他基于文章的双链笔记不同的,有更加精细的操控能力了。
在某个标题使用 `org-id-get-creat` 就可以把这个标题转换为一个新的卡片笔记了,既使它仍在一篇文章中,这样一篇挤满不同卡片的文件我可以叫他为 `卡片桌`,可以方便的排列展示各个卡片笔记。
而把 `org-link-search-must-match-exact-headline` 的值设置成 `nil`,那么可以编辑链接,设成 `[[roam-id:xxx-xxx-xxx-xxx::关键字][描述文本]]` 即自动跳转到所选笔记的第一个匹配关键词上,不得不感叹 `Emacs` 对于文字处理的底蕴之深……
#### 加密
选择了同步意味数据会放到他人的服务器上,所以一些东西不加密实在不放心,所幸其自带了一个包 `epa` 可以完成加密工作,或是在模板中设置成 `xxx.org.gpg` 格式就会自动进行加密……当然因为加密设定必须要设置一个同步密钥,对于互相连接的卡片笔记非常不方便(一打开菜单输入四五次加密密码谁受得了啊),所幸其 `epa` 包里有仅加密一片文本区域的命令 `epa-encrypt-region`,事先选择好一片文本区域执行此命令,再指定密码即可执行加密了。
#### MORE!
当然还有其他的扩展包可以用,比如 `org roam ui`,这个包可以分析笔记文件形成一个网页,让 `Emacs` 用户也能享受到其他双链笔记软件的那个「花里胡哨」的链接分析图。
![](https://media.southfox.me/ipfs/bafkreicodyiisf7hstovxpkw5excjlmdltlxgjjqbvsghrhmrfxc5hrytm)
### 任务管理
`Emacs` 自带了个 `org-mode`,是做任务管理的一把好手,当然要提前配置好任务模板。
#### 任务模板
```lisp
;; org-capture
(setq org-agenda-files '("~/Nextcloud/gtd/inbox.org"
"~/Nextcloud/gtd/gtd.org"
"~/Nextcloud/gtd/tickler.org"))
(after! org
(setq org-capture-templates '(("t" "Todo [inbox]" entry
(file+weektree "~/Nextcloud/gtd/inbox.org")
"* TODO %i%?")
("T" "Tickler" entry
(file+headline "~/Nextcloud/gtd/tickler.org" "Tickler")
"* %i%? \n %U"))))
```
其中 `org-agenda-file` 是设置将哪些文件拉入到日历视图的计算中,`org-agenda` 视图可以很方便地查看任务分布情况,当然可设可不设。
`org-capture-templates` 是设置任务模板,要用 `after!` 关键字括起来用延后加载以免被默认配置覆盖掉,其中我将 `Todo` 的格式设成了 `weektree` 的格式,这会将任务归类成 `年-XX周-星期X` 的格式,方便进行定位以及用 `org-archive-subtree` 的命令将已完成的任务存档。
更多关于任务模板的相关介绍可看[这里](https://www.zmonster.me/2018/02/28/org-mode-capture.html)。
#### 使用
这样配置下来,使用 `SPC X` 即可打开一个缓冲,按下 `t` 即可选择预先配置的 `Todo` 模板,接下来输入任务名称,按下 `C-c C-c` 即可将缓冲中的内容送入文件,同时关闭缓存。这个过程不需要去打开其他文件,适合在一个工作流中突然想起某事而花最小的打断代价去写下代办事项。
#### 移动端使用
目前我在安卓端上使用的是 `[Orgzly](https://f-droid.org/packages/com.orgzly/)` 搭配 `Nextcloud` 进行任务同步,利用小组件功能也能方便一览待办(就是小组件的刷新是个问题)。
### 番茄钟
#### 安装
`~/.doom.d/init.el` 中加上 `pomodoro` 即可。
```lisp
(org
+roam2
+pomodoro) ; organize your plain life in plain text
```
#### 使用
在一个待办标题上使用 `SPC t t` 即可开启番茄计时,默认二十五分钟倒计时,还附带一个有点浮夸的敲钟音效(
![](https://media.southfox.me/ipfs/bafkreieirqmdin4xhx57druv47vt64goyjbohwbumuahq5z5xg3y7bjxke)
## 参考
1. [How I Take Notes with Org-roam](https://jethrokuan.github.io/org-roam-guide/)
2. 卡片笔记写作法:如何实现从阅读到写作
3. [用“卡片笔记写作法”读《卡片笔记写作法》 译者现身说法并完整示范 | 学习骇客 ](https://mp.weixin.qq.com/s/jM6OoQLxKE4dT_ZWLibowA)
4. [强大的 Org mode(4): 使用 capture 功能快速记录](https://www.zmonster.me/2018/02/28/org-mode-capture.html)