1 源起

最近在学习 Emacs 的一些高级用法,在学习到了 org-mode,看到了官方网站上的这篇 David O'Toole Org rutorial,上面提示有 中文译版,不过是保存在 Google site 上面的。当我拿起梯子,爬出去去,下载到了这篇文章以后。发现是 html 格式的,中间的图片也看不到了。我又去 Google 了一下,没有在 cnternet 里面找到中文版的。于是在这里,将 Hokmen Chan 的这篇文章稍作整理,放到 cnternet 上来,以飨 emacser。

这篇文章以 Hokmen 的翻译为蓝本,参考最新的 David O'Toole Org Tutorial,按照 Emacs 的使用习惯,做了适量的添加和修改。

2 简介

Org-mode 是一个个人信息管理和大纲工具的 Emacs 插件。 这篇文章将以丰富的截图和说明性的指令一步步的介绍 org-mode 的基本用法,让读者对她有个基本的认识。本文并不能替代 org-mode 的手册,这里只是 org-mode 冰山的一角。

这篇教程已经有 法语日语简体中文(河蟹)韩语 译文。在此向译者致谢。

2.1 获取 org-mode

Emacs 22 以后的版本已经集成了 org-mode,所以,你使用的是 Emacs 22 以后的版本的话,你的 Emacs 已经提供了她(*Emacs 23.1 内置的 org-mode 版本是 6.21b;Emacs 23.2 内置的 org-mode 版本是 6.33x;最新的 org-mode 是 7.4)。

