Emacs Org Mode基本功

5,176 阅读8分钟

少废话

既然你已经来到这里,想必和我一样,已经对Emacs、Org Mode有了一定的了解了,所以对于以下内容,我们直接省略掉:

  • 什么是Org Mode
  • 如何安装Org Mode
  • 如何启用Org Mode

(好了,后面将废话连篇了……)

从*开始

Org Mode最基本的使用就是文档,而文档中最常见的就是各级标题的排版。对于标题我们只要记住一个符号*即可。几级标题就在标题的前面写几个*然后再附加一个空格即可。例如:

  • * 一级标题
  • ** 二级标题
  • *** 三级标题
  • ……
  • ****** 六级标题
  • 依次类推。

但为了阅读的体验,我相信你不会排超过5级。

神奇的TAB

随着标题的增加,层级的缩进,我们有时候需要对不同层级的标题进行展开、收起的操作。这时候我们就记住一个神奇的按键TAB即可。它往往在键盘的最左侧那一列、Q键的左边。

  • 尝试在一个标题上不断的铵TAB键,你会发现它会在收起-展开子标题-展开内容-收起之间进行循环
  • Shift+TAB可以使用上面相反的顺序
  • 有时候,你会想在全部的内容上进行上面的动作,尝试下在TAB前加上C-u试一下
  • 接下来,试一下C-u C-u C-u TAB是什么效果?

C-c,无形的手

标题一多,对于写作的过程来说,就乱了。如何快速的回到上/下标题就成了问题。使用Emacs的过程中一定要记得一个基本的原则:符合最基本的逻辑。在Emacs中,什么是基本的逻辑?下面的就是基本逻辑:

  • C-f向前移动
  • C-b向后移动
  • C-n向下移动
  • C-p向上移动

这些就是最基本的逻辑(写在Tutorial中的)。那么我们后面所有内容的扩充都不该违背这样的基本逻辑。标题跳转也不例外,但需要加一个前缀C-c(要不然就与字符的移动冲突了)。

  • C-c C-n 跳到下一个标题(可跨层级)
  • C-c C-p 跳到上一个标题(可跨层级)
  • C-c C-f 跳到下一个标题(同层级)
  • C-c C-b 跳到上一个标题(同层级)
  • C-c C-u 跳到上一级标题(upper)

M,快人一步

标题输入一个*还是慢?毕竟这个符号常常与数字8在一起,还需要辅助Shift键使用!那换两个容易按的键?比如……

  • M-Ret插入一个标题(如果在文字中,插入一个一级标题〔毕竟它不好判断〕;如果在标题中,插入同级的标题)
  • M-S-Ret插入一个同级的TODO标题
  • M-→/←增加/缩减标题的层级
  • M-↑/↓将标题向上或向下移动

C-c / 万能漏斗

文档内容越来越多,搜索过滤就成了一个必要的功能。

  • 用正则过滤?C-c / r
  • 过滤TODO?C-c / t
  • 过滤期限?C-c / d
  • ……

按下C-c /可以看到所有的过滤手段。现在你可能用不上,但我相信你以后会喜欢。

列表初体验

标题讲解的差不多了,我们看看列表。列表的使用非常的宽松:

  • 你可以使用 - + * 这类非常符合直觉的符号来开启一个列表。
  • 你也可以使用 1. 1)来开启一个有序的列表。
  • 你甚至还可以在列表的中间添加 ::来给列表的词条添加一个描述。

如果你还记得标题的操作的话,不妨尝试一下在(带有层级的)列表上面使用以下的按键,看看有什么神奇的事情发生?

  • TAB
  • M-Ret
  • M-S-Ret (这个一定要试一下,很神奇!)
  • M-S-↑/↓
  • M-S-←/→

看下咱们的效果是否一致?

按键效果
TAB循环收起或展开列表
M-Ret插入一个同类型/级别的列表
M-S-Ret插入一个带复选框的列表
M-S-↑/↓上下移动列表项
M-S-←/→更改列表的层级

虽然看上去快捷键不少,但都是符合直觉的。所以不用特殊记忆。既然没有特殊记忆,我们不妨把记忆力留给以下两个快捷键吧:

  • C-c C-c 在复选框上不停的按这个键看看
  • C-c - 不喜欢列表的前导字符?不停的按这个键看看

