Remember Mode 指导
一个关于我是如何使用Emacs org-mode中的remember mode的指导
什么是Remember mode?

Remember mode是一个内建在Emacs环境中的Emacs包,它可以使你在极少的打扰下记录笔记. Org-mode 为Remember增加了定义模板的功能,你可以为不同的便签笔记类型定义不同的模板,并且将笔记直接记录在指定文件的指定标题下。

Remember mode的界面是怎样的?

Remember mode(在我的计算机中)被绑定为C-c r 按键, 因此要记一个笔记不过是按下这几个键的事情。 这里有一个演示,演示了当我在编辑这篇文章时是如何使用Remember mode

首先, 我按下 C-c r. 一个新的窗口显示出来了:

在屏幕的底部显示出了一个菜单,菜单上列出了各个模板的名字,模板上已经分配了快捷键,可以通过键入这些快捷按键来直接选择模板。 现在让我们选择 "Journal" 选项来记录一个有趣的网站

journal 模板首先提示我输入一个主题。 模板已经显示在窗口上了, 但是这时Remember在mini buffer上提示我们进行输入操作。 我键入这次日志的主题并且按下回车键

模板已经被补完,并且我被提示按下 C-c C-c 来保存这次的日志. 光标已经转移到了窗口区域,我现在可以输入日志的内容了.

