org-capture ãEmacs + org-modeã§ç´ æ©ãã¡ã¢ãã¨ãæ°ããæ¹æ³ã
ãEmacs本を書きましたã
ããã§ã¯ãEmacsã§ã¡ã¢ãã¨ãææ°ã®æ¹æ³ãç´¹ä»ãã¾ãã
org-modeãã¼ã¸ã§ã³7ç³»åãªãªã¼ã¹
7/19ã« org-mode 7.01ããªãªã¼ã¹ããã¾ããã é·ã6.xxæ代ãçµãããã¤ãã«ã¡ã¸ã£ã¼ãã¼ã¸ã§ã³ã¢ãããã¾ããã ç´°ã ãªãªãªã¼ã¹ãç¶ãããã¦ãã¾ãã
次ä¸ä»£ã¡ã¢æ¸ããã¼ã« org-capture
去年初頭にorg-rememberというメモ環境構築を紹介 ãã¾ããããorg-captureã¨ãããããæ´ç·´ãããæ¹æ³ãããã©ã«ãã«ãªãã¾ããã
org-rememberã®æ¹ãåç¶ãã¦ããã®ã§ãç¡çã«ä¹ãæããå¿ è¦ã¯ããã¾ããã org-modeèªä½ãEmacsæ¨æºæ·»ä»ã«ãªã£ã¦ãã¦ãæ·»ä»çã®org-modeã¯ããå¤ãããããã¨æ°å¹´ã»ã©ã¯org-rememberã¦ã¼ã¶ãããã¨æããã¾ãã æ°ãããã®å¥½ããªäººã¯ãæ¯éã¨ãä¹ãæãã¦ã¿ã¾ãããã
ã¡ãªãã
org-rememberã§ã¯ãremember.elãä½æããä¸æãããã¡ãorg-modeã«ãã¦ãæå®ã®å ´æã«æ¸ãè¾¼ãç¨åº¦ã§ããã 対ãã¦ãorg-captureã¯ãã¡ã¤ã«ã«ç´æ¥æ¸ãè¾¼ãæ¹å¼ã«ãªã£ãããããã¡ã¤ã«ã®å 容ã«åããå¦çãè¡ããããã«ãªãã¾ããã
- ä»»æã®ããªã¼ã«ã¡ã¢ãç½®ããã¨ãã§ãã
- org-rememberã§ã¯ã¬ãã«1ã®è¦åºãã¨ãã¡ã¤ã«ã®å é ã»æ«å°¾ã®ã¿
- ç¾å¨è¨æä¸ï¼clock-inãã¦ããï¼ã¿ã¹ã¯ã®ã¡ã¢ãæ¸ããã¨ãã§ãã
- è¨å®æ¬¡ç¬¬ã§ã¡ã¢ãç½®ãå ´æã®ã¾ãããè¦ããã¨ãã§ãã
- 表ã®è¡ã追å ã»ç·¨éãããã¨ãã§ãã
- å¹´ã»æã»æ¥ã®è¦åºããèªåä½æããæ¥è¨ã®ãããªãã¡ã¤ã«ãä½æã§ãã
ãã¢ã³ã¹ãã¬ã¼ã·ã§ã³
org-captureã¯å¤æ©è½ãªã®ã§ãè¨èã§èª¬æãããããå®éã«åããã¦ã¿ãã¨ãããããã¾ãã
以ä¸ã®ã³ã¼ããè©ä¾¡ãã¦ãã ããã
(require 'org-capture) (defun org-capture-demo () (interactive) (let ((file "/tmp/org-capture.org") org-capture-templates) (find-file-other-window file) (unless (save-excursion (goto-char 1) (search-forward "* test\n" nil t)) (insert "* test\n** entry\n")) (other-window 1) (setq org-capture-templates `(("a" "ãµã¤ãã®ã¨ã³ããªã¼å¾ã«è¿½å " entry (file+headline ,file "entry") "* %?\n%U\n%a\n") ("b" "ãµã¤ãã®ã¨ã³ããªã¼åã«è¿½å " entry (file+headline ,file "entry") "* %?\n%U\n%a\n" :prepend t) ("c" "å³åº§ã«æ¸ãè¾¼ã¿" entry (file+headline ,file "entry") "* immediate-finish\n" :immediate-finish t) ("d" "ããã¼ã¤ã³ã°ããªã" entry (file+headline ,file "entry") "* å ¨ä½ãè¦ã\n\n" :unnarrowed t) ("e" "ã¯ããã¯ä¸ã®ã¨ã³ããªã«è¿½å " entry (clock) "* clocking" :unnarrowed t) ("f" "ãªã¹ã" item (file+headline ,file "list") "- ãªã¹ã") ;; ãã¾ãåããªã ("g" "ãã§ãã¯ãªã¹ã" checkitem (file+headline ,file "list") "ãã§ãã¯ãªã¹ã") ("h" "表ã®è¡" table-line (file+headline ,file "table") "|表|") ("i" "ãã®ã¾ã¾" plain (file+headline ,file "plain") "ããããã") ("j" "ãã¼ãããã«ãã¹æå®ãã¦æ¿å ¥" entry (file+olp ,file "test" "entry") "* %?\n%U\n%a\n") ;; ããããã¾ãåããªã ("k" "ãã¼ããæ£è¦è¡¨ç¾æå®ãã¦æ¿å ¥" entry (file+regexp ,file "list") "* %?\n%U\n%a\n") ;; å¹´ææ¥ã¨ã³ããªã¯è¿½è¨ããã ("l" "å¹´/æ/æ¥ã®ã¨ã³ããªãä½æãã1" entry (file+datetree ,file)) ("m" "å¹´/æ/æ¥ã®ã¨ã³ããªãä½æãã2" item (file+datetree ,file)) ("o" "å¹´/æ/æ¥ã®ã¨ã³ããªãä½æãã prepend" entry (file+datetree ,file) "* a" :prepend t))) (org-capture))) (global-set-key "\C-x\C-z" 'org-capture-demo)
M-x install-elisp http://www.rubyist.net/~rubikitch/junk/2010-07-28-104637.org-capture-templates.el
ã§ãã¦ã³ãã¼ãã»ã¤ã³ã¹ãã¼ã«ã§ãã¾ãã
C-x C-zã«org-captureã³ãã³ããå²ãå½ã¦ã¦ãã¾ãã
ããã¨ã次ã®ãããªã¡ãã¥ã¼ãåºã¦ãã¾ãã 該å½ãããã¼ãæ¼ãã°CAPTUREãããã¡ãç»å ´ãã¾ãã header-lineã«èª¬æãããããã«ãC-c C-cãæ¼ãã°æå®ã®ä½ç½®ã«ã¡ã¢ãæ ¼ç´ãã¾ãã
Select a capture template
=========================[a] ãµã¤ãã®ã¨ã³ããªã¼å¾ã«è¿½å
[b] ãµã¤ãã®ã¨ã³ããªã¼åã«è¿½å
[c] å³åº§ã«æ¸ãè¾¼ã¿
[d] ããã¼ã¤ã³ã°ããªã
[e] ã¯ããã¯ä¸ã®ã¨ã³ããªã«è¿½å
[f] ãªã¹ã
[g] ãã§ãã¯ãªã¹ã
[h] 表ã®è¡
[i] ãã®ã¾ã¾
[j] ãã¼ãããã«ãã¹æå®ãã¦æ¿å ¥
[k] ãã¼ããæ£è¦è¡¨ç¾æå®ãã¦æ¿å ¥
[l] å¹´/æ/æ¥ã®ã¨ã³ããªãä½æãã1
[m] å¹´/æ/æ¥ã®ã¨ã³ããªãä½æãã2
[o] å¹´/æ/æ¥ã®ã¨ã³ããªãä½æãã prepend
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
[C] Customize org-capture-templates
[q] Abort
ãã®ãã¢ã³ã¹ãã¬ã¼ã·ã§ã³ã®ç®çã¯ãã¡ã¢ãã©ã®ããã«æ ¼ç´ãããã®ãã示ãããã§ãã
è¨å®
æåãã使ã
ãã¢ã³ã¹ãã¬ã¼ã·ã§ã³ã®å¾ãå®éã«ä½¿ã£ã¦ã¿ãã«ã¯ãorg-capture-templateså¤æ°ãè¨å®ãã¾ãã å ·ä½çã«ã¯ãããªè¨å®ã«ãªãã¨æãã¾ãã C-c cã§org-captureãå®è¡ããããã«ãªã£ã¦ãã¾ãã
;; (save-window-excursion (shell-command (format "emacs-test -l test-minimum -l %s %s &" buffer-file-name buffer-file-name))) (require 'org-install) (setq org-startup-truncated nil) (setq org-return-follows-link t) (add-to-list 'auto-mode-alist '("\\.org$" . org-mode)) (setq org-directory "~/memo/") (setq org-default-notes-file (concat org-directory "agenda.org")) (setq org-capture-templates '(("t" "Todo" entry (file+headline nil "Inbox") "** TODO %?\n %i\n %a\n %t") ("b" "Bug" entry (file+headline nil "Inbox") "** TODO %? :bug:\n %i\n %a\n %t") ("i" "Idea" entry (file+headline nil "New Ideas") "** %?\n %i\n %a\n %t"))) (global-set-key (kbd "C-c c") 'org-capture)
org-rememberããä¹ãæãã
org-rememberããã®ä¹ãå¤ããã¹ãç¨æããã¦ãã¾ãã M-x org-capture-import-remember-templates ãå®è¡ãã2åyãæ¼ãã¾ãã ããã¨ãorg-capture-templatesãè¨å®ããã¾ãã ãã¨ã¯C-c c Cã§ã«ã¹ã¿ãã¤ãºç»é¢ããä¿åãããªããC-u M-: org-capture-templatesã§org-capture-templatesã®å¤ã.emacsã«è²¼ãä»ãã¦ãã ããã
詳ããè¨å®
org-capture-templatesã®ç´°ããä»æ§ã«ã¤ãã¦ã¯ã <f1> v org-capture-templates ãããã¯ãC-c c Cã§è¡¨ç¤ºããã説æãã©ããã