- 1 为什么先来讲Org mode
- 2 什么是Org mode
- 3 Org mode能干嘛
- 4 Org mode的语法
- 5 Org mode的快捷键
- 6 结语
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的一点:文本即一切!
那文本有什么好处呢?
- 文本平台无关,所有系统,都能轻易读写文本;
- 文本不会随着某个商业公司消逝而消逝;
- 你可以自由的决定文本的内容;
- 文本易存储,易传输;
- 文本就像纸质笔记本一样,在电子世界文本永流传;
Org mode和Markdown的区别:
- 两者都是很强大的标记文本,前者脱胎于Emacs,后者不依赖Emacs,更流行;
- 语法上有一些不同,但同样简单易用;
- 依托于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文件中直接画各种图,脑图、流程图、类图、时序图、甘特图等等,这些都是产品经理经常要用到图:
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的快捷键 🔗
在这个阶段,不需要记住很多快捷键,下面的这些快捷键可以按照需要进行记忆:
按键 | 函数 | 含义 |
---|---|---|
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-s
和 C-r
来搜索和跳转。
6 结语 🔗
经过今天的学习,我们对Org mode就有了初步的认识,了解了Org mode的基本语法,这也是我们后续通过Org mode来管理Emacs配置文件的基础。
恭喜你,又往前跨越了一大步!