Remember Mode Tutorial

A tutorial on how I use Remember mode with Emacs org-mode

Table of Contents

What is Remember mode?

Remember mode is an Emacs package that lets you store notes inside the Emacs environment with little interruption to your work flow. Org-mode has added capabilities to Remember allowing you to define templates for different note types, and associate target files and headlines with specific headlines.

What does it look like?

Remember mode is bound to the C-c r command key, so storing a note is just a matter of entering these few keystrokes. Here is a demonstration of how I would use Remember mode while editing this article.

First, I enter C-c r. A new window is displayed:

A menu of template names is displayed at the bottom of the screen with associated short-cut letters. Let's choose the "Journal" option to record a note about an interesting web site.

The journal template is prompting me for the topic text. The template can be seen in the window, but at this stage Remember is prompting for input in the mini buffer. I enter the topic of this journal entry then press Enter.

The template has now been completed and I am prompted to Enter C-c C-c to file the note. The cursor is positioned in the window, and I enter my journal entry.

When I have completed typing my journal entry, I enter C-c C-c to file the note. Confirmation of the file being updated can be seen in the minibuffer.

It's that simple!

How do I set it up?

Setting up Remember is described in the org-mode manual, however I am showing my installation for reference.

My Elisp packages are stored in L:/elisp.

 (add-to-list 'load-path "L:/elisp/")
 (add-to-list 'load-path "L:/elisp/remember-1.9/")

Next I have the configuration of 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)

And lastly I have my templates:

;; 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")
     )
   )

Templates

What do all those codes above mean?

Each template is a list with 4 or 5 elements. They have the following meaning:

  1. Template Name. For example, "Todo" or "Book"
  2. Shortcut. This consists of a question mark followed by the letter.
  3. Template Contents. This is the string that will be inserted into the target file. Substitutions are made on strings beginning with the percent sign, eg %i%.
  4. Target File. The file that gets updated. If this value was omitted, Remember would use the default notes file configured earlier.
  5. Headline. If this is specified, the template is stored under this headline.

The full list of %-escape codes is documented in the org-mode manual. I used the following codes:

  1. %? - After completing the template substitutions, position the cursor here.
  2. %^g - Prompt for tags with completion based on tags in the target file. Unfortunately the tags are not aligned according to the org-tags-column parameter. [Can this be fixed?]
  3. %i - Replace with the region set when remember is called. This has no effect on my Windows XP/GNU Environment! I have to manually paste text into the Remember window. [Is this a bug?]
  4. %^{Topic} - Prompt for input by first displaying the text inside the braces.
  5. %T - Insert time stamp with date and time
  6. %t - Insert the date only
  7. %[L:/booktemp.txt] - insert the contents of the named file. The template file could be a PROPERTIES drawer or checklist.

What do I use Remember for?

The following examples use my home .emacs file as well as my office file.

To Do

 ("Todo" ?t "* TODO %^{Brief Description} %^g\nAdded: %U" 
     "~/GTD/newgtd.org" "Tasks")

My template for adding "to do" items will add the item under the headline of "Tasks". The current date is added to the item so I can keep track of the task age in my weekly review.

Journal

I like to record details of the work I have done, web sites visited, ideas, thoughts and observations. My journal is a text file with different categories of notes identified with tags: DIARY for things I have done, FILMS for films seen, BOOKS for books read, and WEIGHT to record my weight (trying to reduce this!). Each entry is automatically date and time stamped by the Rememember template.

Private Notes (Office)

   ("Private" ?p "\n* %^{topic} %T \n%i%?\n" "F:/gtd/privnotes.org")

I have a USB drive connected to my office computer. The Private template is used to append to a file on the USB drive (Drive F).

Internet Banking Receipts (Home)

The Remember template for Internet Banking receipts is as follows and uses a dedicated text file.

  ("Receipt"   ?r "** %^{BriefDesc} %U %^g\n%?"   "~/GTD/finances.org")

When the template is run, the first prompt is for a brief description followed by a prompt for the tag. The header of the finances.org file contains:

 #+TAGS: WESTPAC(w) STGEORGE(g)

Passwords (Home)

Where should I keep all the login details and passwords for the various web sites I visit? I record them in my journal using a tag of PASSWORD, but they could be stored in a separate file, such as passwords.org.

Computer Log (Home)

While I was setting up a new Dell computer, I used Remember mode to store details of what software and hardware I installed, and various system settings.

Books Read

   ("Book" ?b "\n* %^{Book Title} %t :READING: \n%[~/booktemp.txt]\n" 
       "~/GTD/journal.org")

After I read a book I record the name, author and year published as well as my notes and comments. I used to use the Journal template then choose the BOOKS tag, but now I am using a template to remind me of the main details.

The booktemp.txt file contains the following text

 :PROPERTIES:
 :Title:    %?
 :Author:  
 :Year:      
 :Publisher:
 :END:
 Comments: 

This template allows me to use column view over the buffer. The Properties drawer needs to be opened to complete each field. Maybe this could be an org-mode option?

Films Seen

When I see a film at the cinema, DVD or on television, I record the details and my comments. I use the Journal template then choose the FILMS tag. I am about to change this to use a template file like I did for books. The film template file contains:

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


Comments: 

Daily Review

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

I recently read a book about Life Coaching. The author suggested keeping a daily journal with answers to a list of questions. The .daily_review.txt file contains the following:

 - 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

I am now following this practice using a template file as well as a recurring TODO item in my main org file:

 * TODO Complete Daily Journal                                     :HOME:
   SCHEDULED: <2008-07-24 Thu +1d>

Further uses?

I'm still thinking of further uses for Remember mode and org-mode, and I would be interested to hear how you are using Remember mode.

How do I learn more?

Remember Mode wiki page
http://www.emacswiki.org/cgi-bin/wiki/RememberMode

Org-Mode (Chapter 9 of the Manual)
http://orgmode.org/manual/Remember.html

Sacha Chua ("Enterprise 2.0 consultant, storyteller, geek and more") often writes about Emacs, Remember mode, Org Mode and planner
http://sachachua.com/wp/category/emacs/

This article was written using org-mode. The source code can be downloaded here: remember.org

Read more tutorials by Charles Cave:

Author: Charles Cave <charlesweb@opusnet.com.au>

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