comparison doc/misc/remember.texi @ 85772:6b9c41aaadf8

Check in Remember Mode
author Michael Olson <mwolson@gnu.org>
date Tue, 30 Oct 2007 01:39:14 +0000
parents
children c00d89ba4e04
comparison
equal deleted inserted replaced
85771:a7aa5ee6bc3a 85772:6b9c41aaadf8
1 \input texinfo @c -*-texinfo-*-
2 @c %**start of header
3 @setfilename ../../info/remember
4 @settitle Remember Manual
5 @c %**end of header
6
7 @dircategory Emacs
8 @direntry
9 * Remember: (remember). Simple information manager for Emacs
10 @end direntry
11
12 @syncodeindex fn cp
13
14 @copying
15 This manual is for Remember Mode, version 1.9
16
17 Copyright @copyright{} 2001, 2004, 2005, 2007 Free Software Foundation, Inc.
18
19 @quotation
20 Permission is granted to copy, distribute and/or modify this document
21 under the terms of the GNU Free Documentation License, Version 1.2
22 or any later version published by the Free Software Foundation;
23 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
24 Texts. A copy of the license is included in the section entitled ``GNU
25 Free Documentation License''.
26 @end quotation
27 @end copying
28
29 @titlepage
30 @title Guide to Remember Mode
31 @subtitle a simple information manager
32 @subtitle for Emacs and XEmacs
33
34 @c The following two commands
35 @c start the copyright page.
36 @page
37 @vskip 0pt plus 1filll
38 @insertcopying
39 @end titlepage
40
41 @c So the toc is printed at the start
42 @contents
43
44 @ifnottex
45 @node Top, Preface, (dir), (dir)
46 @comment node-name, next, previous, up
47 @top Remember
48
49 @insertcopying
50 @end ifnottex
51
52 @menu
53 * Preface:: About the documentation.
54 * Introduction:: What is Remember Mode?
55 * Installation:: How to install Remember.
56 * Implementation:: How Remember came into existence.
57 * Quick Start:: Get started using Remember.
58 * Backends:: Backends for saving notes.
59 * Function Reference:: Interactive functions in remember.el.
60 * Copying:: The GNU General Public License gives you
61 permission to redistribute Remember on
62 certain terms; it also explains that
63 there is no warranty.
64 * GNU Free Documentation License:: The license for this documentation.
65 * Concept Index:: Search for terms.
66
67 @detailmenu
68 --- The Detailed Node Listing ---
69
70 Backends
71
72 * Text File:: Saving to a text file.
73 * Mailbox:: Saving to a mailbox.
74 * Bibliography:: Saving to a bibliography.
75 * Planner Page:: Saving to a Planner page.
76
77 @end detailmenu
78 @end menu
79
80 @node Preface, Introduction, Top, Top
81 @comment node-name, next, previous, up
82 @chapter Preface
83
84 This document describes remember-el, which was written by John Wiegley,
85 was once maintained by Sacha Chua, and is now maintained by the Emacs
86 developers.
87
88 This document is a work in progress, and your contribution will be
89 greatly appreciated.
90
91 @node Introduction, Installation, Preface, Top
92 @comment node-name, next, previous, up
93 @chapter Introduction
94
95 Todo lists, schedules, phone databases... everything we use databases
96 for is really just a way to extend the power of our memory, to be able
97 to remember what our conscious mind may not currently have access to.
98
99 There are many different databases out there---and good ones---
100 which this mode is not trying to replace. Rather, it's how that
101 data gets there that's the question. Most of the time, we just
102 want to say "Remember so-and-so's phone number, or that I have to
103 buy dinner for the cats tonight." That's the FACT. How it's
104 stored is really the computer's problem. But at this point in
105 time, it's most definitely also the user's problem, and sometimes
106 so laboriously so that people just let data slip, rather than
107 expend the effort to record it.
108
109 ``Remember'' is a mode for remembering data. It uses whatever
110 back-end is appropriate to record and correlate the data, but its main
111 intention is to allow you to express as @emph{little} structure as
112 possible up front. If you later want to express more powerful
113 relationships between your data, or state assumptions that were at
114 first too implicit to be recognized, you can ``study'' the data later
115 and rearrange it. But the initial ``just remember this'' impulse
116 should be as close to simply throwing the data at Emacs as possible.
117
118 Have you ever noticed that having a laptop to write on doesn't
119 @emph{actually} increase the amount of quality material that you turn
120 out, in the long run? Perhaps it's because the time we save
121 electronically in one way, we're losing electronically in another; the
122 tool should never dominate one's focus. As the mystic Faridu'd-Din
123 `Attar wrote: ``Be occupied as little as possible with things of the
124 outer world but much with things of the inner world; then right action
125 will overcome inaction.''
126
127 If Emacs could become a more intelligent data store, where brainstorming
128 would focus on the @emph{ideas} involved---rather than the structuring
129 and format of those ideas, or having to stop your current flow of work
130 in order to record them---it would map much more closely to how the mind
131 (well, at least mine) works, and hence would eliminate that very
132 manual-ness which computers from the very beginning have been championed
133 as being able to reduce.
134
135 @node Installation, Implementation, Introduction, Top
136 @comment node-name, next, previous, up
137 @chapter Installation
138
139 Installing Remember Mode is as simple as adding the following lines to
140 your Emacs configuration file (usually @file{~/.emacs.d/init.el} or
141 @file{~/.emacs}).
142
143 @lisp
144 (add-to-list 'load-path "/path/to/remember")
145 (require 'remember)
146 @end lisp
147
148 @node Implementation, Quick Start, Installation, Top
149 @comment node-name, next, previous, up
150 @chapter Implementation
151
152 Hyperbole, as a data presentation tool, always struck me as being very
153 powerful, but it seemed to require a lot of ``front-end'' work before
154 that data was really available. The problem with BBDB, or keeping up
155 a Bibl-mode file, is that you have to use different functions to
156 record the data, and it always takes time to stop what you're doing,
157 format the data in the manner expected by that particular data
158 interface, and then resume your work.
159
160 With ``remember'', you just hit @kbd{M-x remember} (you'd probably
161 want to bind this to an easily accessible keystroke, like @kbd{C-x
162 M-r}), slam in your text however you like, and then hit @kbd{C-c C-c}.
163 It will file the data away for later retrieval, and possibly indexing.
164
165 Indexing is to data what ``studying'' is in the real world. What you
166 do when you study (or lucubrate, for some of us) is to realize certain
167 relationships implicit in the data, so that you can make use of those
168 relationships. Expressing that a certain quote you remembered was a
169 religious quote, and that you want the ability to pull up all quotes
170 of a religious nature, is what studying does. This is a more labor
171 intensive task than the original remembering of the data, and it's
172 typical in real life to set aside a special period of time for doing
173 this work.
174
175 ``Remember'' works in the same way. When you enter data, either by
176 typing it into a buffer, or using the contents of the selected region,
177 it will store that data---unindexed, uninterpreted---in a data pool.
178 It will also try to remember as much context information as possible
179 (any text properties that were set, where you copied it from, when,
180 how, etc). Later, you can walk through your accumulated set of data
181 (both organized, and unorganized) and easily begin moving things
182 around, and making annotations that will express the full meaning of
183 that data, as far as you know it.
184
185 Obviously this latter stage is more user-interface intensive, and it
186 would be nice if ``remember'' could do it as elegantly as possible,
187 rather than requiring a billion keystrokes to reorganize your
188 hierarchy. Well, as the future arrives, hopefully experience and user
189 feedback will help to make this as intuitive a tool as possible.
190
191 @node Quick Start, Backends, Implementation, Top
192 @comment node-name, next, previous, up
193 @chapter Quick Start
194
195 @itemize
196
197 @item
198 Load @file{remember.el}.
199
200 @item
201 Type @kbd{M-x remember}. The @samp{*Remember*} buffer should be
202 displayed.
203
204 @item
205 Type in what you want to remember. The first line will be treated as
206 the headline, and the rest of the buffer will contain the body of the
207 note.
208
209 @item
210 Type @kbd{C-c C-c} (@code{remember-buffer}) to save the note and close
211 the @samp{*Remember*} buffer.
212 @end itemize
213
214 By default, @code{remember-buffer} saves the note in @file{~/.notes}.
215 You can edit it now to see the remembered and timestamped note. You
216 can edit this file however you want. New entries will always be added
217 to the end.
218
219 To remember a region of text, use the universal prefix. @kbd{C-u M-x
220 remember} displays a @samp{*Remember*} buffer with the region as the
221 initial contents.
222
223 As a simple beginning, you can start by using the Text File backend,
224 keeping your @file{~/.notes} file in outline-mode format, with a final
225 entry called @samp{* Raw data}. Remembered data will be added to the
226 end of the file. Every so often, you can move the data that gets
227 appended there into other files, or reorganize your document.
228
229 You can also store remembered data in other backends.
230 (@pxref{Backends})
231
232 Here is one way to map the remember functions in your @file{.emacs} to
233 very accessible keystrokes facilities using the mode:
234
235 @lisp
236 (autoload 'remember ``remember'' nil t)
237 (autoload 'remember-region ``remember'' nil t)
238
239 (define-key global-map (kbd "<f9> r") 'remember)
240 (define-key global-map (kbd "<f9> R") 'remember-region)
241 @end lisp
242
243 Check out the Planner package
244 (@uref{http://www.emacswiki.org/cgi-bin/wiki/PlannerMode}) for plenty
245 of annotation functions you can use with Remember. If you use Planner,
246 you can easily publish your remembered notes as HTML and RSS.
247 (@pxref{Planner Page})
248
249 By default, remember uses the first annotation returned by
250 @code{remember-annotation-functions}. To include all of the annotations,
251 set @code{remember-run-all-annotation-functions-flag} to non-nil.
252
253 @defopt remember-run-all-annotation-functions-flag
254 Non-nil means use all annotations returned by
255 @code{remember-annotation-functions}.
256 @end defopt
257
258 You can write custom functions that use a different set of
259 remember-annotation-functions. For example:
260
261 @lisp
262 (defun my/remember-with-filename ()
263 "Always use the filename."
264 (interactive)
265 (let ((remember-annotation-functions '(buffer-file-name)))
266 (call-interactively 'remember)))
267 @end lisp
268
269 @node Backends, Function Reference, Quick Start, Top
270 @chapter Backends
271
272 You can save remembered notes to a variety of backends.
273
274 @menu
275 * Text File:: Saving to a text file.
276 * Mailbox:: Saving to a mailbox.
277 * Bibliography:: Saving to a bibliography.
278 * Planner Page:: Saving to a Planner page.
279 @end menu
280
281 @node Text File, Mailbox, Backends, Backends
282 @section Saving to a Text File
283 @cindex text file
284 @cindex outline
285
286 This backend comes with Emacs.
287
288 @lisp
289 (setq remember-handler-functions '(remember-append-to-file))
290 @end lisp
291
292 @defopt remember-data-file
293 @end defopt
294
295 @defopt remember-leader-text
296 @end defopt
297
298 @node Mailbox, Bibliography, Text File, Backends
299 @section Saving to a Mailbox
300 @cindex mailbox, saving to a
301
302 @lisp
303 (setq remember-handler-functions '(remember-store-in-mailbox))
304 @end lisp
305
306 @defopt remember-mailbox
307 Name of mailbox to save messages to.
308 @end defopt
309
310 This backend does not come with Emacs. To get it, download the latest
311 version of Remember from @url{http://download.gna.org/remember-el/}.
312
313 If you want to use BBDB to associate remembered snippets with entries
314 in your contact database, use the following code snippet:
315
316 @lisp
317 (require 'remember-bbdb)
318 (setq remember-handler-functions '(remember-bbdb-store-in-mailbox))
319 @end lisp
320
321 @node Bibliography, Planner Page, Mailbox, Backends
322 @section Saving to a Bibliography
323
324 This backend does not come with Emacs. To get it, download the latest
325 version of Remember from @url{http://download.gna.org/remember-el/}.
326
327 Bibl-mode is a major mode for maintaining bibliography files. You can
328 get bibl-mode from:
329 @uref{http://ftp.azc.uam.mx/mirrors/gnu/emacs-lisp/bosullivan-packages/bibl-mode/}.
330
331 @lisp
332 (require 'remember-bibl)
333 @end lisp
334
335 @defun remember-url
336 Remember a URL in @code{bibl-mode} that is being visited with w3.
337 @end defun
338
339 @defun remember-location
340 Remember a bookmark location in `bibl-mode'.
341 @end defun
342
343 You can use this in addition to your normal remember backend.
344
345 @node Planner Page, , Bibliography, Backends
346 @comment node-name, next, previous, up
347 @section Saving to a Planner Page
348 @cindex @file{remember-planner.el}, using
349 @cindex remember-el, using with PlannerMode
350
351 This backend does not come with Emacs. To get it, download the latest
352 version of Remember from @url{http://download.gna.org/remember-el/}.
353
354 If you are using PlannerMode, depending on your configuration, notes
355 made using remember-el may actually be saved to a project and/or day
356 plan page.
357
358 @file{remember-planner.el} makes the notes you save with remember have
359 more context information associated with them, in the way that
360 PlannerMode tasks do.
361
362 To use remember-planner, place this in your @file{.emacs}:
363
364 @lisp
365 (require 'remember-planner)
366 (setq remember-handler-functions '(remember-planner-append))
367 @end lisp
368
369 To take advantage of PlannerMode's annotation functions, add the
370 following code as well:
371
372 @lisp
373 (setq remember-annotation-functions planner-annotation-functions)
374 @end lisp
375
376 Then, type @kbd{M-x remember} to remember new text, @kbd{M-x
377 remember-region} to remember the current region, or @kbd{C-u M-x
378 remember} to remember the current region but have an opportunity to
379 edit it before it is saved.
380
381 @defopt remember-planner-xref-p
382 Non-nil means cross-reference new entries with plan pages. Plan pages
383 are useful for gathering related information. If you don't want a note
384 associated with a plan page, you can press RET to accept the default
385 (just today's page) or specify nil at the prompt.
386 @end defopt
387
388 @defopt remember-planner-copy-on-xref-flag
389 Non-nil means copy note text instead of moving it to the plan page. If
390 nil, move the note body to the plan page, leaving a cross-reference
391 link on the day page. This results in shorter day pages but may be
392 harder for people to read.
393 @end defopt
394
395 @defopt remember-planner-timestamp-format
396 Format of timestamp for remember entries.
397 @end defopt
398
399 @file{remember-planner.el} does not define any interactive functions
400 or keybindings.
401
402 @node Function Reference, Copying, Backends, Top
403 @comment node-name, next, previous, up
404 @chapter Function Reference
405
406 @subheading Interactive functions
407
408 @file{remember.el} defines the following interactive functions:
409
410 @defun remember initial
411 Remember an arbitrary piece of data. With a prefix, it will use the
412 region as @var{initial}.
413 @end defun
414
415 @defun remember-region beg end
416 If called from within the remember buffer, @var{beg} and @var{end} are
417 ignored, and the entire buffer will be remembered. If called from any
418 other buffer, that region, plus any context information specific to
419 that region, will be remembered.
420 @end defun
421
422 @defun remember-clipboard
423 Remember the contents of the current clipboard. This is most useful
424 for remembering things from Netscape or other X Windows applications.
425 @end defun
426
427 @defun remember-buffer
428 Remember the contents of the current buffer.
429 @end defun
430
431 @defun remember-mode
432 This enters the major mode for output from @command{remember}. This
433 buffer is used to collect data that you want remember. Just hit
434 @kbd{C-c C-c} when you're done entering, and it will go ahead and file
435 the data for latter retrieval, and possible indexing.
436 @end defun
437
438 @subheading Keystrokes
439
440 @file{remember.el} defines the following keybindings by default:
441
442 @table @kbd
443
444 @item C-x C-s (`remember-buffer')
445
446 @item C-c C-c (`remember-buffer')
447
448 @end table
449
450 @node Copying, GNU Free Documentation License, Function Reference, Top
451 @comment node-name, next, previous, up
452 @appendix GNU GENERAL PUBLIC LICENSE
453 @include gpl.texi
454
455 @node GNU Free Documentation License, Concept Index, Copying, Top
456 @appendix GNU Free Documentation License
457 @include doclicense.texi
458
459 @node Concept Index, , GNU Free Documentation License, Top
460 @comment node-name, next, previous, up
461 @unnumbered Index
462
463 @printindex cp
464
465 @bye