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