Org-mode, 用文本文件管理日常(一)

本文翻译自Bernt Hansen的《Org-mode》文档,介绍如何利用Emacs的Org-Mode进行个人信息管理,包括通过Git安装、设置、日常管理、日程表配置及按键绑定。Org-Mode的强大功能可以替代Office全家桶,甚至绘图软件。通过org文件,结合Emacs和Git,可以打造个人的‘印象笔记’。
摘要由CSDN通过智能技术生成

写在开始


本文翻译自 http://doc.norang.ca/org-mode.html,原文作者为Bernt Hansen 。由于原文较长,因此会分多篇文章来发布。转载请标记出处。

使用Emacs也有几年时间了,org mode平时工作生活中也会用到,原文中提到的capture,任务管理,归档,发布导出等功能或多 或少有所使用,但是通读这篇文章后,还是收获颇多,所以趁着放假,花了些时间把全文翻译了下,以供后续继续学习。

Emacs org mode非常强大,可以说熟练使用org mode,可以替换微软的office 全家桶(word, powerpoint, excel). 当Emacs配合plantuml,可以完全替代各种UML绘图软件(viso,startuml)。Emacs + org + github(git) 就可以搭建 自己的“印象笔记”。

Emacs其实不仅仅是代码编辑器,当然Emacs也是非常适合来阅读管理源码;当学会org mode后,Emacs就不局限在代码编辑器范畴, 可以绘图,可以写文章,可以做翻译(本文也是在org mode文件中翻译完成,通过org tangle来生成的),可以说学会Emacs,终生受益。

原文包含20节一级标题,详情如下:

前三节比较简单,主要介绍些背景以及声明文档的版权等(待所有翻译发布后,会将翻译上传到github上), 从第四节开始才进入正题。

因此将前四节合为一篇文章来发布.

由于水平有限,错误在所难免,欢迎指正!

正文开始:

1 如何使用该文档


在使用该文档时,假设你已经对org-mode有一些了解,比如agenda,capture模式等。这样就不会对org-mode太陌生。更多org-mode相关的信息 可以参考Org-Mode使用手册 也可以通过浏览Worg Site网站来获取。

我一直使用org-mode作为个人信息管理工具多年了。刚开始只是少量使用 TODO 和 DONE 这些关键字。随着时间推移,我又做了一些针对自己工作流的定制化, 所有的这些定制化都包含在这篇文档中。

我也会经常修改自己的工作流程,并且尝试些新奇的功能。本文将主要包含的则是我当 前使用的比较成熟的org-mode设置。我会每隔30天来将新尝试的工作流设置修改更新 到这个文档中(假设在此期间这些设置还在使用)因此,通过这种方式保证新的流程 能够有机会变得成熟。

本文是通过org 文件编写,可以在emacs中打开该文件,通过执行tangle的快捷键 C-c C-v C-t 在当前目录生成elisp脚本文件org-mode.el。tangle 命令将会提取所有 elisp 代码段到该lisp文件中,因此可以在你的.emacs配置文件引用这些配置, 从而能够快速 使用这些配置。

2 版权


Copyright (C)  2013  Bernt Hansen.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
  
Code in this document is free software: you can redistribute it
and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation, either
version 3 of the License, or (at your option) any later version.
  
This code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

本文http://doc.norang.ca/org-mode.html(无论是HTML format 还是Org format)都是遵循GNU自由文档协议1.3或者以上版本。

而所有代码示例以及CSS风格代码段都是遵循GNU General Public License v3或者以上版本。

3 修改记录 - 一些新东西


本文档版本信息可以通过调用获取.本文由 org-mode 自带 的发布功能生成,org mode版本库通过获取.

本文源代码可从文本org文件获取。我会争取 每个月更新一次该文档。

所有文档的修改记录可以从如下链接获取:git://git.norang.ca/org-mode-doc.git.

4 开始


org-mode 非常容易入门。你所需要做的就是在emacs配置文件添加几行配置就可以使用 git 仓库中 最新的org-mode了。

4.1 通过Git来安装org-mode

我通常会在本地=~/git/log-mode/=下克隆一份 org-mode源码。克隆源码命令如下:

cd ~/git
git clone git://orgmode.org/org-mode.git

可以通过如下命令来获取并编译org-mode开发者提交的最新的更新:

cd ~/git/org-mode
git pull
make uncompiled

我通常在设置中使用没有编译的源码,因此未编译的 make 目标已经足够使用了。

通常本地的org仓库源码跟踪远程仓库的 master 分支的更新。

4.2 Org-Mode 设置

如下的在我.emacs配置文件中的代码段,在我大部分的缓冲区都开启了=org-mode=。对于后缀为 .org.org_archive 以及 .txt=文件, =org-mode 是默认的应用模式。

