专为GTD定制的emacs简单版
1 缘由
前段时间给同事介绍了 GTD 工作方法了。尽管这是一个非常棒而且对工作很有帮助的方法,可苦于没有很好的管理软件,很多同事都没有开始使用。而在我的经验中,最好用的 GTD 软件当属 emacs 中的 ORG 模式。而对于 emacs 这个号称“神的编辑器”软件,通常进入它的世界是需要经过一个痛苦、漫长(大概半年)的煎熬的。所以,为了能让更多朋友使用到这个又好又强大的 GTD 软件,又不需要为入门而浪费很多时间。所以,我决定为大家定制一个专为 GTD 使用的 emacs 软件版本。
在定制过程中,遇到了很多问题,但最终通过了网上各位朋友的资料,顺利解决了,并且获得了自我提高。在此,向提供各项参考资料的朋友(见参考资料一栏)表示衷心的感谢。
最后,希望使用的朋友能够多提些改进建议,使最终定制的软件更容易使用,这样能让更多朋友用得更爽哈!
2 安装
点击如下链接 http://download.csdn.net/detail/lvye1221/8075041 下载定制后软件包
2. 双击运行 D:\emacs-23.4-gtd-jack\home\install\install.bat 文件即可(如果出现问题,再双击 setHomel.reg)
补充:
如果解压文件夹没有放在 D:\ 根目录,那么需要编辑 你的路径\emacs-23.4-gtd-jack\home\install\emacs-home\emacs-home\.emacs 中,修改:
(setenv "HOME" "d:/scratch/gtd-software/emacs-23.4-gtd-jack/home")
修改 d:/scratch/gtd-software/emacs-23.4-gtd-jack/home 字符串为 你的路径/emacs-23.4-gtd-jack/home
3 GTD 流程
3.1 收集
按 [F12],输入临时想法后,按 ctrl + s 键,保存想法到 work 分类中,并会自动设定此任务的计划时间为今天。GTD 工作方法,以及网上的资料都建议将问题分类。为简单起见,这里就强制设定为 work 分类。如果想在插入项目时,自动插入到具体分类的话,可以参考如下代码,修改配置文件即可。
(setq org-remember-templates
'(("work" ?w "* TODO %?\n SCHEDULED: %t" "~/org/work.org" "work")
("inbox" ?i "* TODO %?\n %i\n" "~/org/work.org" "inbox")
("idea" ?d "* TODO %?\n %i\n %a" "~/org/work.org" "idea")
))
3.2 整理
添加新任务后,按 F8 键重新查看更新后的任务列表
3.2.1 切换任务状态
用光标在任务上移动,并不断按 t 键,切换任务状态(TODO, DONE, 无)
3.2.2 设定任务优先级
按住 Shift + 向上键(或向下键) 不断切换任务级别([#A], [#B], [#C], 无)
3.3 归档
3.3.1 操作步骤用上下键,将光标移动到对应任务上,按 'a' (archieve 归档的意思),然后在 emacs 的底部状态栏上会提示 "Archieve this subtree or entry? (y or n)" 按下 'y' 即可归档
3.3.2 查看归档文件
在任务列表视图中,按 'a' 即可完成任务归档,通常生成的文件在 D:\emacs-23.4-gtd-jack\home\org\work.org_archive 文件中,可以直接拖住到 emacs 或其他编辑器中打开查看
3.4 回顾
在修改任务的状态和优先级别后,按 F8 键重新查看更新后的任务列表,接着可以按 'd' 键切换到当日模式
3.5 执行
执行任务。也可以对任务进行计时,但由于按键会麻烦一点如下,可以不使用:
Ctrl+c Ctrl+x Ctrl+i 代表启动计时(可以按住 ctrl 键不松,然后依次按 c, x, i 键即可)
Ctrl+c Ctrl+x Ctrl+i 代表结束计时(可以按住 ctrl 键不松,然后依次按 c, x, o 键即可)
4 定制 emacs 中的小经验
4.1 修改快捷键映射
先找到命令所对应的具体函数。例如:想获取 remember 模式下的保存临时文件的 C-c C-c 所对应的函数名:
[C-h v] remember-mode-map
remember-mode-map is a variable defined in `remember.el'.
Its value is (keymap
(3 keymap
(11 . remember-destroy)
(3 . remember-finalize))
(24 keymap
(19 . remember-finalize)))
打开 remember.el 可以找到: (define-key map "\C-c\C-c" 'remember-finalize)。即找到 remember-finalize 函数。
5 参考资料
5.1 用Org-mode 实现 GTD
1. 规划了不同文件的分类: inbox 收件箱、task 待办事项 等
2. 状态切换 "TODO(t!)" "NEXT(n)" "WAITTING(w)" "SOMEDAY(s)" "|" "DONE(d@/!)" "ABORT(a@/!)"
3. 提出情景标签的定义
这位作者绝对是一位大神级别的任务,有空可多多阅读 他的博客
5.2 GTD实践---使用Emacs和Org-mode
作者介绍了,在各种情境下的使用情况。
好喜欢他关于项目计划时间以及完成时间的视图
5.3 Emacs GTD
5.4 Org-mode,最强的任务管理利器
5.5 Remember Mode 指导
%a 代表追加当前行后面的信息
5.6 emacs中怎样修改Major Mode的快捷键
5.7 使得emacs启动后能够最大化的方式
6 附录
熟悉 emacs 配置的朋友,直接在 .emacs 文件中采用如下配置即可:
;; org mode
;; (require 'org-install)
(setq org-agenda-files (list "~/org/work.org"))
;; (define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
;; org-remember 快捷键设置
(define-key global-map [f12] 'org-remember)
(org-remember-insinuate)
;; (setq org-remember-templates
;; '(("work" ?w "* TODO %?\n SCHEDULED: %t" "~/org/work.org" "work")
;; ("inbox" ?i "* TODO %?\n %i\n" "~/org/work.org" "inbox")
;; ("idea" ?d "* TODO %?\n %i\n %a" "~/org/work.org" "idea")
;; ))
(setq org-remember-templates
'(("work" ? "* TODO %?\n SCHEDULED: %t" "~/org/work.org" "work")
))
;; 修改 remember 的保存方式
;; (define-key remember-mode-map (kbd "C-s") 'remember-finalize)
;; 修改保存文件快捷键
(global-set-key "\C-s" 'remember-finalize)
(setq org-default-notes-file "~/org/work.org")
;;开机自动显示日程表
(org-agenda-list t)
;;关闭其它窗口
(delete-other-windows)
(define-key global-map [f8] 'org-agenda-list)
;; 自动最大化软件
(run-with-idle-timer 0.01 nil 'w32-send-sys-command 61488)