--- a/.emacs-my Tue Mar 04 13:39:09 2014 +0200
+++ b/.emacs-my Thu Mar 06 23:29:10 2014 +0200
@@ -1334,24 +1334,16 @@
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(message "remember-mode")
-
-(when (>= emacs-major-version 23)
- (require 'remember))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "org-mode, GTD, PIM, organize, todo")
(when (>= emacs-major-version 22)
(require 'org))
;; XXX org-todo-keywords '((sequence "TODO" "START" "|" "DONE")) for org-version 4.67c
-;; XXX (setq org-todo-keywords '("TODO" "START" "DONE")) for org-version 6.05b
(when (or (featurep 'org) (featurep 'org-install))
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(setq org-directory "~/devel/my-devel/gtd")
(setq
- org-default-notes-file nil
org-agenda-ndays 31
org-deadline-warning-days 7
org-agenda-show-all-dates t
@@ -1371,6 +1363,8 @@
(define-key global-map "\C-va" 'org-agenda)
(define-key global-map "\C-ve" (lambda nil (interactive) (find-file my-org-agenda-note-file)))
+ (setq org-todo-keywords '("TODO" "DONE"))
+
;; My tags for remember buffer.
(setq org-tag-alist
'(
@@ -1391,7 +1385,15 @@
;; `org-tag-alist' instead until bug fixed.
(setq org-tag-persistent-alist nil)
- (when (or (featurep 'remember) (fboundp 'remember))
+ (cond
+ ((featurep 'org-capture)
+ (setq org-default-notes-file my-org-agenda-todo-file)
+ (setq org-capture-templates
+ '(("t" "Todo" entry (file my-org-agenda-todo-file) "* TODO %?\n SCHEDULED: %T")))
+ (define-key global-map "\C-vr"
+ (lambda () (interactive) (org-capture nil "t")))
+ )
+ ((or (featurep 'remember) (fboundp 'remember))
(setq remember-annotation-functions '(org-remember-annotation))
(setq remember-handler-functions '(org-remember-handler))
(add-hook 'remember-mode-hook 'org-remember-apply-template)
@@ -1404,14 +1406,44 @@
))
(setq org-remember-store-without-prompt t)
(org-remember-insinuate)
- )
-
- ;; (setq org-todo-keyword-faces
- ;; '(("TODO" . (:foreground "red" :weight bold))
- ;; ("WAIT" . (:foreground "orange" :weight bold))
- ;; ("DONE" . (:foreground "green" :weight bold))) )
+ ))
+
)
+
+(defun my-org-archive-location (org-file)
+ (concat (if (string-match "\\(.*\\)\\.org$" org-file)
+ (match-string 1 org-file)
+ org-file)
+ "_done.org"))
+
+(defun my-org-archive ()
+ "Move marked by `org-done-keywords' entries to archive file defined by `my-org-archive-location'."
+ (interactive)
+ (let ( (org-archive (my-org-archive-location (buffer-file-name)))
+ (entry-re (concat "^\\* "))
+ (entry-done-re (concat "^\\* *" (mapconcat 'regexp-quote org-done-keywords "\\|") " "))
+ entry-beg entry-end )
+ (save-excursion
+ (show-all)
+ (kill-new "")
+ (goto-char (point-min))
+ (while (re-search-forward entry-done-re nil t)
+ (setq entry-beg (line-beginning-position))
+ ()
+ (if (re-search-forward entry-re nil t)
+ (beginning-of-line)
+ (goto-char (point-max)))
+ (setq entry-end (point))
+ (let ( (last-command 'kill-region) )
+ (kill-region entry-beg entry-end))
+ )
+ (find-file org-archive)
+ (goto-char (point-max))
+ (insert ?\n)
+ (yank)
+ )))
+
(setq org-agenda-include-diary t)
(defun my-org-kill-by-tag (tag)