用 emacs 的应该都知道 org-mode 这个大杀器,一直以来都想在工作里面用上他,可总是习惯不了。
这几天尝试把 org-mode 打造成了我的一个 job tracker,用来记录自己的 todo 和完成情况。
在 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,选择不同的模式看。每周的工作情况在那里面一目了然,呵呵。
这几天尝试把 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