表格!表格!

听说Org能制作表格?不但能,而且还可以玩出花!但先别想花的事,我们先学一学如何种花:

  • 用|隔开几个列,然后辅助按几下TAB看看
  • 按下C-c |看看
  • 输入|-然后按TAB看看

哇!奇妙的旅程!

别急着惊叹,尝试一下下面的按键(我也不卖关子了,直接将功能写在了右边,但你一定要自己亲自试一下):

按键功能
C-c C-c(怎么这个键哪里都有?!)重新对齐表格
TAB/S-TAB重新对齐表格,并在横向格子里跳转
Ret重新对齐表格,并跳到下一行的格子
M-方向键将单元格所在的行/列进行上下移动
M-S-←/↑删除光标所在的行列(记忆:这两个箭头都是指向表格内部,用于缩减表格,即删除)
M-S-→/↓在光标所在的单元格前面或者上面,增加行或列(记忆:这两个箭头指向表格外部,用于扩充表格,即新增)
C-c -或者C-Ret新增一个分隔线,两个按键在生成分隔线后的光标行为不同
C-c ^对表格进行行排序

这些按键虽然大部分都符合直觉,但可能还是得需要一定的时间进行适应,所以,多多练习一下。

花式链接

你偷偷的按下C-c C-l(其中的l代表link)看看发生了什么?对,生成了一个链接。链接的基本格式是:

[[链接的URL或ID][外显的名称]]
  • 当是一个外部的链接(如文件地址,或者网站的URL等)的时候第一部分就是URL
  • 当是一个内部的链接(如指向某个锚点)的时候第一部分就是一个指向格式为<<锚点文字>>的锚点文字

那怎么跳转链接呢?用鼠标点击或者使用C-c C-o(o是open的首字母)都可以。

桥豆麻袋

等一下!到目前为止,我们是不是经常地提到一个按键:C-c

  • 标题跳转的时候用到C-c
  • 内容搜索的时候用到C-c
  • 表格对齐用到C-c
  • 列表复选框勾选用到C-c
  • 链接的编辑用到C-c
  • ……

对,没错!我们以后还会用到更多!这就是为什么我们前面称呼它为无形的手!强大而无处不在!

TODO

哦,并不是这一章没有写完,而是这个章节要讲解TODO。日程的管理,往往从待办开始,所以这一个章节很重要。

但,为了不让你(我)感到害怕,我们这个章节只学最简单的东西,那些复杂的东西留给进阶的篇章(不关注我?那以后的高阶篇你就要错过咯~)

还记得我们前面提到的M-S-Ret吗?再按一次它。

恭喜!第一个TODO诞生。别停留,在它上面继续不停的按C-c C-t(嗯,又是C-c)。哈,恭喜你解锁待办状态的切换。

是不是很简单?再加一点花活。

  • 在一个TODO标题的内容区,添加几个列表,然后尝试按一下M-S-Ret,就添加了一个带复选框的子项;
  • 多添加几个;
  • 然后回到TODO标题,添加[%]以及[/],然后在各子项上按C-c C-c
  • 看到了吗?百分比,统计项就出来了!同时注意颜色的变化。

导出

你一定惊讶,这就讲导出了?标签呢?属性呢?日程呢?时间日期呢……

嗯,我的确这就讲导出了。因为上面的问句,统统被我放到了进阶阶段。我们这个文档就是讲解Org Mode最基础的那些东西。基础到你不会觉得害怕的那种。

你只有不觉得害怕了,觉得〔就这?〕才有欲望去探寻它的强大。所以别急,该讲的,都会讲,你现在只要告诉我、告诉自己,我没有害怕就可以了。

结束前,再讲一个导出。我们可以将我们的org文档转换为PDF,HTML等。注意,PDF这个你可能得克服种种困难,所以你现在就先操作HTML即可。那些困难的事情,我们以后再说。

按下C-c C-e看看,是不是出现了一个导出的菜单,嗯,然后选择h o即可完成HTML的导出,并打开这个文件。

一个不见得漂亮,但却十分优雅的网页就诞生了。

后会有期

既然提到了会有高阶篇,那么我们就不说再见。练好上面的基本功,江湖路远,我们后会有期。