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