学习 Emacs Org - 工具和配置
文章目录
本文是学习使用 ORG 系列中的第一篇,该系列是在学习过程中逐步整理而成,仍然在不断更新之中。在本文中,我们将介绍 Emacs org 模块的一些基本功能,一些学习心得以及一个需要的必要工具和配置。
1 学习建议
通过使用 ORG 撰写文章及管理代办事项,并不断的折腾我的 ORG 配置,特别是学习过程中遇到的问题,总结一些学习经验。
- 建议从将 ORG 作为标记语言,从撰写文章开始入手,ORG 的其他功能,如待办事项、日程表等功能和 ORG 文档的结构及基本特性相关。我个人也是这样干的。
- 先不要自己折腾 ORG 模块的配置(Emacs lisp 高手例外),先做拿来主义者,我个人 ORG 模块配置一开始是从 purcell Emacs - init-org.el 复制而来,再根据需要后面逐步调整。你可以可以参照我的配置。
- 在每个主题下面,会针对该主题列出几条学习建议或者心路历程,仅供参考。
- 熟练使用
M-x
执行命令,绑定M-x
快捷键至helm-M-x
以帮助快速定位和执行命令,这个可以缓解记住快捷键的问题。 - 结合上条,只需要记住几个必要的快捷键即可,使用多了,自然也就记住了。
2 ORG 功能概览
本节参照 ORG 官网 List Features 翻译。
ORG 是一个快速高效的纯文本系统,可用于记日记、维护待办事项列表、计划项目以及撰写和发布文档。ORG 可以说是 Emacs 相当重要的组成部分。本文就是用 Emacs ORG 模块撰写。我也将 ORG 模块用于安排日程和跟踪 OKR。
- 写作 (Editing)
- ORG 支持大纲结构,可以快速容易的在不同标题之间导航
- 支持折叠标题内容
- 内置便捷的快捷键绑定和很多高效编辑设施。
- 计划 (Planning)
- 可以用于管理待办事项 (TODO) 列表和计划
- 每个标题可以被当作一个任务
- 可配置待办事项关键字及通过
C-c C-t
或者S-<left/right>
快捷键切换关键字 - 支持计划元数据,如:排期 (scheduled)、截止日期 (deadline)、标签、属性等。
- 捕获 (Capturing)
- 将一个代办事项添加到
.org
文件的过程称之为 capturing - 您可以从任意地方 capture,既可以在 Emacs 中,也可以通过其他应用程序(如浏览器、PDF 阅读器等)
- Capture 模版允许您定义想 capture 的上下文信息
- 将一个代办事项添加到
- 计时 (Clocking)
- 启动任务计时
C-c C-x C-i
- 结束任务计时
C-c C-x C-o
- 计时日志记录在抽屉里 (drawer)
- 支持可定制的格式报告
- 启动任务计时
- 日程表 (Agendas)
- ORG 模块帮助您聚焦于任务,可以轻松管理很大的
.org
文件和数千任务 - 内置日程表视图按周显示任务排期计划和截止日期、待办事项列表以及停滞的项目
- 日程表视图支持根据需要进行定制:支持按天/按周/按月;支持以标签和待办事项列表关键字定制
- 日程表是 ORG 的关键模块
- ORG 模块帮助您聚焦于任务,可以轻松管理很大的
- 列表 (Tables)
- ORG 是一个优秀的纯文本表格编辑器
- 可以通过
.csv
和.tsv
文件,或者直接从当前缓冲区导入列表 - 支持导出多种格式
- ORG 也可以被用作一个电子表格 (spreadsheet) 系统
- 您可以使用 Calc Emacs 包或者 Emacs lisp 代码为表格添加计算公式
- 发布 (Exporting)
- ORG 是一个出版发布工具
- 可以使用直观的标记将 ORG 文档转换为 HTML, LaTeX, ODT 等格式文档
- 开发者可以很容易的创建新的后端以支持特定格式
- 您可以为一个或者多个
.org
文件定义发布项目,并可以定义一个或者多个发布后端
- 嵌入代码 (Working with source code)
- ORG 以便捷和自然的方式支持文学编程 (literate programming)
- 支持插入代码片段、在 ORG 缓冲区执行代码片段并输出计算结果;支持从 Org 文件抽取源代码文件
3 工具安装和配置
Org 模块内置于 Emacs 安装包中,有关 ORG 的详细配置,请参阅 Junahan’s Emacs (为了节省时间,不建议折腾自己的 ORG 配置,等使用相当熟练了,再了解和定制自己的 ORG)。ORG 模块的一些功能依赖于应用工具,为了省心,先需要将这些依赖分别安装以确保 ORG 功能能够正常的工作。请参阅后续几个小节安装必要依赖软件包。这里以 MacOS 为例,使用 brew
安装相应的工具包,其他平台也有类似的工具,请自行学习处理。
3.1 拼写检查
建议使用 aspell + ispell-mode。运行如下命令安装 aspell
|
|
添加如下配置启用拼写检查。
|
|
3.2 安装 MacTex 及相关工具包
ORG Mode 使用 MacTex 发布 PDF 以及 Tex 格式文档,可直接运行如下命令安装 MacTex :
|
|
- 为了支持中文,还需要安装额外的包。可以参考 MacTeX 安装 xeCJK 和 CTEX 搭建中文环境。
|
|
- 执行
sudo fmtutil-sys --all
命令,重新生成 FMT(Plain TeX、LaTeX、LuaTeX)。 - 执行
sudo tlmgr update -all
可以更新 MacTex。 - 运行命令
pdflatex texname.tex
测试输出 PDF。
3.3 安装 pandoc
ORG ox-pandoc 模块使用 pandoc 发布 (exporting) .org
文档至众多 pandoc 支持的格式。
|
|
3.4 安装 graphviz 和 PlantUML 包
ORG 模块 ditaa 使用 Graphviz 和 PlantUML 包支持纯文本作图,特别是 UML 各类图的制作。
|
|
3.5 安装图床工具
图床工具用于上传图片至图床平台 (如微博图床),我使用 iPic 图床工具,将图片作为 URL 插入文档。这样可以让 ORG 文件只依赖纯文本内容,便于发布和移动。
4 记住几个必要快捷键
快捷键 | 命令 | 说明 |
---|---|---|
TAB | org-cycle | 依次展开/折叠大纲标题 |
M-x | helm-M-x | 使用 helm-M-x 替代 M-x 以快速定位和执行常用命令 |
C-p | preview-line | 移动光标至上一行 |
C-n | next-line | 移动贯标至下一行 |
C-c C-t | org-todo | 改变 item 的 TODO 状态 |
C-c C-p | org-previous-visible-heading | |
C-c C-n | org-next-visible-heading | |
C-c a | org-agenda | 打开 Agenda 视图 |
C-c c | org-capture | 随时随地捕捉灵感,快速加入 TODO 或者 NOTE |
C-c C-c | org-ctlr-c-ctlr-c | 根据上下文执行不同的命令 |
5 参考文献
- Org mode for Emacs - Your Life in Plain Text, 2019.
- Org mode 手册学习笔记, 2017.
- EMACS-DOCUMENT, 这里有很多有关 Emacs 的笔记和学习资料, 2019.
- 3 Emacs modes for taking notes, 2018.
- 用来记笔记的三个 Emacs modes, 2019.
- Deft for Emacs, 2019.
- 熟练使用org-mode管理日常事务, 2014.
- 如何利用Emacs进行个人时间管理(GTD), 2018.
- ob-http, 2018.
- Pomodoro Technique, 2019.
- 一年成为 Emacs 高手, 2019.
- Org Mode - Organize Your Life In Plain Text!, 2015.
- Orgmode 利用 ox-pandoc 导出 hugo 博客的 workflow, 2013.
- ox-pandoc, 2019.
- Emacs 新思维系列, 2013.
- org-mode git repository, 2019.
- cnfonts (Emacs 中文配置) by tumashu, 2019.
- Emacs for MacOS, 2019.
本作品采用知识共享署名 4.0 国际许可协议。
文章作者 Junahan
上次更新 2019-11-14