使用Org Capture来收集灵感

飘在空气中调皮的精灵

空气,我们沉浸在各式各样的空气之中。无论我们带着何种情绪,或嫌恶、或贪婪、或欣喜、或悲哀,到了那一刻到了的时候,我们不得不服从于本能,或深或浅、或急促或悠长的呼吸一口,空气,哪怕是雾霾爆表的日子,也不能阻挡我们服从于潜伏于血脉之中,强大的本能。

各式各样的“灵感”,如同在空气中隐现的精灵,忽而出现在脑海中,忽而又湮没在思维的迷雾里不见踪影。上一刻,我们还为之头疼不已的问题,在下一刻,灵感涌现,解决起来似乎就那么的简单,完全的不值一哂;然而又一刻,或许是天边的彩虹吸引了我们的注意力,灵感倏然隐没,不见了踪影。

多么的可惜!当我们抓耳挠腮,头发变成了鸡窝的时候,深深的后悔,如果当初把那个想法记录下来了多好?!然而,灵感终究还是隐没了,我们只能颓然的期待下一次灵思涌现的时刻。

使用Org Capture完成灵感收集

呃,好吧,抒情的时间结束了。不过说实在的,随时将脑海中的突发奇想记录下来,对于生活在碎片化日益严重的今天的我们来说,要想找一个时间做浸入式的思考,不容易。

同样,要不受干扰的坐下来做一件事情,也不容易。


话说楼主刚刚想洗去“技术丝”的气息,咋就有人扔西红柿了?呃,不对,是领导来交办任务了。看起来是一大坨一时半会弄不完的东西。咋办?楼主这正在文思泉涌的绝世好文,难道就要就此罢手?

Emacs,一个出现在上世纪70年代初的编辑器,配合着org mode,出色的解决了这个问题。究竟是什么办法?答案就是:

org Capture ,一看就是一个透着灵气的名字,仿佛一个巨大的捕虫网,饥渴的看着你的周围,等待命令,把那些头脑中突然出现的想法、领导突然交办的事情都统统的拦截下来,尽可能不打断当前正在进行的工作。

哦,这是多么的贴心!好似身边多了一个小蜜,唯一需要的就是别忘了打开咱们的捕虫网,看看里面都收集了些啥?

什么是Capture

Capture是Org Mode中为了尽可能降低工作过程中的一些干扰而设计的一种快速记录信息的方式。它的工作适用场景基本是这样的:

  1. 我正在进行一项重要的工作,最好不要有其他事情打扰
  2. 嗯~,有事情出现需要我去处理。
  3. 我需要尽快处理完,以便尽快的返回到我的工作中来,把手头的事情做好

那么,在这个场景下,Capture的工作流程是:

  1. 调用Emacs的Capture功能,可以为调用功能设定一个你喜欢的快捷键,方便调用。
  2. 在新的窗口中,可以看到一系列设定后的模板,每个记录模板都关联了一个“字母”的快捷键。比如用“n”代表“笔记”,用“t”代表“待办事项”等等。
  3. 选择适用的快捷键,例如,输入“t”,准备记录刚才领导过来交办的事情
  4. 输入待办事项的具体内容
  5. 按下组合键序列(Ctrl-C Ctrl-C)完成记录的过程
  6. 好了,我们可以安心的回到原有的工作上了。领导刚刚过来交办的事情已经记录下来了,可以在手头的工作告一段落之后,再处理了。不会有遗漏。

Capture的模板

在Capture的基本使用流程之中,我们提到了一个名词“模板”。什么是模板?

我们来试着定义一下,所谓的模板是:

  1. 一个记录事件的加速系统,通过简单的几个按键就可以定位到一个具体的记录类别
  2. 一个快速记录事件的框架,类似网站的表单,通些必要的字段即可完成事件记录。
  3. 一个归档位置的快速定义,不同类别的记录可以按设定记录在不同的文件里,方便查询。

一个有效的模板由以下几个部分组成:

  1. 快捷键 - keys
    用于在列表中快速选择模板。支持单个字符。嗯,多个字符的快捷键有待进一步研究。
  2. 描述 - description
    简单的描述模板的用途。这部分设定会出现在选择模板的过程中
  3. 类型 - type
    模板的种类。目前支持的取值为:
    • entry
      Org Mode的标题节点。使用中须指定Org文件的名称
    • item
      一个简单列表中的项目。同样,这个类型的模板最终需要存储在org文件中。
    • checkitem
      一个带有checkbox的项目。与item类型的模板相比,多了一个checkbox。
    • table-line
      在指定位置表格添加一行新的记录。
    • plain
      一段文字。如何输入的,就如何记录下来。

注:org文件:扩展名为org的文本文件。遵循org mode定义的各类文本文件编写规则。目前Emacs对org mode的支持最好(org mode就是在emacs中用elisp编写开发的)。

  1. 目标 - target
    用于定义收集得到的文字片段在文件的存储方式。一般来说,目标文件为一个org文件。收集得到的相关内容也会记录到相应的标题之下。最常用的target是:
    • 指定文件名和文件中唯一的标题

      (file+headline "path/to/file" "node headline")
      
    • 指定文件名和完整的标题路径(如果需要存放片段的标题不唯一)

      (file+olp "path/to/file" "Level 1 heading" "Level 2" ...)
      
    • 指定日期方式的标题路径,在今天的日期下添加片段

      (file+datetree "path/to/file")
      

Emacs的配置

org capture的启用设定

在emacs的启动配置文件中,使用如下代码完成org capture的启用。

(setq org-default-notes-file (concat org-directory "~/notes.org"))
(define-key global-map "\C-cc" 'org-capture)

代码解释如下:

  • (setq org-default-notes-file (concat org-directory "~/notes.org"))
    设定默认的片段存放文件名为Home目录中的“notes.org”文件。在Windows中“~/notes.org”也可以写做“d:/home/notes.org”

  • (define-key global-map "\C-cc" 'org-capture)
    使用组合键“Ctrl-c c”激活org capture功能。当然,如果使用“Alt-x”组合键后输入 org-capture <enter> 也可以达到同样的目的。

配置模板

利用我们上面介绍的内容,我们可以开始定义我们要用到的模板信息:

(setq org-capture-templates
   '(("l" "灵感" entry (file+headline "~/写作创意.org" "创意")
          "* %?\n  %i\n  %a")
     ("j" "Journal" entry (file+datetree "~/journal.org")
          "* %?\n输入于: %U\n  %i\n  %a")))

将上述代码写入到Emacs的启动配置文件中后,我们看看运行的效果:

  • 启动Emacs后,输入组合键“Ctrl-c c”,我们看到了Template的列表,如下图:


    启动Capture
    启动Capture
  • 我们来捕捉第一个写作灵感,在上图的列表中按下快捷键“l”(灵的拼音首字母)如下图:


    记录第一个写作灵感
    记录第一个写作灵感
  • 我们来写第一篇日记吧。在上图的列表中按下快捷键“j”(灵的拼音首字母)如下图:


    记录一篇日记吧
    记录一篇日记吧
  • 打开两个文件,我们看到了我们当时输入的内容。如下图:


    看看成果
    看看成果

小结:

好吧,我们已经得到了第一个简单的灵感收集工具,今后的日子里,我们来逐渐丰富模板定义。让这个“捕虫网”让我们的生活更简单。

推荐阅读更多精彩内容