merged
authorOleksandr Gavenko <gavenkoa@gmail.com>
Thu, 06 Mar 2014 23:29:10 +0200
changeset 1113 b0aec76c3745
parent 1110 6b18658edec8 (current diff)
parent 1112 1fc59cf19c28 (diff)
child 1114 10adeb987567
merged
.emacs-my
--- 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)