.emacs-my
changeset 1375 5959fa99a6f7
parent 1374 313e428cf77c
child 1376 52d43b70cc7c
equal deleted inserted replaced
1374:313e428cf77c 1375:5959fa99a6f7
  1569   )
  1569   )
  1570 
  1570 
  1571 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1571 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1572 (message "org-mode, GTD, PIM, organize, todo")
  1572 (message "org-mode, GTD, PIM, organize, todo")
  1573 
  1573 
  1574 (when (>= emacs-major-version 22)
  1574 (require 'org)
  1575   (require 'org))
  1575 (require 'org-capture nil t)
       
  1576 
       
  1577 (eval-when 'compile
       
  1578   (require 'org-agenda)
       
  1579   (require 'org-archive)
       
  1580   (require 'remember nil t))
  1576 
  1581 
  1577 ;; XXX org-todo-keywords '((sequence "TODO" "START" "|" "DONE")) for org-version 4.67c
  1582 ;; XXX org-todo-keywords '((sequence "TODO" "START" "|" "DONE")) for org-version 4.67c
  1578 (when (or (featurep 'org) (featurep 'org-install))
  1583 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
  1579   (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
  1584 (setq org-directory "~/my/gtd")
  1580   (setq org-directory "~/my/gtd")
  1585 (setq
  1581   (setq
  1586  org-agenda-ndays 31
  1582    org-agenda-ndays 31
  1587  org-deadline-warning-days 7
  1583    org-deadline-warning-days 7
  1588  org-agenda-show-all-dates t
  1584    org-agenda-show-all-dates t
  1589  org-agenda-format-date "%Y-%m-%d, %A %e %B"
  1585    org-agenda-format-date "%Y-%m-%d, %A %e %B"
  1590  org-agenda-skip-deadline-if-done t
  1586    org-agenda-skip-deadline-if-done t
  1591  org-agenda-skip-scheduled-if-done t
  1587    org-agenda-skip-scheduled-if-done t
  1592  org-agenda-start-on-weekday nil
  1588    org-agenda-start-on-weekday nil
  1593  org-reverse-note-order t
  1589    org-reverse-note-order t
  1594  org-hide-leading-stars t
  1590    org-hide-leading-stars t
  1595  org-tags-column 64
  1591    org-tags-column 64
  1596  org-archive-save-context-info '(time file olpath todo itags)
  1592    org-archive-save-context-info '(time file olpath todo itags)
  1597  )
  1593    )
  1598 (setq my-org-agenda-todo-file (concat org-directory "/TODO.org"))
  1594   (setq my-org-agenda-todo-file (concat org-directory "/TODO.org"))
  1599 (setq my-org-agenda-note-file (concat org-directory "/NOTE.org"))
  1595   (setq my-org-agenda-note-file (concat org-directory "/NOTE.org"))
  1600 (setq org-agenda-file-regexp "\\`[^.#].*[^_]\\.org\\'"
  1596   (setq org-agenda-file-regexp "\\`[^.#].*[^_]\\.org\\'"
  1601       org-agenda-files (list org-directory))
  1597         org-agenda-files (list org-directory))
  1602 ;; (setq my-org-agenda-learning-file (concat org-directory "/LEARNING.org"))
  1598   ;; (setq my-org-agenda-learning-file (concat org-directory "/LEARNING.org"))
  1603 ;; (setq org-agenda-files `(,my-org-agenda-todo-file ,my-org-agenda-note-file ,my-org-agenda-learning-file))
  1599   ;; (setq org-agenda-files `(,my-org-agenda-todo-file ,my-org-agenda-note-file ,my-org-agenda-learning-file))
  1604 (define-key global-map "\C-va" 'org-agenda)
  1600   (define-key global-map "\C-va" 'org-agenda)
  1605 (define-key global-map "\C-ve" (lambda nil (interactive) (find-file my-org-agenda-note-file)))
  1601   (define-key global-map "\C-ve" (lambda nil (interactive) (find-file my-org-agenda-note-file)))
  1606 
  1602 
  1607 (setq org-todo-keywords '("|" "DONE"))
  1603   (setq org-todo-keywords '("|" "DONE"))
  1608 
  1604 
  1609 ;; My tags for remember buffer.
  1605   ;; My tags for remember buffer.
  1610 (setq org-tag-alist
  1606   (setq org-tag-alist
  1611       '(
  1607         '(
  1612         ("ADMIN" . ?a)
  1608           ("ADMIN" . ?a)
  1613         ("BLOG" . ?b)
  1609           ("BLOG" . ?b)
  1614         ("DEVEL" . ?d)
  1610           ("DEVEL" . ?d)
  1615         ("HOME" . ?h)
  1611           ("HOME" . ?h)
  1616         ("GET" . ?g)
  1612           ("GET" . ?g)
  1617         ("LIFE" . ?l)
  1613           ("LIFE" . ?l)
  1618         ("MAIL" . ?m)
  1614           ("MAIL" . ?m)
  1619         ("JOB" . ?j)
  1615           ("JOB" . ?j)
  1620         ("QUESTION" . ?q)
  1616           ("QUESTION" . ?q)
  1621         ("PROJECT" . ?p)
  1617           ("PROJECT" . ?p)
  1622         ("READ" . ?r)
  1618           ("READ" . ?r)
  1623         ("SEE" . ?s)
  1619           ("SEE" . ?s)
  1624         ))
       
  1625 ;; With this variable tags duplicated in *Org Tags* menu. I use
       
  1626 ;; `org-tag-alist' instead until bug fixed.
       
  1627 (setq org-tag-persistent-alist nil)
       
  1628 
       
  1629 (setq org-support-shift-select t)
       
  1630 
       
  1631 (cond
       
  1632  ((featurep 'org-capture)
       
  1633   (setq org-default-notes-file my-org-agenda-todo-file)
       
  1634   (setq org-capture-templates
       
  1635         '(("t" "Todo" entry (file my-org-agenda-todo-file) "* %?\n  SCHEDULED: %T")))
       
  1636   (define-key global-map "\C-vr"
       
  1637     (lambda () (interactive) (org-capture nil "t")))
       
  1638   )
       
  1639  ((or (featurep 'remember) (fboundp 'remember))
       
  1640   (setq remember-annotation-functions '(org-remember-annotation))
       
  1641   (setq remember-handler-functions '(org-remember-handler))
       
  1642   (add-hook 'remember-mode-hook 'org-remember-apply-template)
       
  1643   (define-key global-map "\C-vr" 'org-remember)
       
  1644   (setq org-remember-templates
       
  1645         ;; With one item org-mode do not prompt choose template.
       
  1646         `(
       
  1647           ("todo" ?t "* TODO %?" ,my-org-agenda-todo-file)
       
  1648           ;; ("note" ?n "* %?\n" ,my-org-agenda-note-file)
  1620           ))
  1649           ))
  1621   ;; With this variable tags duplicated in *Org Tags* menu. I use
  1650   (setq org-remember-store-without-prompt t)
  1622   ;; `org-tag-alist' instead until bug fixed.
  1651   (org-remember-insinuate)
  1623   (setq org-tag-persistent-alist nil)
  1652   ))
  1624 
       
  1625   (setq org-support-shift-select t)
       
  1626 
       
  1627   (when (>= emacs-major-version 24)
       
  1628     (require 'org-capture))
       
  1629 
       
  1630   (cond
       
  1631    ((featurep 'org-capture)
       
  1632     (setq org-default-notes-file my-org-agenda-todo-file)
       
  1633     (setq org-capture-templates
       
  1634           '(("t" "Todo" entry (file my-org-agenda-todo-file) "* %?\n  SCHEDULED: %T")))
       
  1635     (define-key global-map "\C-vr"
       
  1636       (lambda () (interactive) (org-capture nil "t")))
       
  1637     )
       
  1638    ((or (featurep 'remember) (fboundp 'remember))
       
  1639     (setq remember-annotation-functions '(org-remember-annotation))
       
  1640     (setq remember-handler-functions '(org-remember-handler))
       
  1641     (add-hook 'remember-mode-hook 'org-remember-apply-template)
       
  1642     (define-key global-map "\C-vr" 'org-remember)
       
  1643     (setq org-remember-templates
       
  1644           ;; With one item org-mode do not prompt choose template.
       
  1645           `(
       
  1646             ("todo" ?t "* TODO %?" ,my-org-agenda-todo-file)
       
  1647             ;; ("note" ?n "* %?\n" ,my-org-agenda-note-file)
       
  1648             ))
       
  1649     (setq org-remember-store-without-prompt t)
       
  1650     (org-remember-insinuate)
       
  1651     ))
       
  1652 
       
  1653   )
       
  1654 
  1653 
  1655 (defun my/org-archive-location (path)
  1654 (defun my/org-archive-location (path)
  1656   "For given PATH make path to archive. Currently add undescore
  1655   "For given PATH make path to archive. Currently add undescore
  1657 before file extention. If file name doesn't match
  1656 before file extention. If file name doesn't match
  1658 `org-agenda-file-regexp' or have no extention return `nil'."
  1657 `org-agenda-file-regexp' or have no extention return `nil'."