您的位置:首页 > 其它

使用emacs进行时间管理(1)——org-mode基本操作

2016-04-17 23:32 731 查看
本篇文章大部分引用自:org-mode: 最好的文档编辑利器,没有之一

同时结合自己的实践,整理而成。

一、org-mode

org-mode官方定义:

Org is a mode for keeping notes, maintaining TODO lists, and doing project planning with a fast and effective plain-text system.


Org是一个基于快速高效的文本方式来实现做笔记、管理待办事项(TODO list)以及做项目计划的模式。

使用emacs做时间管理正是利用org-mode对文本的强大操作能力,所以我们首先要学习org-mode的基本概念及操作。

二、大纲

org-mode强大的操作能力源于它对大纲的支持。

1、定义一个标题

要定义一个大纲,首先要定义标题,定义标题的方式非常简单,使用
*
即可:

* 这是一个一级标题
** 这是一个二级标题
*** 以此类推


注意两点:

1.
*
要位于行首

2.
*
后面要有一个空格

2、大纲相关的快捷键

折叠

快捷键功能
S-TAB循环切换整个文档的大纲状态(三种状态:折叠,打开下一级,打开全部)
TAB循环切换光标所在大纲的状态

大纲间移动

快捷键功能
C-c C-n/p下/上一标题
C-c C-f/b下/上一标题(仅限同级标题)
C-c C-u跳到上一级标题
C-c C-j切换到大纲浏览状态

基于大纲的编辑

快捷键功能
M-RET插入一个同级标题
M-S-RET插入一个同级TODO 标题
M-LEFT/RIGHT将当前标题升/降级
M-S-LEFT/RIGHT将子树升/降级
M-S-UP/DOWN将子树上/下移
C-c *将本行设为标题/正文
C-c C-w将子树或区域移动到另一标题处(跨缓冲区)
C-x n s/w只显示当前子树/返回
C-c C-x b在新缓冲区显示当前分支(类似C-x n s)
C-c /只列出包含搜索结果的大纲,并高亮,支持多种搜索方式
C-c C-c取消高亮
在spacemacs下,更多的快捷键可以通过
SPC ?
,即空格加问号查看,非常的方便,基本上不需要我们自己记忆,这也正是spacemacs的优点所在。

3、大纲的显示方式



默认的大纲显示没有缩进,显得有些乱。可以用
SPC : org-indent-mode
切换到另一种显示方式:



如果想让某个文件默认用这种方式打开,可以在文件头部增加:

#+STARTUP: indent


如果希望打开所有org文件都默认用这种方式,可以在.emacs中配置:

(setq org-startup-indented t)


二、轻量级标记语言

前面的大纲和超链接都是使用标记来定义的。实际上,Org现在已经成为一种专门的轻量级标记语言,与Markdown、reStructedText、Textile、RDoc、MediaWiki等并列。

1、字体

*粗体*
/斜体/
+删除线+
_下划线_
下标: H_2 O
上标: E=mc^2
等宽字:  =git=  或者 ~git~


2、表格

Org 能够很容易地处理 ASCII 文本表格。任何以‘|’为首个非空字符的行都会被认为是表格的一部分。’|‘也是列分隔符。一个表格是下面的样子:

| Name  | Pone | Age |
|-------+------+-----|
| Peter | 1234 | 17  |
| Anna  | 4321 | 25  |


你可能认为要录入这样的表格很繁琐,实际上你只需要输入表头“|Name|Pone|Age”之后,按C-c RET,就可以生成整个表格的结构。类似的快捷键还有很多:

创建和转换表格

快捷键说明
C-c 竖线创建或转换成表格

调整和区域移动

快捷键说明
C-c C-c调整表格,不移动光标
TAB移动到下一区域,必要时新建一行
S-TAB移动到上一区域
RET移动到下一行,必要时新建一行

编辑行和列

快捷键说明
M-LEFT/RIGHT移动列
M-UP/DOWN移动行
M-S-LEFT/RIGHT删除/插入列
M-S-UP/DOWN删除/插入行
C-c -添加水平分割线
C-c RET添加水平分割线并跳到下一行
C-c ^根据当前列排序,可以选择排序方式

3、段落

对于单个回车换行的文本,认为其属于同一个段落。在导出的时候将会转化为不换行的同一段。如果要新起一个段落,需要留出一个空行。 这点与markdown类似。

4、列表

Org 能够识别有序列表、无序列表和描述列表。

无序列表项以‘-’、‘+’或者‘*‘开头。
有序列表项以‘1.’或者‘1)’开头。
描述列表用‘::’将项和描述分开。
有序列表和无序列表都以缩进表示层级。只要对齐缩进,不管是换行还是分块都认为是处于当前列表项。


