Mercurial > emacs
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 |