这几天尝试把 org-mode 打造成了我的一个 job tracker,用来记录自己的 todo 和完成情况。
;;
;; org-mode
;;
;; (setq org-agenda-files '("~/org"))
(setq org-agenda-files (file-expand-wildcards "~/org/*.org")) ;; 把 ~/org/*.org 都加入到 agenda 里面,使用 C-c a a 看 agenda 的时候,会从这些文件里面读
(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) ;; 变到 done 状态的时候,记录一下时间
(add-hook 'org-mode-hook
(lambda ()
(org-set-local 'yas/trigger-key [tab])
(define-key yas/keymap [tab] 'yas/next-field-group)))
(setq org-todo-keywords
'((sequence "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CANCELED(c@)"))) ;; 设置一下 todo 的关键字,| 左边的是未完成状态,右边是 done 的状态
(setq org-default-notes-file "~/org/todo.org") ;; 设置 remember 的默认文件
;;; Load Org Remember Stuff
(require 'remember)
(org-remember-insinuate)
;; Start clock in a remember buffer and switch back to previous clocking task on save
;; (add-hook 'remember-mode-hook 'org-clock-in 'append)
;; (add-hook 'org-remember-before-finalize-hook 'bh/clock-in-interrupted-task)
;; I use C-M-r to start org-remember
(global-set-key (kbd "C-c m r") 'org-remember)
;; (define-key global-map "\C-cr" 'org-remember)
;; Keep clocks running
(setq org-remember-clock-out-on-exit nil)
;; C-c C-c stores the note immediately
(setq org-remember-store-without-prompt t)
;; I don't use this -- but set it in case I forget to specify a location in a future template
(setq org-remember-default-headline "Tasks") ;; 设置默认 remember 添加的 headline
;; 3 remember templates for TODO tasks, Notes, and Phone calls
(setq org-remember-templates (quote (("todo" ?t "** TODO %?\nCREATED: %U" nil nil nil)
;; ("note" ?n "* %? :NOTE:\n %U\n %a\n :CLOCK:\n :END:" nil bottom nil)
;; ("appointment" ?a "* %?\n %U" "~/git/org/todo.org" "Appointments" nil)
;; ("org-protocol" ?w "* TODO Review %c%!\n %U" nil bottom nil))))
))) ;;设置 todo 的模板,里面第三个参数是模板,里面的变量的意思 google 下
在 todo.org 里面有两个 headline,一个是 * Tasks ,一个是 * Done。
配置好后,在任意的 buffer 按 C-c m r 就可以打开个 buffer,输入 todo 信息,然后按 C-c C-c 就可以把 todo 添加到 todo.org 里面去了,会添加到 * Tasks 这个 headline 下面。
完成一个任务的时候,在那上面按 C-c C-t 然后选择 done 就可以设置完成。手动(还不会自动。。。)把完成的任务挪到 Done 里面。
如果想看看有完成情况的统计,可以在 agenda 里面看,C-c a a,然后按 v,选择不同的模式看。每周的工作情况在那里面一目了然,呵呵。
Week-agenda (W29): Monday 19 July 2010 W29 Tuesday 20 July 2010 Wednesday 21 July 2010 todo: 17:33...... [ TODO 多看看 org-mode 的 agenda Thursday 22 July 2010 todo: 15:18...... Closed: DONE a test todo: 15:18...... [ DONE a test Friday 23 July 2010 todo: 14:50...... [ TODO 梳理一下 todo: 17:08...... [ TODO 了解下 todo: 22:49...... [ TODO 申请 Saturday 24 July 2010 Sunday 25 July 2010