同一列表中的项的第一行必须缩进相同程度。当下一行的缩进与列表项的的开头的符号或者数字相同或者更小时,这一项就结束了。当所有的项都关上时,或者后面有两个空行 时,列表就结束了。例如:

My favorite scenes are (in this order)
1. The attack of the Rohirrim
2. Eowyn's fight with the witch king
+ this was already my favorite scene in the book
+ I really like Miranda Otto.
Important actors in this film are:
- Elijah Wood :: He plays Frodo
- Sean Austin :: He plays Sam, Frodo's friend.


列表操作快捷键

为了便利,org-mode也支持很多列表操作的快捷键,大部分都与大纲的快捷键类似:

快捷键说明
TAB折叠列表项
M-RET插入项
M-S-RET插入带复选框的项
M-S-UP/DOWN移动列表项
M-LEFT/RIGHT升/降级列表项,不包括子项
M-S-LEFT/RIGTH升/降级列表项,包括子项
C-c C-c改变复选框状态
C-c -更换列表标记(循环切换)

5、分隔线

五条短线或以上显示为分隔线。

------


五 、标签

1、tag的作用

对于信息的管理,有分类(category)和标签(tag)两种方式。这两种方式各有特点:

通常分类是固定的,很少变化,而tag随时可以增加。 分类通常表现为树状结构,比较清晰,但是树状结构过于简单,不能表达复杂的信息。比如,如果有多个分类树,处理起来就会比较麻烦。

所以,这两种方式通常结合起来使用。比如blog系统中,通常既支持文章的分类(树),又支持为每篇文章作tag标记。

org-mode作为最好的文档编辑利器 ,在支持文内大纲(也是树状结构)的同时,还方便的支持tag功能。tag可以在多篇文档中共用。

2、标记tag

在Org-mode中,可以对标题增加tag标记。标记的格式如下:

标题                    :标记1标记2:标记3:


而且Org-mode的标签自动按照大纲树的结构继承。即子标题自动继承父标题的标签。比如:

* Meeting with the French group     :work:
** Summary by Frank                 :boss:notes:
*** TODO Prepare slides for him     :action:


则最后一行标题具有 work, boss, notes, action 四个标签。

如果希望文档中的所有标题都具有某些标签,只需要定义文档元数据:

#+FILETAGS: :Peter:Boss:Secret:


如果手工输入标签,在标题后设置标签,键入:后,M-Tab自动提供标签的补齐。

更方便的做法是在正文部分用C-c C-q 或直接在标题上用C-c C-c创建标签,这种方式可以列出所有预定义的标签以便选取。

3、预定义tag

上面提到,除了可以输入标签外,还可以从预定义的标签中进行选择。预定义的方式有两种:

在当前文件头部定义:

这种方式预定义的标签只能在当前文件中使用。使用#+TAGS元数据进行标记,如:

#+TAGS: { 桌面(d) 服务器(s) }  编辑器(e) 浏览器(f) 多媒体(m) 压缩(z)


每项之间必须用空格分隔,可以在括号中定义一个快捷键;花括号里的为标签组,只能选择一个

对标签定义进行修改后,要在标签定义的位置按 C-c C-c 刷新才能生效。

在配置文件中定义 上面的标签定义只能在当前文件生效,如果要在所有的.org 文件中生效,需要在 Emacs 配置文件 .emacs 中进行定义:

(setq org-tag-alist '(

(:startgroup . nil)
("桌面" . ?d) ("服务器" . ?s)
(:endgroup . nil)
("编辑器" . ?e)
("浏览器" . ?f)
("多媒体" . ?m)
))


默认情况下,org会动态维护一个Tag列表,即当前输入的标签若不在列表中,则自动加入列表以供下次补齐使用。

为了使这几种情况(默认列表、文件预设tags,全局预设tags)同时生效,需要在文件中增加一个空的TAGS定义:

#+TAGS:


4、 按tag搜索

使用标签可以更好的管理内容。org-mode提供了以下功能:

快捷键说明
C-c \按tag搜索标题
C-c / m搜索并按树状结构显示
C-c a m按标签搜索多个文件(需要将文件加入全局agenda)
可以使用逻辑表达式限制条件,更准确灵活的搜索:

+     和      a+b     同时有这两个标签
-     排除    a-b     有 a 但没有 b
|     或      a|b     有 a 或者有 b
&     和      a&b     同时有 a 和 b,可以用“+”替代


在查询视图中 C-c C-c 退出。

我们做GTD,只需掌握以上内容即可。对于快捷键,不用强行记忆,边用边记才更有效。需要经常使用的一个技巧就是使用
SPC ?
查看当前模式下的快捷键。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: