EMACS & 程序 编程点滴...
Org-mode之旅
本来想翻译David O'Toole的David O'Toole Org tutorial,可是有已经翻译好的版本了,就把它转载过来。
TOP简介
Org-Mode是为Emacs编写的个人信息管理以及编写大纲的工具。本文档将使用逐步的用法 说明和丰富的截图,教给读者Org-Mode基本的应用,让读者对它有基本的认识。本文不是 官方手册的替代品,只涵盖了Org-Mode的特性的一个子集。TOP下载Org-Mode
你能从Org-Mode的官方网页上下载到它。本教程推荐使用最新版本的Org-Mode。TOP安装
在你的.emacs文件中加入如下几行:
1 2 3 4 5 6 |
(add-to-list 'load-path "PATH_TO_WHERE_YOU_UNPACKED_ORGMODE") (require 'org) (add-to-list 'auto-mode-alist '("\\.org$" . org-mode)) (define-key global-map "\C-cl" 'org-store-link) (define-key global-map "\C-ca" 'org-agenda) (setq org-log-done t) |
这样,就能加载Org-Mode并且定义了它的快捷键。我们将在本文档讲述org-store-link 和org-agenda两种模式。
另外,最好用一个独立的目录来放你的org文件。我推荐用~/org目录。
TOP基本应用
本章将通过描述使用Org-Mode创建本文档的过程,讲解基本的Org-Mode应用。TOP新建一个文件
如果你已经照前面的建议配置好了你的Emacs初始化文件(.emacs),那么当你打开或者 创建一个.org后缀的文件时,Emacs就进入了Org-Mode。我创建了一个文件名为"OrgTutorial.org"的新文件,Emacs的模式栏上出现了"Org", 表示我们进入了Org-Mode。
TOP简单任务列表
首先,我输入一个名为"Task"的标题。虽然不一定要这么做,但常常会让事情方便一点, 尤其是当你想把任务列表和你正编辑的文档的正文分开的时候。第一级的标题以一个""号开头,第二级的标题用两个""号开头,以此类推。
在Org-Mode里,所有的TODO项目都是以标题形式存在。我现在输入一个TODO项目: "Start new org file for tutorial."

这有点无聊,因为我们已经创建了一个新文件。这样,让我们把光标移到这一行TODO项目上 并按Ctrl-c和Ctrl-t,把它标记为"DONE"。
这里是结果:

Org-Mode用了一个时间戳来记录一个TODO项目在什么时候结束。
让我们输入更多的TODO项目。光标移到下一行,按Meta-Shift-Enter,调出 org-insert-todo-heading,按多若干次,就能加 入若干个TODO项目了。

TOP使用“标题”功能建构一篇文档
通常,使用大纲是最好的组织你的观点的方法。下一步,我把本教程的不同主题放进大纲。 这样,整个空白页面就能分成一个个小块,让我能更容易地填入内容。
一颗""表示第一级标题,两颗""表示第二级标题,如果你需要更多的层次,就用更多的 ""号。
我完成本文档的大纲后,效果如下图:

如上图,我完成大纲后,把"Outline document"标成了"DONE"。
* 在各章节间填充 你能在任何标题的下面加入正文。
TOP到其他地方的链接
在“下载Org-Mode”一节中我需要提供一个Org-Mode官方网页的链接。我使用了一个 特殊的含有方括号的语法来表示这个链接:[[link][ description ]]
看我是怎样输入这个链接和它的描述,不输入最后的半边方括号:

然后我输入这半边方括号,该链接消失,只显示它的描述。

移动光标到该链接上,按Ctrl-c和Ctrl-o,调用org-open-at-point。
你也能链接到本地文件。试试看浏览另外一个文件,比如说你的emacs初始化文件 (.emacs),然后连续按Ctrl-c和l键调用org-store-link。你会看到一条信息, 说已经把你正在浏览的文件中的位置存为一个链接。
然后回到你的Org-Mode的buffer,用Ctrl-c和Ctrl-l来调出org-insert-link 来插入该链接。(你可以用方向键来翻查到你刚才记录的链接。)
TOP文档的提纲
这时,我的文档更长了,一个屏幕容纳不下它的全部内容。使用shift-tab这个组合键, Org-Mode能让你更容易了解你的文档的概要。
需要注意的是只会显示最高层的标题。再次按下shift-tab的组合键,所有的标题和 TODO项目就会显示出来:

然后,再按这个组合键,显示正常情况的,包含各个章节的整个文档:

TOP给任务加注说明
你能把你所需要的尽可能多的文字放在一个TODO项目的标题之后。甚至,你能把副标题 放在一个TODO项目的下面,把TODO项目嵌套起来。对任务进行注释,让收集和处理和某个任务相关的链接和想法更容易。任务的层次化嵌套 对工作流程的模式化很有帮助——通常,一个大的任务会细分为更小的,可以逐项完成的 子任务供你察看。
TOP高级功能简述
在本篇简明教程结束前,我们将介绍Org-Mode的全局TODO列表、计划任务和日程表 (agenda)功能。这些功能用于从不同的org文件中把相关的TODO项目合并成以重要性 和发生的时间为顺序陈列的项目列表。你也能用这些功能来知道哪些任务是已经完成的, 以及它们是什么时候完成的。TOP设置
首先,你必须设置变量org-agenda-files,以便让Org-Mode知道在哪些文件 里搜寻TODO和计划项目。假设,你已经有了几个org文件,比如说,一个工作用的org文件,一个家务用的 org文件,一个学校用的org文件。
这样的话,你可以在你的emacs初始化文件(.emacs)里加入如下几行:
1 2 3 |
(setq org-agenda-files (list "~/org/work.org" "~/org/school.org" "~/org/home.org")) |
TOP全局TODO列表
按Ctrl-c、a、t进入全局TODO列表。Org-Mode将在org-agenda-files里的文件中 搜索开放的TODO项目,并列出项目的列表:
你能在不同的TODO项目中移动光标,并用t键把项目标注成“DONE”(已完成);或者 在TODO项目上按回车跳到该项目所在的 源文件。
TOP任务计划和使用日程表(agenda)
我计划今天来做“Finish documnet”(“完成文档”)。我把光标移到TODO项目“Finish documnet”(“完成文档”)上,按Ctrl-c和Ctrl-s来运行org-schedule命令。日历跳 了出来,我能输入或者点击我选择的日期:
当我选择好日期,Org-Mode在这个TODO项目后插入了一个时间戳:

现在把你的文档存盘,并依次键入Ctrl-c、a、a来进入org-agenda模式。本星期的计划中项目显示了出来:

现在按l键(L的小写字母)显示日志(log)。这样会显示所有已经完成的任务和它们完成的时间。
