*/-->
org-mode 学习笔记
Table of Contents
- 1. 插入各种块,结构
- 1.1. 排版源码
- 2. 各种快捷键,来操作目录
- 2.1. 在大纲之间移动
- 2.2. 基于大纲的编辑
- 2.3. 基于非大纲的编辑 #
- 3. 内部链接
- 3.1. 脚注
- 3.2. TODO
[0%]
手动写
- 4. 最强的任务管理器
- 4.1. 定义任务和子任务
- 4.2. CANCELED 定义任务状态
- 4.3. 设置任务优先级
- 4.4. 跟踪子任务完成情况
- 4.5. 用复选框标记非标题类型的子任务
- 4.6. TODO 查询任务
- 4.7. 任务的时间计划
- 4.7.1. 时间戳
- 4.7.2. 时间/日期段
- 4.7.3. 计划时间和截止时间
- 4.8. 全局任务文件清单
- 4.9. 全局 TODO 列表
- 4.10. 日程表
- 4.11. 小结
1 插入各种块,结构
1.1 排版源码
- 快捷方式
<s "src--
- 参数
-n -t -h -w 显示行号 清除格式 设置高度 设置宽度 例如:
#+BEGIN_SRC c -n int main(void) { printf("hello,world\n"); return 0; } #+END_SRC
2 各种快捷键,来操作目录
2.1 在大纲之间移动
快捷键 | 说明 |
---|---|
C-c C-n/p | 下/上一标题 |
C-c C-f/b | 下/上一标题(仅限同级标题) |
C-c C-u | 跳转到上一级标题 |
C-c C-j | 跳转到大纲浏览状态 |
2.2 基于大纲的编辑
快捷键 | 说明 |
---|---|
M-RET | 插入一个同级标题 |
M-S-RET | 插入一个同级 TODO 标题 |
M-LEFT/RIGHT | 将当前标题升/降级 |
M-S-LEFT/RIGHT | 将子树升降级 |
C-c * | 将本行设为标题/正文 |
2.3 基于非大纲的编辑 #
- M-S-RET 添加具有[ ]的子项
- C-c C-c 更改状态,X表示已经完成,空表示未完成
3 内部链接
- 定义锚点 #
- 内部链接到1
3.1 脚注
kind of 内部链接 "fn:"前缀
具体的命令可以看脚注1
3.2 TODO [0%]
手动写
- first
[-]
[X]
[-]
[1/2]
[X]
[ ]
4 最强的任务管理器
4.1 定义任务和子任务
快捷键:
C-c C-t || S-LEFT/RIGHT
4.2 CANCELED 定义任务状态
- State "CANCELED" from "BUG" [2015-07-24 周五 10:10]
因为用了@,所以这里要添加日志 - State "BUG" from "CANCELED" [2015-07-24 周五 10:04]
- State "TODO" from "FIXED" [2015-07-24 周五 10:03]
要自定义任务状态,可以使用 文档元数据 #+SEQTODO, 可以在文档的任意位置定义,但建议在头部
例如:
- #+SEQTODO: PEPORT(r) BUG(b) KNOWNCAUSE(k) | FIXED(f)
- #+SEQTODO: TODO(T!) | DONE([email protected])3 CANCELED([email protected]/!)
将光标放到这些内容上,输入C-c C-c可以直接生效,再用C-c C-t,会生成一个缓冲区
对这一段进行分析小结:
- 可以定义多组状态序列,每个#+SEQTODO行定义一组
- 状态之间用空格分隔
- 可以在 () 中定义附加选项,包括:
- 字符:该状态的快捷键
- ! : 切换到该状态时会自动添加时间戳
- @ : 切换到该状态时要求输入文字说明
- 如果同时设定@和!,使用@/!
- 用 | 分隔未完成状态和已完成状态.未完成状态在查询待办事项时会列出
这样只适用于当前文档.所有.org文档默认的,则在.emacs中添加:
1: (setq org-todo-keywords 2: ‘((sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)") 3: (sequence "TODO(t!)" "|" "DONE([email protected])3" "CANCELED([email protected]/!)")) 4: )
除了状态序列外,还可以定义type,来标记任务的分类.
4.3 设置任务优先级
有A,B,C三种优先级,在安排日程的时候可以按照优先级进行排序.为任务设定优先级是:S-UP/DOWN.
4.4 跟踪子任务完成情况
可以在上级任务标题中的任意位置插入[%]
或者[/]
,当子任务的状态发生变化时,会自动更新该
任务的值.
4.5 用复选框标记非标题类型的子任务
上面已经做了介绍: 点击跳转
4.6 TODO 查询任务
- State "TODO" from "" [2015-07-24 周五 10:48]
4.7 任务的时间计划
可以设置计划时间(SCHEDULED)和截止时间(DEADLINE),分别实现高亮所有TODO和具有特定关键字
的TODO.
4.7.1 时间戳
时间戳的格式:
- <2005-10-01 Tue>
- <2003-09-16 周二 09:30>
- <2003-09-16 周二 09:30>–<2003-09-16 周二 12:30>
时间戳分为两种:
- 时间点,如:<2015-07-24 周五>
- 重复出现多个时间点:时间点+间隔(d,w,m,y),如:
<2015-07-24 周五 12:30 +1w>
表示从这个时间点开始,每周重复一次.
时间戳可以放在标题或正文的任何部分.
可以手动输入,可以可以使用快捷键:
C-c .
4.7.2 时间/日期段
两个时间戳用两个‘-‘链接起来就是一个时间段
连续使用 C-c .可以创建时间段
C-c C-y 计算时间段的间隔
<2015-07-24 周五 12:00>–<2015-07-24 周五 12:30>
4.7.3 计划时间和截止时间
设定计划时间(SCHEDULED)-光标所在位置所属任务的计划时间.快捷键:
C-c C-s
截止时间,快捷键:
C-c C-d
show time:
测试结果: 只对标题显示的任务有效 aaaa啊–斜体只对英文有效
4.8 全局任务文件清单
可以支持多个.org文件的管理.
让Org-mode知道需要把哪些文件视为全局任务的组成部分,在.emacs中配置如下:
(setq org-agenda-files (list "~/.totos/work.org" "~/.todos/projects.org" "~/Documents/todo/" ))
可以包括文件和目录.
命令可以随时将文件加入/移除清单:
C-c [ && C-c ]
4.9 全局 TODO 列表
列出全局中的未完成任务,快捷键:
C-c a t
用t键改变任务状态,;按TET跳到该条目所在的源文件.
C-c a 快捷键未定义,则添加如下配置:
(global-set-key "\C-c1" ‘org-store-link) (global-set-key "\C-cc" ‘org-capture) (global-set-key "\C-ca" ‘org-agenda) (global-set-key "\C-cb" ‘org-iswitchb)
4.10 日程表
日程表视图:
C-c a a
4.11 小结
- 时间管理(GTD)
- 项目计划和管理
- 笔记
Footnotes:
1
C-c C-x f
Date: <2015-07-24 周五>
Author: 刘振宁
Created: 2016-05-04 周三 16:35
Emacs 24.5.1 (Org mode 8.2.10)