;;;
;;; Org Mode
;;;
(add-to-list 'load-path (expand-file-name "~/git/org-mode/lisp"))
(add-to-list 'auto-mode-alist '("\\.\\(org\\|org_archive\\|txt\\)$" . org-mode))
(require 'org)

以上就是所有开始阶段你需要做的配置来在org-mode中使用标题以及列表。

本文其他的部分,将描述我定制化的设置,我如何来组织org-mode相关的文件,以及一些为 了更符合我的工作习惯而做的修改。

4.3 用org文件来管理日常

任务可以被分解为多个逻辑组或者项目。可以用不同的org文件来管理大的任务组 可以通过不同子目录来组织管理隶属于不同项目的多个文件。

如下是我在生活中使用的文件。

如下的org 文件来管理与工作无关的任务:

FilenameDescription
todo.orgPersonal tasks and things to keep track of
gsoc2009.orgGoogle Summer of Code stuff for 2009
farm.orgFarm related tasks
mark.orgTasks related to my son Mark
org.orgOrg-mode related tasks
git.orgGit related tasks

如下的org文件则来管理org capture相关的记录以及任务:

FilenameDescription
refile.orgCapture task bucket

如下是工作相关的org文件,来跟踪工作相关的记录以及事件(描述中的真实客户名称已 经被隐藏)

FilenameDescription
norang.orgNorang tasks and notes
XYZ.orgXYZ Corp tasks and notes
ABC.orgABC Ltd tasks
ABC-DEF.orgABC Ltd tasks for their client DEF Corp
ABC-KKK.orgABC Ltd tasks for their client KKK Inc
YYY.orgYYY Inc tasks

在处理多个客户以及多个客户相关项目时org-mode让我得心应手。一个org文件就可以记录 完成一个客户以及一个项目所有信息。

如上表,我负责客户ABC公司多个系统。将不同客户分到不同的org文件管理,能够保持所有 事情更加具有逻辑性,也方便在org agenda中过滤以及添加需要显示在agenda视图中的信息。其他的org文件只用作发布,这些文件并不会添加到org agenda管理范畴,更多细节,可以参考后续的发布导出章节.

4.4 日程表设置

下面是我当前的=org-agenda-files=配置。

(setq org-agenda-files (quote ("~/git/org"
                               "~/git/org/client1"
                               "~/git/client2")))

org-mode 可以通过快捷键 C-c [ 以及 = C-c ]= 来配置变量 org-agenda-files 变量, 从而可以增加以及删除agenda管理文件。但是这些命令会将我的默认配置的路径列表替换成 文件,我并不希望这样,因为如果这样,后面在这些路径添加的文件将不会自动纳入agenda管理。这样会导致有些文件没法通过agenda跟踪,从而导致自己错过一些非常重要的提醒。

我现在已经将快捷键 C-c [ 以及 C-c ] 在 org-mode-hook 中禁用了,这样就可以阻止 上面提到情况发生。通常我只会手工对 org-agenda-files 变量设置路径参数。但是 修改这个变量中路径情况还是很少发生的,因为只要添加新文件到这些已经存在的路径,这些 文件就会被agenda自动管理起来。

我同时也会禁用注释快捷键 C-c ; 因为从来不用它。但是有时候在我编辑代码块时候, 会不小心误碰,因此把它禁用了。

上个例子中,我把路径 ~/git/client2 放到另一个叫 ~/git/org的git仓库中。这样 我就可以用它来处理一些个人的事情。我会在不同的机器上同步这些信息,如果在非该客户 机器上,我会跳过这些隐私信息。我会在不同机器上同步我个人信息,但是并不会同步客户 相关信息,所以 org-agenda-files 在自己机器上并不会包含 ~/git/client2 目录。

4.5 Org文件结构

大部分我的org文件第一层作为标题来对任务项目分类。任务以及项目从第二层开始。

这是我org file第一层标题示例

todo.org:

  • Special Dates

    Includes level 2 headings for

    • Birthdays

    • Anniversaries

    • Holidays

  • Finances

  • Health and Recreation

  • House Maintenance

  • Lawn and Garden Maintenance

  • Notes

  • Tasks

  • Vehicle Maintenance

  • Passwords

norang.org:

  • System Maintenance

  • Payroll

  • Accounting

  • Finances

  • Hardware Maintenance

  • Tasks

  • Research and Development

  • Notes

  • Purchase Order Tracking

  • Passwords

第一层任务通常都会设置 property drawer 用来指定该任务在该类型树中的分类。通常我的org文件第一层标题设置如下

* Health and Recreation
  :PROPERTIES:
  :CATEGORY: Health
  :END:
  ...
* House Maintenance
  :PROPERTIES:
  :CATEGORY: House
  :END:

4.6 按键绑定

由于我高度依赖agenda.为使得能够更快速启动agenda, 我又将 F12 也绑定到 org-agenda 功能上, 这样会比 C-c a 更加快速,由于我每天会查看agenda上百次,这样节省了很多时间。

按键功能频率
F12日程 (比 C-c a 少按一个键 )Very Often
C-c b切换到org 文件Very Often
F11切换到下一个计时任务(需要STARTED状态)Very Often
C-c c捕获事件Very Often
C-F11任务启动计时Often
f9 gGnus - 经常需要检查邮件Often
f5显示所有todo状态的任务Often
S-f5WidenOften
f9 bbbdb快捷键Often
f9 c日历快捷键Often
C-S-f12保存并发布项目Often
C-c l将链接存储,并作为候选Often
f8查看下个agenda文件Sometimes
f9 r引用选择区域(note:没有这个函数)Sometimes
f9 t插入非激活状态时间(note:没有这个函数)Sometimes
f9 v切换选择模式 (显示和编辑链接)Sometimes
C-f9上个缓冲区Sometimes
C-f10下个缓冲区Sometimes
C-x n r限定显示区域(note:widen反操作)Sometimes
f9 f引用插入文件Sometimes
f9 i显示消息Sometimes
f9 I批量计时(note:没有这个函数)Sometimes
f9 O批量取消计时(note:没有这个函数)Sometimes
f9 o启动草稿模式Sometimes
f9 s切换到草稿模式Sometimes
f9 h隐藏其他任务Rare
f7切换行分割Rare
f9 T切换激活时间戳Rare
C-c a启动日程 (减少emacs 测试)Rare

<未完待续>

更多资讯,可以关注如下微信公众号:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值