org-mode 学习笔记

帅比萌擦擦* 提交于 2020-04-07 03:39:28
org-mode 学习笔记

org-mode 学习笔记

1 插入各种块,结构

1.1 排版源码

  1. 快捷方式
    <s   "src--
    
  2. 参数
    -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 基于非大纲的编辑 #

  1. M-S-RET 添加具有[ ]的子项
  2. C-c C-c 更改状态,X表示已经完成,空表示未完成

3 内部链接

  1. 定义锚点 #
  2. 内部链接到1

3.1 脚注

kind of 内部链接 "fn:"前缀 具体的命令可以看脚注1

3.2 TODO [0%] 手动写

  1. first
  2. [-]
    1. [X]
    2. [-]
      1. [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, 可以在文档的任意位置定义,但建议在头部 例如:

  1. #+SEQTODO: PEPORT(r) BUG(b) KNOWNCAUSE(k) | FIXED(f)
  1. #+SEQTODO: TODO(T!) | DONE(D@)3 CANCELED(C@/!)

将光标放到这些内容上,输入C-c C-c可以直接生效,再用C-c C-t,会生成一个缓冲区 对这一段进行分析小结:

  1. 可以定义多组状态序列,每个#+SEQTODO行定义一组
  2. 状态之间用空格分隔
  3. 可以在 () 中定义附加选项,包括:
    • 字符:该状态的快捷键
    • ! : 切换到该状态时会自动添加时间戳
    • @ : 切换到该状态时要求输入文字说明
    • 如果同时设定@和!,使用@/!
  4. 用 | 分隔未完成状态和已完成状态.未完成状态在查询待办事项时会列出

这样只适用于当前文档.所有.org文档默认的,则在.emacs中添加:

1: (setq org-todo-keywords
2:      '((sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)")
3:       (sequence "TODO(t!)" "|" "DONE(d@)3" "CANCELED(c@/!)"))
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>

时间戳分为两种:

  1. 时间点,如:<2015-07-24 周五>
  2. 重复出现多个时间点:时间点+间隔(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 小结

  1. 时间管理(GTD)
  2. 项目计划和管理
  3. 笔记

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)

Validate

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!