本文档摘录笔记神器Org的使用方法,主要集中在快捷键,以备后续查看。
高版本的emacs已经集成了org插件,仅需要设置以下全局绑定的快捷键
(global-set-key "\C-cl" 'org-store-link) (global-set-key "\C-ca" 'org-agenda) (global-set-key "\C-cc" 'org-capture) (global-set-key "\C-cb" 'org-iswitchb)
Org是基于Outline模式(大纲模式)的,但它提供了更灵活的编辑结构文件的命令。 大纲模式可以让我们用层次结构来组织文档,可以折叠(隐藏)文档的一部分而只显 示文档的大概结构或者只显示我们正在处理的部分。
第一级的标题以一个”“号开头,第二级的标题用两个”“号开头,以此类推。
Top level headline ** Second level *** 3rd level some text *** 3rd level more text Another top level headline
emacs打开.org文件时,默认全局状态为overview,仅显示一级标题;可利用关键字 #+STARTUP: 逐文件设定显示状态,或通过 org-startup-folded 全局变量全局设 定;取值范围, overview/content/showall 。
| 键 | 描述 |
|---|---|
| TAB | 子树折叠, folded –> children –> subtree –> |
| S-TAB | 全局折叠, overview –> contents –> show all –> |
| C-u C-u C-u TAB | 全部显示,包括drawer |
| 键 | 描述 |
|---|---|
| C-c C-n/p | 在标题之间移动 |
| C-c C-f/b | 在同级标题之间移动 |
| C-c C-u | 移动到上级标题 |
| 键 | 描述 |
|---|---|
| M-RET | 插入同级别标题或item,取决于光标所在地方 |
| M-S-RET | 插入与当前标题同级别TODO待办事项 |
| M-left/right | 提升/降低当前标题级别 |
| M-S-left/right | 提升/降低当前子树级别 |
| M-S-up/down | 和临近子树互换位置 |
| 键 | 描述 |
|---|---|
| C-c / | 触发构建稀疏树的快捷键 |
| C-c / r | 利用正则表达式构建稀疏树 |
ORG支持的普通链表分为
- 有序链表,以1)和1.开头
- 无序链表,以+或-或*开头
- 解释链表,在无序链表的基础上,后跟 ~:: 描述信息~
| 键 | 描述 |
|---|---|
| TAB | 像标题一样折叠 |
| M-RET | 插入相同级别的项 |
| M-S-RET | 插入带有checkbox的项 |
| C-c C-c | 改变checkbox的状态 |
| M-S-up/down | 和临项互换位置 |
| M-S-left/right | 增加/减少表项及子树的缩进 |
| M-left/right | 增加/减少当前表项的缩进 |
利用方括号在起始列定义
| 键 | 描述 |
|---|---|
| C-c C-x f | 在注脚和定义之间跳转,和创建新注脚 |
| C-c C-c | 在定义处和引用处跳转 |
Org提供了快速且直观的表构建器,而且类似于excel可以提供部分计算功能。
- 任何行非空起始字符为’|’,作表的行
- 利用’|’作列分隔器
- 利用’|-‘作行分隔符
当在表格中按TAB或RET或C-c C-c键时,自动调整列空间、对齐等。
| 键 | 描述 |
|---|---|
| C-c 竖线 | 将当前活动区域转换为表,利用TAB、逗号、空格等分隔 |
| C-c C-c | 重新调整表格 |
| M-left/right | 向左/右移动当前列 |
| M-S-left | 删除当前列 |
| M-S-right | 在光标左侧插入列 |
| M-up/down | 当前行上/下移 |
| M-S-up | 删除当前行 |
| M-S-down | 在光标上侧插入行 |
| C-c ^ | 排序表行 |
和HTML一样,Org也提供了丰富等连接方式,如文件内连接、外部文件连接、网络 文章、email等。
连接格式为
[[link][description]]
| 键 | 描述 |
|---|---|
| C-c l | 将当前位置存储为快捷键,以备引用 |
| C-c C-l | 插入链接,或编辑当前链接 |
| C-c C-o | 打开链接 |
Org支持从多个文件收集待办事项,以便于用户管理。
- 标题如果以关键字TODO开头,则为待办事项
- 可通过 #+TODO: 关键字定制状态集合
- 支持优先级
- 在项尾部添加
[\]或[%],可跟踪子待办事项进度 - 配合进度,子项可使用checkbox
| 键 | 描述 |
|---|---|
| C-c C-t | 循环设置TODO项的状态 |
| C-c / t | 构建基于TODO项的稀疏树 |
| C-c a t | 显示所有global的TODO项,从所有的agenda文件 |
| S-M-RET | 插入新的TODO项 |
| C-c , | 设置优先级,从A、B、C中选择 |
| S-up/down | 增加/减少优先级 |
这是实现label和内容交叉引用的比较优雅的方式
- headline可以包含多个标签
- 标签只能由letter、number、下划线、@符构成
- 前后由单冒号包围,如 :example:
- 标签使用outline的继承体系,父标题标签被子标题继承
- 可利用关键字 #+TAGS: 设置文件标签
- 支持group标签
| 键 | 描述 |
|---|---|
| C-c C-q | 为当前标题输入新标签 |
| C-c C-c | 和C-c C-q相同 |
| C-c / m | 利用标签构建稀疏树 |
| C-c a m | 从agenda文件,构建匹配标签的缓存 |
| C-c a M | 从agenda文件,构建匹配TODO项标签的缓存 |
是绑定到项的键值对
- 存在于名为 PROPERTIES 的特殊drawer
- 每个属性单独成行,键在前,值在后
- 可以通过在父标题定义
属性_ALL,来限制子标题中属性的取值范围 - 利用属性构建稀疏树的快捷键,同标签
| 键 | 描述 |
|---|---|
| C-c C-x p | 设置属性 |
| C-c C-c d | 删除属性 |
为支持项目计划,待办事项需要时间戳。
- 可出现在标题或其他地方
- 有多种格式
- 支持DEADLINE、SCHEDULED等特定含义的时间戳
- 允许任务计时
- 根据功能可分为几类
- 普通时间戳,如
<2006-11-01 Wed 19:15> - 带重复间隔的时间戳,如
<2007-05-16 Wed 12:30 +1w>d/w/m/y - 日/周/月/年 - 特殊的Diary-style sexp entries
- 时间间隔,如
<2004-08-23 Mon>--<2004-08-26 Thu> - 非激活的时间戳,如
[2006-11-01 Wed]
- 普通时间戳,如
| 键 | 描述 |
|---|---|
| C-c . | 插入时间戳,需要两次以插入时间间隔 |
| C-c ! | 插入非激活时间戳 |
| S-left/right | 以天为单位改变光标处的时间戳 |
| S-up/down | 改变光标处的时间戳 |
| C-c C-d | 插入带关键字DEADLINE的时间戳,完成日期 |
| C-c C-s | 插入带关键字SCHEDULED的时间戳,开始日期 |
| C-c C-x C-i/o | 开始/停止任务计时 |
| C-c C-x C-q | 取消当前任务计时 |
| C-c C-x C-j | 跳转到有计时的任务 |
| C-c C-x C-r | 插入动态计时时钟 |
| C-c C-c | 更新动态计时时钟 |
鉴于Org的工作方式,待办事项、时间戳项、标签项等可以收集起来,这个存储的缓存 一般称为agenda buffer。
- 收集信息的文件集合称为agenda files
- 此缓存只读
- 但提供访问甚至修改原文件的命令
| 键 | 描述 |
|---|---|
| C-c [ | 当前文件加入agenda files |
| C-c ] | 从agenda files移除 |
| C-, | 遍历agenda files列表 |
| C-c a | 启动agenda分发器 |
输出为HTML、LATEX、或DocBook时,为了更好的呈现结构化的效果,需要一些设置。
- #+TITLE:
- 文档标题
- #+AUTHOR:
- 作者
- #+DATE:
- 日期
- #+EMAIL:
- 电子邮件地址
- #+LANGUAGE:
- 输出语言,如en
- #+OPTIONS:
- H:2 num:t toc:t \n:nil ::t |:t ^:t f:t tex:t
- #+OPTIONS: H:4
- 仅将前3级outline当作heading
- #+OPTIONS: toc:2/nil
- 仅将前2级outline当作目录/无目录
- 在每行末尾添加,起到分行的目的
- 空行
- 分隔段落
- #+BEGIN_VERSE … #+END_VERSE
- 保持原段落语句格式
- #+BEGIN_QUOTE … #+END_QUOTE
- 做为引用段落,左右边整体缩进
- #+BEGIN_CENTER … #+END_CENTER
- 局中
- bold
- 字体加粗
- underlined
- 下划线
- italic
- 斜体
code- 程序加深字体
verbatim- 字面体输出
strike-through- 删除线
- --------
- 横向切割线
- #+BEGIN_COMMENT … #+END_COMMENT
- COMMENT关键字
- #
- 注释
- #+BEGIN_EXAMPLE … #+END_EXAMPLE
- #+BEGIN_SRC … #+END_SRC
- :
- 包含不需要标记的部分,原样输出
- #+INCLUDE:
- 引入其他文件的内容
- #+HTML:
- #+BEGIN_HTML … #+END_HTML
- 按字面输出HTML格式的文本
C-c C-e,开启输出发布器
- C-c C-e t a
- 输出为ASCII文件
- C-c C-e t u
- 输出为ASCII文件,但以utf-8编码
- C-c C-e h h
- 输出为HTML文件
- C-c C-e h o
- 输出为HTML文件,并立即用浏览器打开
_VERSE