# HG changeset patch # User Oleksandr Gavenko # Date 1394141350 -7200 # Node ID b0aec76c3745d8ee28e8e130c9366e28370e0b53 # Parent 6b18658edec86fe8c2c953a77fa74e16a3e5ab7e# Parent 1fc59cf19c28736f3b6cdcbac412cb4df5f28ea9 merged diff -r 6b18658edec8 -r b0aec76c3745 .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)