.emacs-my
changeset 1113 b0aec76c3745
parent 1110 6b18658edec8
parent 1112 1fc59cf19c28
child 1114 10adeb987567
equal deleted inserted replaced
1110:6b18658edec8 1113:b0aec76c3745
  1332   (jdone-setup-key-binding)
  1332   (jdone-setup-key-binding)
  1333   (jdone-integrate-hook)
  1333   (jdone-integrate-hook)
  1334   )
  1334   )
  1335 
  1335 
  1336 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1336 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1337 (message "remember-mode")
       
  1338 
       
  1339 (when (>= emacs-major-version 23)
       
  1340   (require 'remember))
       
  1341 
       
  1342 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       
  1343 (message "org-mode, GTD, PIM, organize, todo")
  1337 (message "org-mode, GTD, PIM, organize, todo")
  1344 
  1338 
  1345 (when (>= emacs-major-version 22)
  1339 (when (>= emacs-major-version 22)
  1346   (require 'org))
  1340   (require 'org))
  1347 
  1341 
  1348 ;; XXX org-todo-keywords '((sequence "TODO" "START" "|" "DONE")) for org-version 4.67c
  1342 ;; XXX org-todo-keywords '((sequence "TODO" "START" "|" "DONE")) for org-version 4.67c
  1349 ;; XXX (setq org-todo-keywords '("TODO" "START" "DONE")) for org-version 6.05b
       
  1350 (when (or (featurep 'org) (featurep 'org-install))
  1343 (when (or (featurep 'org) (featurep 'org-install))
  1351   (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
  1344   (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
  1352   (setq org-directory "~/devel/my-devel/gtd")
  1345   (setq org-directory "~/devel/my-devel/gtd")
  1353   (setq
  1346   (setq
  1354    org-default-notes-file nil
       
  1355    org-agenda-ndays 31
  1347    org-agenda-ndays 31
  1356    org-deadline-warning-days 7
  1348    org-deadline-warning-days 7
  1357    org-agenda-show-all-dates t
  1349    org-agenda-show-all-dates t
  1358    org-agenda-format-date "%Y-%m-%d, %A %e %B"
  1350    org-agenda-format-date "%Y-%m-%d, %A %e %B"
  1359    org-agenda-skip-deadline-if-done t
  1351    org-agenda-skip-deadline-if-done t
  1368   (setq my-org-agenda-note-file (concat org-directory "/NOTE.org"))
  1360   (setq my-org-agenda-note-file (concat org-directory "/NOTE.org"))
  1369   (setq my-org-agenda-learning-file (concat org-directory "/LEARNING.org"))
  1361   (setq my-org-agenda-learning-file (concat org-directory "/LEARNING.org"))
  1370   (setq org-agenda-files `(,my-org-agenda-todo-file ,my-org-agenda-note-file ,my-org-agenda-learning-file))
  1362   (setq org-agenda-files `(,my-org-agenda-todo-file ,my-org-agenda-note-file ,my-org-agenda-learning-file))
  1371   (define-key global-map "\C-va" 'org-agenda)
  1363   (define-key global-map "\C-va" 'org-agenda)
  1372   (define-key global-map "\C-ve" (lambda nil (interactive) (find-file my-org-agenda-note-file)))
  1364   (define-key global-map "\C-ve" (lambda nil (interactive) (find-file my-org-agenda-note-file)))
       
  1365 
       
  1366   (setq org-todo-keywords '("TODO" "DONE"))
  1373 
  1367 
  1374   ;; My tags for remember buffer.
  1368   ;; My tags for remember buffer.
  1375   (setq org-tag-alist
  1369   (setq org-tag-alist
  1376         '(
  1370         '(
  1377           ("ADMIN" . ?a)
  1371           ("ADMIN" . ?a)
  1389           ))
  1383           ))
  1390   ;; With this variable tags duplicated in *Org Tags* menu. I use
  1384   ;; With this variable tags duplicated in *Org Tags* menu. I use
  1391   ;; `org-tag-alist' instead until bug fixed.
  1385   ;; `org-tag-alist' instead until bug fixed.
  1392   (setq org-tag-persistent-alist nil)
  1386   (setq org-tag-persistent-alist nil)
  1393 
  1387 
  1394   (when (or (featurep 'remember) (fboundp 'remember))
  1388   (cond
       
  1389    ((featurep 'org-capture)
       
  1390     (setq org-default-notes-file my-org-agenda-todo-file)
       
  1391     (setq org-capture-templates
       
  1392           '(("t" "Todo" entry (file my-org-agenda-todo-file) "* TODO %?\n  SCHEDULED: %T")))
       
  1393     (define-key global-map "\C-vr"
       
  1394       (lambda () (interactive) (org-capture nil "t")))
       
  1395     )
       
  1396    ((or (featurep 'remember) (fboundp 'remember))
  1395     (setq remember-annotation-functions '(org-remember-annotation))
  1397     (setq remember-annotation-functions '(org-remember-annotation))
  1396     (setq remember-handler-functions '(org-remember-handler))
  1398     (setq remember-handler-functions '(org-remember-handler))
  1397     (add-hook 'remember-mode-hook 'org-remember-apply-template)
  1399     (add-hook 'remember-mode-hook 'org-remember-apply-template)
  1398     (define-key global-map "\C-vr" 'org-remember)
  1400     (define-key global-map "\C-vr" 'org-remember)
  1399     (setq org-remember-templates
  1401     (setq org-remember-templates
  1402             ("todo" ?t "* TODO %?" ,my-org-agenda-todo-file)
  1404             ("todo" ?t "* TODO %?" ,my-org-agenda-todo-file)
  1403             ;; ("note" ?n "* %?\n" ,my-org-agenda-note-file)
  1405             ;; ("note" ?n "* %?\n" ,my-org-agenda-note-file)
  1404             ))
  1406             ))
  1405     (setq org-remember-store-without-prompt t)
  1407     (setq org-remember-store-without-prompt t)
  1406     (org-remember-insinuate)
  1408     (org-remember-insinuate)
  1407     )
  1409     ))
  1408 
  1410 
  1409   ;; (setq org-todo-keyword-faces
  1411   )
  1410   ;;       '(("TODO" . (:foreground "red" :weight bold))
  1412 
  1411   ;;         ("WAIT" . (:foreground "orange" :weight bold))
  1413 
  1412   ;;         ("DONE" . (:foreground "green" :weight bold))) )
  1414 (defun my-org-archive-location (org-file)
  1413   )
  1415   (concat (if (string-match "\\(.*\\)\\.org$" org-file)
       
  1416               (match-string 1 org-file)
       
  1417             org-file)
       
  1418           "_done.org"))
       
  1419 
       
  1420 (defun my-org-archive ()
       
  1421   "Move marked by `org-done-keywords' entries to archive file defined by `my-org-archive-location'."
       
  1422   (interactive)
       
  1423   (let ( (org-archive (my-org-archive-location (buffer-file-name)))
       
  1424          (entry-re (concat "^\\* "))
       
  1425          (entry-done-re (concat "^\\* *" (mapconcat 'regexp-quote org-done-keywords "\\|") " "))
       
  1426          entry-beg entry-end )
       
  1427     (save-excursion
       
  1428       (show-all)
       
  1429       (kill-new "")
       
  1430       (goto-char (point-min))
       
  1431       (while (re-search-forward entry-done-re nil t)
       
  1432         (setq entry-beg (line-beginning-position))
       
  1433         ()
       
  1434         (if (re-search-forward entry-re nil t)
       
  1435             (beginning-of-line)
       
  1436           (goto-char (point-max)))
       
  1437         (setq entry-end (point))
       
  1438         (let ( (last-command 'kill-region) )
       
  1439           (kill-region entry-beg entry-end))
       
  1440         )
       
  1441       (find-file org-archive)
       
  1442       (goto-char (point-max))
       
  1443       (insert ?\n)
       
  1444       (yank)
       
  1445       )))
  1414 
  1446 
  1415 (setq org-agenda-include-diary t)
  1447 (setq org-agenda-include-diary t)
  1416 
  1448 
  1417 (defun my-org-kill-by-tag (tag)
  1449 (defun my-org-kill-by-tag (tag)
  1418   "Put all entries that matches TAG from current org-file to `kill-ring'."
  1450   "Put all entries that matches TAG from current org-file to `kill-ring'."