当然,你可以从 org-mode home page 下载到最新的版本,解压并添加到 Emacs load path 中:

  1. (add-to-list 'load-path "PAHT_TO_WHERE_YOU_UNPACKED_ORGMODE/lisp")
2.2 安装

将下面这几行加入到你的 .emacs 文件中:

  1. (add-to-list 'load-path "PATH_TO_WHERE_YOU_UNPACKED_ORGMODE")
  2. (require 'org)
  3. (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
  4. (define-key global-map "\C-cl" 'org-store-link)
  5. (define-key global-map "\C-ca" 'org-agenda)
  6. (setq org-log-done t)

这样可以确保 org-mode 被加载,并在这里定义了几个全局的快捷键。后面我们会讨论到 "org-store-lik" 和 "org-agenda"。

另外,最好使用一个独立的目录来保存你的 org 文件。我建议使用 "~/org"。

3 基础用法

本节将讨论 org-mode 的基础用法,并向您展示,我是怎样使用 org-mode 撰写这篇文章的。

3.1 创建一个新文件

如果你已经按照前面的建议配置好了你的 .emacs,当你打开或者创建一个 ".org" 后缀的文件时,Emacs 会自动进入 org-mode。

我创建了一个名为 "OrgTutourial.org" 的新文件,Emacs 的模式栏上出现了 "Org",说明我们已经进入了 org-mode。

3.2 简单的任务列表

我先创建了一个 "Tasks" 的标题,控制所有的 tasks。这么做并不是必须的,只不过通常这样会更方便,尤其是你想把 tasks 和正在编辑的的文档的正文分开的时候。

一级标题以一个 "*" 号开头,二级标题以两个 "*" 好开头,以此类推(*iHuHoo.w : 星号"*" 必须是顶格的,星号和标题之间应该有一个空格分开)。

在 org-mode 里,TODO 条目都是以标题的形式存在的。我现在创建了一个 TODO 条目:"Start new org file for tutorial":

这个有点二,因为我们已经创建过了一个新文件。额,我们现在把它关了吧。移动光标到这个 TODO 条目这行,使用 C-c C-t 把它标记为完成。

结果是这个样子的:

注意:org-mode 用了一个时间磋来记录一个 TODO 条目什么时候完成的。

让我们输入跟多的 TODO 条目,将光标定位到下一行,按 M-S-RET 调用 org-insert-todo-heading,通过重复的按这个组合键,可以方便的输入若干个 TODO 条目:

 

3.3 使用标题组织一篇文章

通常,最好的方法是使用大纲来组织你的“思绪(ideas)”。接下来,我来列出这篇教程的大纲。通过大纲,你可以发现整片文章就别划分为了若干个小的段落,这样可以方便的去展开它。

还记得吧,一颗星是一级标题,两颗星是二级标题。如果你需要更多的层级,就来三颗星,更多的星星吧。

这里是我完成了这篇文档大纲后的效果图:

注意:我已经把 "Outline document" 标记成了 "DONE"。

3.4 展开段落

你可以很方便的给任意一个标题添加正文:

 

3.5 使用链接

在 "获取 org-mode" 一节中,我需要一个提供一个链接指向 org-mode 的网站。使用链接的语法是:

  1. [[link][description]]

看,我是怎么添加一个链接和描述的,当没有闭合最后半边方括号的时候:

 

当键入这半边方括号的时候,链接消失了,只显示他的描述:

 

试着移动光标到这个链接上,按 C-c C-o 调用 org-open-at-point。

当然,你可以可以链接到本地文件。试试浏览另外一个文件——比如你的 .emacs 文件。然后按 C-c l 调用 org-store-link。你会看到一条信息,说已经把你正在浏览的文件中的闻之存为一个链接。

然后回到你的 org-mode buffer,按 C-c C-l 调用 org-insert-link 来插入该链接(你可以用方向键来翻查你刚才记录的链接)。

3.6 浏览文章

这个时候,我的文档已经很长了,一屏已经不能看到她的全部内容了。不过不用担心,org-mode 可以让你方便的浏览你的文章。使用 S-TAB 键,可以提供不同层次的浏览。

 

注意:这里只显示了一级标题。再次按下 S-TAB 键,所有的标题和 TODO 条目都会显示出来:

 

再次按 S-TAB 键,会回到正常显示。所有小节的内容都会显示出来。

 

3.7 给任务添加说明

你可以把尽可能多的描述文字放在一个 TODO 条目之后。实际上,你也可以给 TODO 添加子标题,把 TODO 嵌套起来。

对任务进行注释,让收集和处理某个任务的相关的链接和想法更容易。任务层次化嵌套对工作流程和模式和很有帮助——通常,一个大的任务会细分为更小的,可以逐项完成的子任务供你查看。

4 高级功能简述

在这篇教程结束之前,我们再来讨论下 org-mode 的全局 TODO 列表、计划任务和日程表。这些功能用于从不同的 org 文件中把相关的 TODO 项目合并成以重要性和发生的时间为顺序的条目列表。你也可以用这些功能来指导那些任务是已经完成的,以及他们是什么时候完成的。

4.1 设置

在做这些之前,需要设置 org-agenda-files,以便于让 org-mode 知道在哪些文件中搜寻 TODO 和计划条目。

假设,你己经有了几个 org 文件——一个工作用的 org 文件,一个家务用的 org 文件,一个学校用的 org 文件。

这样的话,你可以在你的 .emacs 中加入如下几行:

  1. (setq org-agenda-files (list "~/org/work.org"
  2. "~/org/school.org"
  3. "~/org/home.org"))
4.2 全局 TODO 列表

按 C-C a t 进入全局 TODO 列表。org-mode 将在 org-agenda-files 里的文件中搜索卡方的 TODO 条目,并给出列表:

 

你能在不同的 TODO 项目中移动光标,并用 t 键来把条目标注成 "DONE";或者在 TODO 条目上按 RET 跳到该条目所在的源文件。

4.3 计划任务和日程表

我计划今天来做 "Finish document"。我把光标移到 TODO 条目 "Finish document" 上,按 C-c C-s 来执行 org-schedule 命令。日历跳了出来,我能输入或者点击我选择的日期:

 

当我选择好了日期,org-mode 在这个 TODO 条目后插入一个时间磋:

 

现在把文档存盘,按 C-c a a 来进入 org-angende 视图。本星期的机会计划项目中显示了出来:

 

按 "l"(小写字母L) 显示日志。这样就会显示你所有已经完成的任务和他们完成的时间。

 

5 再会

这篇文章只是 org-mode 的简明教程。在 org-mode 在线手册 里,有更多让人兴奋的特征等待着你去发掘。

6 后记

正如 org-mode home page 上所说,这里只是一个非常简单的“五分钟教程”,旨在给读者一个体验。如果你话五分钟,能从这里找到让你兴奋的东西,那么就来尝试 org-mode 吧。如果没有,还是把你的时间和精力投入到能让你兴奋的事情中去吧。

整理这篇文章,花费了近三个小时。可以说,这是我第一次看英文文档看着这么认真。同时也体会到了那个译者的辛苦。当然,水平有限,欢迎拍砖……

原文链接:http://orgmode.org/worg/org-tutorials/orgtutorial_dto.php

from: http://blog.163.com/niujiashu%40126/blog/static/100293042201121510143389/

Org-mode五分钟教程ZZZ的更多相关文章

  1. Org-mode五分钟教程ZZZ - Kaka Abel的日志 - 网易博客

    Org-mode五分钟教程ZZZ - Kaka Abel的日志 - 网易博客 Org-mode五分钟教程ZZZ  

  2. git五分钟教程

    使用Git前,需要先建立一个仓库(repository).您可以使用一个已经存在的目录作为Git仓库或创建一个空目录. 使用您当前目录作为Git仓库,我们只需使它初始化. git init 使用我们指 ...

  3. [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)

    [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...

  4. 利用github pages五分钟建好个人网站+个人博客

    笔者自己在建个人网站/个人博客的时候其实遇到了不少麻烦,但是都一一解决了,这里教给大家最简单的方式. 首先你需要一个GitHub账号,访问https://github.com创建新账号即可. 然后访问 ...

  5. Docker五分钟搭建Wordpress

    当你看到这篇文章的时候,表明你已经有docker的基础知识了,或者可以看上一篇文章 Docker 入门教程. 传统的使用wordpress搭建网站,意味着你需要搭建以下四个环境: php: apach ...

  6. 用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树

    这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托,表达式树这些应用.今天我尝试用简单的方法叙述一下,让大家在五 ...

  7. JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)

    相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑话说前面哦,这篇文章应该能让各位彻底理解标记/清除算法,不过倘若各位猿友不能在五分钟内 ...

  8. 转帖:用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树

    用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树 这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托 ...

  9. 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)

    [项目管理和构建]十分钟教程,eclipse配置maven + 创建maven项目(三) 上篇博文中我们介绍了maven下载.安装和配置(二),这篇博文我们配置一下eclipse,将它和maven结合 ...

随机推荐

  1. Android(java)学习笔记163:开发一个多界面的应用程序之界面间数据传递

    1.界面跳转的数据传递 (1)intent.setData() --> intent.getData():     传递的数据比较简单,一般是文本类型的数据String:倘若我们传递的数据比较复 ...

  2. autoHeight.vue 高度自适应

    autoHeight.vue 高度自适应 <!-- * @description 自适应高度 * @fileName autoHeight.vue * @author 彭成刚 * @date 2 ...

  3. vscode setting.json

    setting.json { "sync.gist": "#github的码##", "sync.lastUpload": "20 ...

  4. Bug的分类和管理流程

    1.按照严重程度划分 定义:是指Bug对软件质量的破坏程度,即BUG的存在将对软件的功能和性能产生怎样的影响 分类:系统崩溃.严重.一般.次要.建议 2.按优先级划分 定义:表示处理和修正软件缺陷的现 ...

  5. 暑假集训 || 树DP

    树上DP通常用到dfs https://www.cnblogs.com/mhpp/p/6628548.html POJ 2342 相邻两点不能同时被选 经典题 f[0][u]表示不选u的情况数,此时v ...

  6. 抓取oracle数据库耗费资源的sql语句

    oracle数据库连接业务系统,而有些sql语句的执行严重影响了oracle的性能,就如同mysql的慢查询一样,mysql可以开启慢查询日志定位这些造成数据库性能下降的语句,而oracle同样可以做 ...

  7. 【Linux】Centos6的iptables防火墙设置

    1,查看防火墙状态 # service iptables status //或 # /etc/init.d/iptables status 2,防火墙的启动.重启,关闭 # service iptab ...

  8. 官网Android离线文档下载

    这是Android的离线API及一些Guide——俗称的/docs文件夹下的内容——英文版的...——http://pan.baidu.com/s/1qXmLlQc

  9. SQL练习题笔记

    查找最晚入职员工的所有信息 select * from employees order by hire_date desc limit 1 查找入职员工时间排名倒数第三的员工所有信息 select * ...

  10. tomcat——大致简介和执行过程

    jsp简介 JSP: JAVA Server Page 使用JAVA语言编写的一种在服务器运行的动态页面 JSP = JAVA + HTML JSP 的执行过程 1: 翻译阶段 把JSP源文件翻译成 ...