面向产品经理的Emacs教程:2. Org mode初识

· 2418字 · 5分钟

1 为什么先来讲Org mode 🔗

肯定有人会问,为啥不讲Emacs的配置,不讲Emacs的插件,直接讲Org mode?因为我们后续的所有配置,都将采用Org mode文件的管理方式,所以我们需要先对Org mode有个初步的了解。

但Org mode非常强大,能做很多事情,在这个阶段,我们只需要有个初步的认识即可。

2 什么是Org mode 🔗

Org mode 在我看来,是Emacs的一个杀手级应用,是Emacs内置的一个强大特性。从Org mode的官网,我们能看到它对Org mode的一段描述,写的非常精确:

A GNU Emacs major mode for keeping notes, authoring documents, computational notebooks, literate programming, maintaining to-do lists, planning projects, and more — in a fast and effective plain text system.

简单用中文来描述,Org mode就是Emacs里用来做笔记、写文档、文学编程、任务管理、项目管理等等的一个文本系统。

这恰恰是我最喜欢Emacs的一点:文本即一切!

那文本有什么好处呢?

  1. 文本平台无关,所有系统,都能轻易读写文本;
  2. 文本不会随着某个商业公司消逝而消逝;
  3. 你可以自由的决定文本的内容;
  4. 文本易存储,易传输;
  5. 文本就像纸质笔记本一样,在电子世界文本永流传;

Org mode和Markdown的区别:

  1. 两者都是很强大的标记文本,前者脱胎于Emacs,后者不依赖Emacs,更流行;
  2. 语法上有一些不同,但同样简单易用;
  3. 依托于Emacs,Org mode的功能比Markdown更强大,有无限可能;

3 Org mode能干嘛 🔗

正如上一节所说,Org mode能干很多事,这里,着重先简单说一下对产品经理来说能干嘛。

这里先有一个初步印象,先不用着急,这些以后都会讲到。

3.1 写文章 🔗

这里包含博客、PRD、技术文档等,都可以通过Org mode完成,例如这篇博文,就是在Org mode下写的:

3.2 文学编程 🔗

文学编程是一种很好的思想,目的是让代码更加可读。平常人写代码,都是在代码中注释,而文学编程反其道而行,在文本描述中嵌入代码块。

我们后面要讲到的通过Org mode来管理配置文件就会用到这个功能。

#+CAPTION: python 代码示例
#+NAME: python 代码示例
#+BEGIN_SRC python
print("hello world")
#+END_SRC

#+RESULTS: python 代码示例
#+begin_results
hello world
#+end_results

3.3 画各种图 🔗

依托于Org mode代码块的强大能力,你可以在Org文件中直接画各种图,脑图、流程图、类图、时序图、甘特图等等,这些都是产品经理经常要用到图:

图2 时序图举例

图2  时序图举例

3.4 任务管理 🔗

每天的计划,工作记录,都可以通过Org mode来记录:

4 Org mode的语法 🔗

Org mode的核心语法非常简单,跟Markdown类似,就那么几条,掌握了这几条,你就可以开始使用Org mode了。

下面,请跟随我,在刚安装好的Emacs里,通过 C-x C-f 创建一个名叫 orgmode.org 的文本文件来跟着往下走。

Org mode的完整功能非常强大,不建议在这个阶段就去全部学习,这个阶段只需要学习这一部分即可。

完整的Org mode的手册见:https://orgmode.org/manual/

4.1 标题与折叠 🔗

Org mode的标题是通过在行首输入 * 来实现, * 的数量代表标题的级数,在 * 跟一个空格加上文字就共同组成了这个标题。

  • 一级标题:*
  • 二级标题:**
  • 三级标题:***
  • 四级标题:****

一般在Org mode里,不太会出现超过9级标题的情况。

在Org mode里,标题是可以折叠和展开的,连续按 <tab> 键可以进行折叠和展开的切换:

折叠这个功能恰恰是Org mode非常强大的功能,它能让你在写文章的时候非常专注,你可以只专注在自己感兴趣的标题上,其他的都收起来。

4.2 标记文本 🔗

与Markdown类似,Org mode通过一些字符来标记文本,达到所要达到的样式,我们先学习这些就可以了。

样式 语法 效果
粗体 *粗体文本* 粗体文本
斜体 /斜体文本/ 斜体文本
下划线 _下划线_ 下划线
删除线 +删除线+ 删除线
无序列表 -,+ ·
有序列表 1. a) 1) 1.
行内代码 ~行内代码~ 行内代码
强调 =强调= 强调

4.3 代码块 🔗

在Org mode里,代码块是通过 #+BEGIN_SRC#+END_SRC 包裹的部分,大概长下面这样:

#+BEGIN_SRC emacs-lisp
(+ 1 1)
#+END_SRC

#+BEGIN_SRC python
print("hello world")
#+END_SRC

#+BEGIN_SRC 右边的,就是这个代码块的语言,我们先记住Emacs最常用的语言是 emacs-lisp(所有的Emacs配置都是基于 emacs-lisp 语言的),产品经理还经常会写一些Python脚本,那Python对应的代码块语言是 python

4.4 链接 🔗

在Org mode里,可以通过 [[链接地址][该链接展示的文字]] 来写链接。例如 [[https://orgmode.org/manual/][Org mode manual]] 就可以是一个指向Org mode手册的链接。鼠标点击这个链接,就可以在浏览器里直接访问这个链接了。

当然,Org mode也支持链接到本地的文件,如 [[file:/Users/randolph/images/ex.png][图片链接]] 就可以指向本地的一张图片,其他文件类似。

链接可以通过鼠标左键单击打开,也可以把光标移到链接上,按 C-c C-o 来打开链接。

4.5 引用 🔗

在Org mode里,可以通过 #+BEGIN_QUOTE#+END_QUOTE 包裹的部分写入引用的文本,例如:

#+BEGIN_QUOTE
这是引用的文本。
#+END_QUOTE

对应的Markdown的效果如下:

这是引用的文本。

其他的诸如 #+BEGIN_COMMENT#+BEGIN_NOTE 之类的,用的不多可以先不用管。


上面讲的这些,都可以在我们刚刚安装好的新鲜的Emacs里进行实操练习:

5 Org mode的快捷键 🔗

在这个阶段,不需要记住很多快捷键,下面的这些快捷键可以按照需要进行记忆:

表 1: Org mode初级阶段快捷键
按键 函数 含义
C-c C-p org-previous-visible-heading 向上移动一个标题
C-c C-n org-next-visible-heading 向下移动一个标题
C-c C-b org-backward-heading-same-level 向上移动一个同级标题
C-c C-f org-forward-heading-same-level 上下移动一个同级标题
C-RET org-insert-heading-respect-content 在当前标题下方建同级标题
M-RET org-meta-return 在当前标题/列表下方建同级标题/列表
C-c C-o org-open-at-point 打开当前光标处的链接

至于如何跳转到相应的标题,现在先不讲,后面我们谈到相关的插件的时候再讲。在这个阶段,可以先通过 C-sC-r 来搜索和跳转。

6 结语 🔗

经过今天的学习,我们对Org mode就有了初步的认识,了解了Org mode的基本语法,这也是我们后续通过Org mode来管理Emacs配置文件的基础。

恭喜你,又往前跨越了一大步!