我输完这次日志的内容后, 我键入 C-c C-c 来保存. 可以在minibuffer区域看到,文件已经确实被更新了。
真的很简单!
我是怎样配置的?
在org-mode手册中有关于配置Remember的说明。在这里我列出自己的配置作为参考
我的Elisp包都存放在L:/elisp.
 (add-to-list 'load-path "L:/elisp/")
 (add-to-list 'load-path "L:/elisp/remember-1.9/")
接下来我对Remember的配置如下:
 (setq org-directory "~/orgfiles/")
 (setq org-default-notes-file "~/.notes")
 (setq remember-annotation-functions '(org-remember-annotation))
 (setq remember-handler-functions '(org-remember-handler))
 (add-hook 'remember-mode-hook 'org-remember-apply-template)
 (define-key global-map "\C-cr" 'org-remember)
最后我的模板配置如下:
;; templats on the office computer
;; F is the USB drive


 (setq org-remember-templates
     '(("Todo" ?t "* TODO %? %^g\n %i\n " "F:/GTD/newgtd.org" "Office")
      ("Journal" ?j "\n* %^{topic} %T \n%i%?\n" "L:journal.org")
      ("Book" ?b "\n* %^{Book Title} %t :READING: \n%[l:/booktemp.txt]\n" 
              "L:journal.org")
      ("Private" ?p "\n* %^{topic} %T \n%i%?\n" "F:/gtd/privnotes.org")
      ("Contact" ?c "\n* %^{Name} :CONTACT:\n%[l:/contemp.txt]\n" 
               "F:/gtd/privnotes.org")
      ))

;;  Mytemplates on the  home computer    

 (setq org-remember-templates
    '(("Todo" ?t "* TODO %^{Brief Description} %^g\n%?\nAdded: %U" "~/GTD/newgtd.org" "Tasks")
      ("Journal"   ?j "** %^{Head Line} %U %^g\n%i%?"  "~/GTD/journal.org")
      ("Clipboard" ?c "** %^{Head Line} %U %^g\n%c\n%?"  "~/GTD/journal.org")
      ("Receipt"   ?r "** %^{BriefDesc} %U %^g\n%?"   "~/GTD/finances.org")
      ("Book" ?b "** %^{Book Title} %t :BOOK: \n%[~/.book_template.txt]\n" 
         "~/GTD/journal.org")
          ("Film" ?f "** %^{Film Title} %t :FILM: \n%[~/.film_template.txt]\n" 
         "~/GTD/journal.org")
      ("Daily Review" ?a "** %t :COACH: \n%[~/.daily_review.txt]\n" 
         "~/GTD/journal.org")
      ("Someday"   ?s "** %^{Someday Heading} %U\n%?\n"  "~/GTD/someday.org")
      ("Vocab"   ?v "** %^{Word?}\n%?\n"  "~/GTD/vocab.org")
     )
   )

模板
上面这些代码是什么意思?
每个模板都是由 4 到 5 个部分组成的. 他们以此为:
  1. 模板名称. 例如, "Todo" or "Book"
  2. 快捷键. 这是由问好紧跟着一个字母来组成的.
  3. 模板内容. 这里的文本会插入到目标文件中,文本中以百分号开头的字符串会被替换,例如 %i%.
  4. 目标文件. 被更新的文件. 如果该值不填, Remember 会使用之前配置的默认文件.
  5. 标题. 如果指定了标题, 模板会保存在这个指定标题下.
所有以%开头的特殊符号说明都可以在org-mode的手册中找到. 我比较常用的符号有以下这些:
  1. %? - 在完成模板替换之后,鼠标放置的位置
  2. %^g - 根据目标文件中定义的tag,提示并补完这些tag. 不幸的是,这些tag不会从 org-tags-column 参数中获得. [是否可以修正?]
  3. %i - 当Remember启动时,region的内容被替换在这. 这个功能在我的 Windows XP/GNU 环境中无法使用! 我不得不手工粘贴文本到Remember窗口中[这算是一个bug吗?]
  4. %^{Topic} - 先输出大括号内的内容,然后提示输入.
  5. %T - 插入日期和时间标记
  6. %t - 只插入日期
  7. %[L:/booktemp.txt] - 插入指定文件的内容. 这个模板文件中可以放置属性的设置内容,或者是清单
我是如何使用Remember mode的?
下面的例子来自于的是我家庭和工作中的 .emacs 文件.
×××事项
 ("Todo" ?t "* TODO %^{Brief Description} %^g\nAdded: %U" 
     "~/GTD/newgtd.org" "Tasks")

我的todo模板会在"Tasks"主题下增加内容 . 当前的日期会自动记录在内容中,这样我就能在每周回顾时追踪每项内容所花的时间了.

日志

我喜欢记录已完成工作的细节,访问过的网站,各种创意,想法和观察到的事务.我的日志是一个有着不同分类短笺的文本文件,这些短笺使用不同的tag来标识 : DIARY 记录我完成的工作, films 记录看过的电影 , books 记录看过的书, WEIGHT 我的体重 (我正在努力减肥). 每个短笺都通过remember模板自动记录了日期和时间标签 .

私人笔记 (办公室)
   ("Private" ?p "\n* %^{topic} %T \n%i%?\n" "F:/gtd/privnotes.org")
我办公室电脑上有个U盘,这个私人笔记模板会增加笔记到这个U盘上的某个文件中.(F盘).
电子账单 (家庭)
电子账单模板如下所示,它使用了了一个单独的文件来存放.
  ("Receipt"   ?r "** %^{BriefDesc} %U %^g\n%?"   "~/GTD/finances.org")
当这个模板运行时,先提示输入简介,然后给出一个tag的提示. finances.org文件的头部包含的内容为
 #+TAGS: WESTPAC(w) STGEORGE(g)
密码 (家庭)

我访问过那么多的网站,这些网站的登录细节和密码我应该保存在哪比较好呢? 我把它们记录在我的日志中,用PASSWORD作为tag标识出来,当然它们会存储在一个独立的文件中,就像 passwords.org.

计算机记录(家庭)
当我组装了一台新的Dell电脑,我使用remember mode来存储硬件和软件的细节信息,和各种系统设置.
阅读过的书
   ("Book" ?b "\n* %^{Book Title} %t :READING: \n%[~/booktemp.txt]\n" 
       "~/GTD/journal.org")

阅读完一本书后,我会记录下这本书的书名,作者,出版年限和我的笔记,注释. 我以前是通过在Journal 模板中用BOOKS 标签标注出这些内容的. 但是现在我使用一个新的模板来提醒我记录以下这些细节.

booktemp.txt 文件的内容为
 :PROPERTIES:
 :Title:    %?
 :Author:  
 :Year:      
 :Publisher:
 :END:
 Comments: 

这个模板允许我在buffer中使用列试图. 文件会被载入并等待补完每个域. 也许这可以成为 org-mode 的一个选项?

看过的电影

当我在电影院,DVD或者电视上看过一部影片后,我会记录下影片的细节和我自己的注解. 我现在还在使用Journal模板并用FILMS标签标注出来. 我马上会改为类似books一样,使用一个独立的模板文件来代替现在的方案. film 模板文件的内容为:

:PROPERTIES:
  :Director:  
  :Year:      
  :Genre:
  :Country:
:END:


Comments: 
每日回顾
  ("Daily Review" ?a "** %t :COACH: \n%[~/.daily_review.txt]\n" 
    "~/GTD/journal.org")

我最近度过一本关于生活训练的书. 作者建议每天问自己以下几个问题并记录下来. .daily_review.txt 文件的内容如下:

 - What did I enjoy doing today?

 - What would I like to more of?

 - What would I like to do less of?

 - What did I learn today?

 - What will I do differently tomorrow?

 - Thought for the day
我现在正在跟着这个练习,并且在我的主org文件中作为一个经常性的待办事项:
 * TODO Complete Daily Journal                                     :HOME:
   SCHEDULED: <2008-07-24 Thu +1d>
未来的计划如何使用?

我还在考虑如何进一步的使用Remember mode和org-mode, 而且我很想听听你是怎么使用remember mode的

如何进一步的学习?

Remember Mode 的维基百科
http://www.emacswiki.org/cgi-bin/wiki/RememberMode

Org-Mode (手册第9章)
http://orgmode.org/manual/Remember.html

Sacha Chua (不仅仅是"企业 2.0 顾问, 说书人, 极客") 经常写一些关于 Emacs, Remember mode, Org Mode 和 planner 的文章
http://sachachua.com/wp/category/emacs/

这篇文章是用org-mode写成的,源码可以从这里下载 : remember.org

点击这里阅读Charles Cave所写的 更多指南 :

作者: Charles Cave mailto:charlesweb@opusnet.com.au

Date: <2008-07-27 Sun> Updated: 7th February 2009