Emacs org进阶
Table of Contents
1 前面的话
虽然Emacs23自带了Org-mode,但是如果方便地需要使用它,必须做相应的配置才行。而关于Emacs org是什么,到底有什么用,这里不解释,如果你想了解,可以在网上搜索,找到关于Emacs org 和 GTD 的文章。
我推荐你看看《尽管去做:无压工作的艺术》,这是一本介绍如何使用GTD来优化和提高工作效率的畅销书籍。
好了,在这之前,我还是放一张我打开Emacs的截图
2 快速启动remember-mode
;; Ctrl-c-c 快速启动remember (global-set-key "\C-cc" 'remember)
3 快速打开inbox
;; 快速打开inbox (defun gtd() (interactive) (find-file "~/GTD/inbox.org")) (global-set-key "\C-cz" 'gtd)
4 为生成的html着色
正常生成的html白白黑黑的,没有第三种颜色,对一般人来说比较枯燥。如果你需要插入lisp/shell代码,五颜六色的比较赏心悦目,当然我不太喜欢它生成的html,也没有使用。
4.1 下载htmlize.el
这个很简单,谷歌htmlize.el,直接就会找到,很简单。
4.2 添加配置
;; 添加网页着色 (require 'htmlize)
5 设置GTD收集项目的模板
;; GTD 收集项目的模板设置 (org-remember-insinuate) (setq org-directory "~/GTD/") (setq org-remember-templates '( ("Task" ?t "** TODO %? %T\n %i\n %a" "~/GTD/inbox.org" "Tasks") ("Book" ?b "** %? %t\n %i\n %a" "~/GTD/inbox.org" "Book") ("CUBlog" ?c "** %? %t\n %i\n %a" "~/GTD/inbox.org" "CUBlog") ("Project" ?p "** %? %t\n %i\n %a" "~/GTD/inbox.org" "Project") ("GitHub" ?g "** %? %t\n %i\n %a" "~/GTD/inbox.org" "GitHub") ("Log" ?l "** %? %T\n %i\n %a" "~/GTD/log.org" ) )) (setq org-default-notes-file (concat org-directory "/inbox.org"))
6 设置TODO关键字
;;设置TODO关键字 (setq org-todo-keywords (list "TODO(t)" "|" "CANCELED(c)" "DONE(d)"))
7 设置快捷键启动日程表
;; 快速启动 agenda-view (define-key global-map "\C-ca" 'org-agenda-list) (define-key global-map "\C-ct" 'org-todo-list) (define-key global-map "\C-cm" 'org-agenda-month-view)
8 打开Emacs显示日程表
日程表这个东西就是需要不时的看一下,不然单单把它记录起来很容易遗忘,所以我就把它放在启动的时候。每天,开机,打开Emacs,查看今天的日程表,然后做相应的工作,多好~
;; 自动显示日程表 (setq org-agenda-files (list "~/GTD/inbox.org")) (org-agenda-list t ) ;; 关闭其它窗口 (delete-other-windows)
9转接
如果你不知道org或者GTD为何物,可能有些云里雾里的。转接的目的,就是方便在文件内或者文件之间,互换某些内容。比如,我在inbox里完成了某个 TODO
,然后将其标志成 DONE
,接着需要将这部分内容放到finished里面。如果按照正常的流程,肯定是先剪切然后复制。由于每天的可能标记完成的任务比较多,如果都剪切复制,这样的效率太低了,转接就是专门为了提高这个而来的。
;; 将项目转接在各文件之间,方便清理和回顾。 (custom-set-variables '(org-refile-targets (quote (("inbox.org" :level . 1)("canceled.org" :level . 1) ("finished.org":level . 1)) )))