]> code.delx.au - gnu-emacs/blob - man/org.texi
Update years in copyright notice; nfc.
[gnu-emacs] / man / org.texi
1 \input texinfo
2 @c %**start of header
3 @c @setfilename org
4 @setfilename ../info/org
5 @settitle Org Mode Manual
6
7 @set VERSION 3.14
8 @set DATE July 2005
9
10 @dircategory Emacs
11 @direntry
12 * Org Mode: (org). Outline-based notes management and organizer
13 @end direntry
14
15 @c Version and Contact Info
16 @set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage}
17 @set MAINTAINER Carsten Dominik
18 @set MAINTAINEREMAIL @email{dominik@@science.uva.nl}
19 @set MAINTAINERCONTACT @uref{mailto:dominik@@science.uva.nl,contact the maintainer}
20 @c %**end of header
21 @finalout
22
23 @c Macro definitions
24
25 @c Subheadings inside a table. Need a difference between info and the rest.
26 @macro tsubheading{text}
27 @ifinfo
28 @subsubheading \text\
29 @end ifinfo
30 @ifnotinfo
31 @item @b{\text\}
32 @end ifnotinfo
33 @end macro
34
35 @copying
36 This manual is for Org-mode (version @value{VERSION}).
37
38 Copyright @copyright{} 2004, 2005 Free Software Foundation, Inc.
39
40 @quotation
41 Permission is granted to copy, distribute and/or modify this document
42 under the terms of the GNU Free Documentation License, Version 1.1 or
43 any later version published by the Free Software Foundation; with no
44 Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
45 and with the Back-Cover Texts as in (a) below. A copy of the
46 license is included in the section entitled ``GNU Free Documentation
47 License.''
48
49 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
50 this GNU Manual, like GNU software. Copies published by the Free
51 Software Foundation raise funds for GNU development.''
52 @end quotation
53 @end copying
54
55 @titlepage
56 @title Org Mode Manual
57
58 @subtitle Release @value{VERSION}
59 @author by Carsten Dominik
60
61 @c The following two commands start the copyright page.
62 @page
63 @vskip 0pt plus 1filll
64 @insertcopying
65 @end titlepage
66
67 @c Output the table of contents at the beginning.
68 @contents
69
70 @ifnottex
71 @node Top, Introduction, (dir), (dir)
72 @top Org Mode Manual
73
74 @insertcopying
75 @end ifnottex
76
77 @menu
78 * Introduction:: Getting started
79 * Document Structure:: A tree works like your brain
80 * Tables:: Pure magic for quick formatting
81 * Hyperlinks:: Notes in context
82 * TODO items:: Every tree branch can be a TODO item
83 * Timestamps:: Assign date and time to items
84 * Timeline and Agenda:: Use time-stamped items to produce an agenda
85 * Exporting:: Sharing and publishing of notes
86 * Miscellaneous:: All the rest which did not fit elsewhere
87 * Index:: The fast road to specific information
88 * Key Index:: Key bindings and where they are described
89
90 @detailmenu
91 --- The Detailed Node Listing ---
92
93 Introduction
94
95 * Summary:: Brief summary of what Org-mode does
96 * Installation and Activation:: How to install Org-mode
97 * Feedback:: Bug reports, ideas, patches etc.
98
99 Document Structure
100
101 * Outlines:: Org-mode is based on outline-mode
102 * Headlines:: How to typeset org-tree headlines
103 * Visibility cycling:: Show ad hide, much simplified
104 * Motion:: Jumping to other headlines
105 * Structure editing:: Changing sequence and level of headlines
106 * Archiving:: Move done task trees to a different place
107 * Sparse trees:: Matches embedded in context
108
109 Tables
110
111 * Built-in table editor:: Simple tables
112 * Table calculations:: Compute a field from other fields
113 * orgtbl-mode:: The table editor as minor mode
114 * table.el:: Complex tables
115
116 Calculations in tables
117
118 * Formula syntax:: How to write a formula
119 * Column formulas:: Formulas valid for all fields in a column
120 * Advanced features:: Field names, parameters and automatic recalc
121 * Named-field formulas:: Formulas valid in single fields
122 * Editing/debugging formulas:: Changing a stored formula
123 * Appetizer::
124
125 Hyperlinks
126
127 * Links:: URL-like links to the world
128 * Remember:: Org-trees store quick notes
129
130 TODO items
131
132 * TODO basics:: Marking and displaying TODO entries
133 * TODO extensions:: Workflow and assignments
134 * Priorities:: Some things are more important than others
135
136 Extended use of TODO keywords
137
138 * Workflow states:: From TODO to DONE in steps
139 * TODO types:: I do this, Fred the rest
140 * Per file keywords:: Different files, different requirements
141
142 Timestamps
143
144 * Time stamps:: Assigning a time to a tree entry
145 * Creating timestamps:: Commands which insert timestamps
146
147 Timeline and Agenda
148
149 * Timeline:: Time-sorted view for single file
150 * Agenda:: Your weekly planner
151 * Agenda commands:: Remote editing of org trees
152 * Calendar/Diary integration:: Integrating Anniversaries and more
153
154 Calendar/Diary integration
155
156 * Diary to agenda:: Agenda incorporates the diary
157 * Agenda to diary:: Diary incorporates the agenda
158
159 Exporting
160
161 * Export commands:: Commands which export and display
162 * HTML formatting:: Interpretation of the buffer content
163 * Export options:: How to influence exports
164 * Comment lines:: Lines which will not be exported
165
166 Miscellaneous
167
168 * Completion:: M-TAB knows what you need
169 * Customization:: Adapting Org-mode to your taste
170 * FAQ:: Frequently asked questions
171 * Interaction:: Other Emacs packages
172 * Bugs:: Things which do not work perfectly
173 * Acknowledgments:: These people provided feedback and more
174
175 @end detailmenu
176 @end menu
177
178 @node Introduction, Document Structure, Top, Top
179 @chapter Introduction
180 @cindex introduction
181
182 @menu
183 * Summary:: Brief summary of what Org-mode does
184 * Installation and Activation:: How to install Org-mode
185 * Feedback:: Bug reports, ideas, patches etc.
186 @end menu
187
188 @node Summary, Installation and Activation, Introduction, Introduction
189 @section Summary
190 @cindex summary
191
192 Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing
193 project planning with a fast and effective plain-text system.
194
195 Org-mode develops organizational tasks around NOTES files that contain
196 information about projects as plain text. Org-mode is implemented on
197 top of outline-mode, which makes it possible to keep the content of
198 large files well structured. Visibility cycling and structure editing
199 help to work with the tree. Tables are easily created with a built-in
200 table editor. Org-mode supports ToDo items, deadlines, time stamps,
201 and scheduling. It dynamically compiles entries into an agenda that
202 utilizes and smoothly integrates much of the Emacs calendar and diary.
203 Plain text URL-like links connect to websites, emails, Usenet
204 messages, BBDB entries, and any files related to the projects. For
205 printing and sharing of notes, an Org-mode file can be exported as a
206 structured ASCII file, or as HTML.
207
208 Org-mode keeps simple things simple. Not every outline branch needs
209 to be an action item, not every action item needs to have priority or
210 scheduling information associated with it. Org-mode can be used on
211 different levels and in different ways, for example
212
213 @example
214 @r{@bullet{} as an outline extension with visibility cycling and structure editing}
215 @r{@bullet{} as an ASCII system and table editor to take structured notes}
216 @r{@bullet{} as an ASCII table editor with some spreadsheet-like capabilities}
217 @r{@bullet{} as a simple hypertext system, with HTML export}
218 @r{@bullet{} as a TODO list editor}
219 @r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
220 @end example
221
222 The Org-mode table editor can be integrated into any major mode by
223 activating the minor Orgtbl-mode.
224
225 There is a website for Org-mode which provides links to the newest
226 version of Org-mode, as well as additional information, screen shots
227 and example files. This page is located at
228 @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
229
230 @page
231
232 @node Installation and Activation, Feedback, Summary, Introduction
233 @section Installation and Activation
234 @cindex installation
235 @cindex autoload
236 @cindex global keybindings
237 @cindex keybindings, global
238
239 If Org-mode is part of the Emacs distribution or an XEmacs package,
240 you only need to copy the following lines to your @file{.emacs} file.
241 The last two lines define @emph{global} keys for the commands
242 @command{org-store-link} and @command{org-agenda} - please choose
243 suitable keys yourself.
244
245 @lisp
246 ;; The following lines are always needed. Choose your own keys.
247 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
248 (define-key global-map "\C-cl" 'org-store-link)
249 (define-key global-map "\C-ca" 'org-agenda)
250 @end lisp
251
252 If you have downloaded Org-mode from the Web, you must byte-compile
253 @file{org.el} and put it on your load path. In addition to the Emacs
254 Lisp lines above, you also need to add the following lines to
255 @file{.emacs}:
256
257 @lisp
258 ;; These lines only if org-mode is not part of the X/Emacs distribution.
259 (autoload 'org-mode "org" "Org mode" t)
260 (autoload 'org-diary "org" "Diary entries from Org mode")
261 (autoload 'org-agenda "org" "Multi-file agenda from Org mode" t)
262 (autoload 'org-store-link "org" "Store a link to the current location" t)
263 (autoload 'orgtbl-mode "org" "Org tables as a minor mode" t)
264 (autoload 'turn-on-orgtbl "org" "Org tables as a minor mode")
265 @end lisp
266
267 @cindex org-mode, turning on
268 With this setup, all files with extension @samp{.org} will be put into
269 Org-mode. As an alternative, make the first line of a file look like
270 this:
271
272 @example
273 MY PROJECTS -*- mode: org; -*-
274 @end example
275
276 @noindent which will select Org-mode for this buffer no matter what
277 the file's name is. See also the variable
278 @code{org-insert-mode-line-in-empty-file'}.
279
280 @node Feedback, , Installation and Activation, Introduction
281 @section Feedback
282 @cindex feedback
283 @cindex bug reports
284 @cindex maintainer
285 @cindex author
286
287 If you find problems with Org-mode, or if you have questions, remarks,
288 or ideas about it, please contact the maintainer Carsten Dominik at
289 @value{MAINTAINEREMAIL}.
290
291 For bug reports, please provide as much information as possible,
292 including the version information of Emacs (@kbd{C-h v emacs-version
293 @key{RET}}) and Org-mode (@kbd{M-x org-version}), as well as the
294 Org-mode related setup in @file{.emacs}. If an error occurs, a
295 traceback can be very useful. Often a small example file helps, along
296 with clear information about:
297 @enumerate
298 @item What exactly did you do?
299 @item What did you expect to happen?
300 @item What happened instead?
301 @end enumerate
302 @noindent Thanks for helping to improve this mode.
303
304 @node Document Structure, Tables, Introduction, Top
305 @chapter Document Structure
306 @cindex document structure
307 @cindex structure of document
308
309 Org-mode is based on outline mode and provides flexible commands to
310 edit the structure of the document.
311
312 @menu
313 * Outlines:: Org-mode is based on outline-mode
314 * Headlines:: How to typeset org-tree headlines
315 * Visibility cycling:: Show ad hide, much simplified
316 * Motion:: Jumping to other headlines
317 * Structure editing:: Changing sequence and level of headlines
318 * Archiving:: Move done task trees to a different place
319 * Sparse trees:: Matches embedded in context
320 @end menu
321
322 @node Outlines, Headlines, Document Structure, Document Structure
323 @section Outlines
324 @cindex outlines
325 @cindex outline-mode
326
327 Org-mode is implemented on top of outline-mode. Outlines allow to
328 organize a document in a hierarchical structure, which (at least for
329 me) is the best representation of notes and thoughts. Overview over
330 this structure is achieved by folding (hiding) large parts of the
331 document to show only the general document structure and the parts
332 currently being worked on. Org-mode greatly simplifies the use of
333 outlines by compressing the entire show/hide functionality into a
334 single command @command{org-cycle}, which is bound to the @key{TAB}
335 key.
336
337 @node Headlines, Visibility cycling, Outlines, Document Structure
338 @section Headlines
339 @cindex headlines
340 @cindex outline tree
341
342 Headlines define the structure of an outline tree. The Headlines in
343 Org-mode start with one or more stars, for example
344
345 @example
346 * Top level headline
347 ** Second level
348 *** 3rd level
349 some text
350 *** 3rd level
351 more text
352 * Another top level headline
353 @end example
354
355 @node Visibility cycling, Motion, Headlines, Document Structure
356 @section Visibility cycling
357 @cindex visibility cycling
358 @cindex trees, visibility
359
360 Outlines make it possible to hide parts of the text in the buffer.
361 Org-mode uses a single command bound to the @key{TAB} key to change
362 the visibility in the buffer.
363
364 @cindex subtree visibility states
365 @cindex folded, subtree visibility state
366 @cindex children, subtree visibility state
367 @cindex subtree, subtree visibility state
368 @table @kbd
369 @kindex @key{TAB}
370 @item @key{TAB}
371 Rotate current subtree between the states
372 @example
373 ,-> FOLDED -> CHILDREN -> SUBTREE --.
374 '-----------------------------------'
375 @end example
376 At the beginning of the buffer (or when called with @kbd{C-u}), this does
377 the same as the command @kbd{S-@key{TAB}} below.
378
379 @cindex global visibility states
380 @cindex overview, global visibility state
381 @cindex contents, global visibility state
382 @cindex show all, global visibility state
383 @kindex S-@key{TAB}
384 @item S-@key{TAB}
385 Rotate the entire buffer between the states
386 @example
387 ,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
388 '--------------------------------------'
389 @end example
390 Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field.
391
392 @cindex show all, command
393 @kindex C-c C-a
394 @item C-c C-a
395 Show all.
396 @end table
397
398 When Emacs first visits an Org-mode file, the global state is set to
399 OVERVIEW, i.e. only the top level headlines are visible. This can be
400 configured through the variable @code{org-startup-folded}, or on a
401 per-file basis by adding one of the following lines anywhere in the
402 buffer:
403
404 @example
405 #+STARTUP: fold
406 #+STARTUP: nofold
407 #+STARTUP: content
408 @end example
409
410 @node Motion, Structure editing, Visibility cycling, Document Structure
411 @section Motion
412 @cindex motion, between headlines
413 @cindex jumping, to headlines
414 The following commands jump to other headlines in the buffer.
415
416 @table @kbd
417 @kindex C-c C-n
418 @item C-c C-n
419 Next heading.
420 @kindex C-c C-p
421 @item C-c C-p
422 Previous heading.
423 @kindex C-c C-f
424 @item C-c C-f
425 Next heading same level.
426 @kindex C-c C-b
427 @item C-c C-b
428 Previous heading same level.
429 @kindex C-c C-u
430 @item C-c C-u
431 Backward to higher level heading.
432 @kindex C-c C-j
433 @item C-c C-j
434 Jump to a different place without changing the current outline
435 visibility. Shows the document structure in a temporary buffer, where
436 you can use visibility cycling (@key{TAB}) to find your destination.
437 After pressing @key{RET}, the cursor moves to the selected location in
438 the original buffer, and the headings hierarchy above it is made
439 visible.
440 @end table
441
442 @node Structure editing, Archiving, Motion, Document Structure
443 @section Structure editing
444 @cindex structure editing
445 @cindex headline, promotion and demotion
446 @cindex promotion, of subtrees
447 @cindex demotion, of subtrees
448 @cindex subtree, cut and paste
449 @cindex pasting, of subtrees
450 @cindex cutting, of subtrees
451 @cindex copying, of subtrees
452
453 @table @kbd
454 @kindex M-@key{RET}
455 @item M-@key{RET}
456 Insert new heading with same level as current
457 @kindex M-S-@key{RET}
458 @item M-S-@key{RET}
459 Insert new TODO entry with same level as current heading.
460 @kindex M-@key{left}
461 @item M-@key{left}
462 Promote current heading by one level
463 @kindex M-@key{right}
464 @item M-@key{right}
465 Demote current heading by one level
466 @kindex M-S-@key{left}
467 @item M-S-@key{left}
468 Promote the current subtree by one level
469 @kindex M-S-@key{right}
470 @item M-S-@key{right}
471 Demote the current subtree by one level
472 @kindex M-S-@key{up}
473 @item M-S-@key{up}
474 Move subtree up (swap with previous subtree of same level)
475 @kindex M-S-@key{down}
476 @item M-S-@key{down}
477 Move subtree down (swap with next subtree of same level)
478 @kindex C-c C-h C-w
479 @item C-c C-h C-w
480 Kill subtree, i.e. remove it from buffer but save in kill ring.
481 @kindex C-c C-h M-w
482 @item C-c C-h M-w
483 Copy subtree to kill ring.
484 @kindex C-c C-h C-y
485 @item C-c C-h C-y
486 Yank subtree from kill ring. This does modify the level of the subtree to
487 make sure the tree fits in nicely at the yank position. The yank
488 level can also be specified with a prefix arg, or by yanking after a
489 headline marker like @samp{****}.
490 @end table
491
492 @cindex region, active
493 @cindex active region
494 @cindex transient-mark-mode
495 When there is an active region (transient-mark-mode), promotion and
496 demotion work on all headlines in the region. To select a region of
497 headlines, it is best to place both point and mark at the beginning of a
498 line, mark at the beginning of the first headline, and point at the line
499 just after the last headline to change. Note that when the cursor is
500 inside a table (@pxref{Tables}), the Meta-Cursor keys have different
501 functionality.
502
503 @node Archiving, Sparse trees, Structure editing, Document Structure
504 @section Archiving
505 @cindex archiving
506
507 When a project represented by a (sub)tree is finished, you may want
508 to move the tree to an archive place, either in the same file under a
509 special top-level heading, or even to a different file.
510 @table @kbd
511 @kindex C-c $
512 @item @kbd{C-c $}
513 Archive the subtree starting at the cursor position to the location
514 given by @code{org-archive-location}.
515 @end table
516
517 @cindex archive locations
518 The default archive is a file in the same directory as the current
519 file, with the name derived by appending @file{_archive} to the
520 current file name. For information and examples on how to change
521 this, see the documentation string of the variable
522 @code{org-archive-location}. If you are also using the Org-mode
523 agenda, archiving to a different file is a good way to keep archived
524 trees from contributing agenda items.
525
526 @node Sparse trees, , Archiving, Document Structure
527 @section Sparse trees
528 @cindex sparse trees
529 @cindex trees, sparse
530 @cindex folding, sparse trees
531 @cindex occur, command
532
533 An important feature of Org-mode is the ability to construct
534 @emph{sparse trees} for selected information in an outline tree. A
535 sparse tree means that the entire document is folded as much as
536 possible, but the selected information is made visible along with the
537 headline structure above it@footnote{See also the variable
538 @code{org-show-following-heading}.}. Just try it out and you will see
539 immediately how it works.
540
541 Org-mode contains several commands creating such trees. The most
542 basic one is @command{org-occur}:
543
544 @table @kbd
545 @kindex C-c /
546 @item C-c /
547 Occur. Prompts for a regexp and shows a sparse tree with all matches.
548 If the match is in a headline, the headline is made visible. If the
549 match is in the body of an entry, headline and body are made visible.
550 In order to provide minimal context, also the full hierarchy of
551 headlines above the match is shown, as well as the headline following
552 the match.
553 @end table
554
555 Other commands are using this feature as well. For example @kbd{C-c
556 C-v} creates a sparse TODO tree (@pxref{TODO basics}).
557
558 @kindex C-c C-x v
559 @cindex printing sparse trees
560 @cindex visible text, printing
561 To print a sparse tree, you can use the Emacs command
562 @code{ps-print-buffer-with-faces} which does not print invisible parts
563 of the document @footnote{This does not work under XEmacs, because
564 XEmacs uses selective display for outlining, not text properties}.
565 Or you can use the command @kbd{C-c C-x v} to copy the visible part of
566 the document to another file (extension @file{.txt}) which then can be
567 printed in any desired way.
568
569 @node Tables, Hyperlinks, Document Structure, Top
570 @chapter Tables
571 @cindex tables
572
573 Org-mode has a very fast and intuitive table editor built-in.
574 Spreadsheet-like calculations are supported in connection with the
575 Emacs @file{calc} package.
576
577 @menu
578 * Built-in table editor:: Simple tables
579 * Table calculations:: Compute a field from other fields
580 * orgtbl-mode:: The table editor as minor mode
581 * table.el:: Complex tables
582 @end menu
583
584 @node Built-in table editor, Table calculations, Tables, Tables
585 @section The built-in table editor
586 @cindex table editor, builtin
587
588 Org-mode makes it easy to format tables in plain ASCII. Any line with
589 @samp{|} as the first non-white character is considered part of a
590 table. @samp{|} is also the column separator. A table might look
591 like this:
592
593 @example
594 | Name | Phone | Age |
595 |-------+-------+-----|
596 | Peter | 1234 | 17 |
597 | Anna | 4321 | 25 |
598 @end example
599
600 A table is re-aligned automatically each time you press @key{TAB} or
601 @key{RET} or @kbd{C-c C-c} inside the table. @key{TAB} also moves to
602 the next field (@key{RET} to the next row) and creates new table rows
603 at the end of the table or before horizontal lines. The indentation
604 of the table is set by the first line. Any line starting with
605 @samp{|-} is considered as a horizontal separator line and will be
606 expanded on the next re-align to span the whole table width. So, to
607 create the above table, you would only type
608
609 @example
610 |Name|Phone|Age
611 |-
612 @end example
613
614 @noindent and then press @key{TAB} to align the table and start filling in
615 fields.
616
617 @table @kbd
618 @tsubheading{Creation and conversion}
619 @item M-x org-table-create
620 Creates an empty Org-mode table. However, it is much easier to just
621 start typing, like @kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}
622
623 @kindex C-c C-c
624 @item C-c C-c
625 Convert region to table. Works when the cursor is not in an existing
626 table, and when there is a region defined. If every line contains at
627 least one TAB character, the function assumes that the material is tab
628 separated. If not, lines are split at whitespace into fields. You
629 can use a prefix argument to indicate how many consecutive spaces are
630 at least required to indicate a field separator (default: just one).
631
632 @tsubheading{Re-aligning and field motion}
633 @kindex C-c C-c
634 @item C-c C-c
635 Re-align the table without moving the cursor.
636
637 @kindex @key{TAB}
638 @item @key{TAB}
639 Re-align the table, move to the next field. Creates a new row if
640 necessary.
641
642 @kindex S-@key{TAB}
643 @item S-@key{TAB}
644 Re-align, move to previous field.
645
646 @kindex @key{RET}
647 @item @key{RET}
648 Re-align the table and move down to next row. Creates a new row if
649 necessary. At the beginning or end of a line, @key{RET} still does
650 NEWLINE, so it can be used to split a table.
651
652 @tsubheading{Column and row editing}
653 @kindex M-@key{left}
654 @kindex M-@key{right}
655 @item M-@key{left}
656 @itemx M-@key{right}
657 Move the current column left/right
658
659 @kindex M-S-@key{left}
660 @item M-S-@key{left}
661 Kill the current column.
662
663 @kindex M-S-@key{right}
664 @item M-S-@key{right}
665 Insert a new column to the left of the cursor position.
666
667 @kindex M-@key{up}
668 @kindex M-@key{down}
669 @item M-@key{up}
670 @itemx M-@key{down}
671 Move the current row up/down
672
673 @kindex M-S-@key{up}
674 @item M-S-@key{up}
675 Kill the current row or horizontal line.
676
677 @kindex M-S-@key{down}
678 @item M-S-@key{down}
679 Insert a new row above (with arg: below) the current row.
680
681 @kindex C-c -
682 @item C-c -
683 Insert a horizontal line below current row. With prefix arg, the line
684 is created above the current line.
685
686 @tsubheading{Regions}
687 @kindex C-c C-h M-w
688 @item C-c C-h M-w
689 Copy a rectangular region from a table to a special clipboard. Point
690 and mark determine edge fields of the rectangle. The process ignores
691 horizontal separator lines.
692 @kindex C-c C-h C-w
693 @item C-c C-h C-w
694 Copy a rectangular region from a table to a special clipboard, and
695 blank all fields in the rectangle. So this is the ``cut'' operation.
696 @kindex C-c C-h C-y
697 @item C-c C-h C-y
698 Paste a rectangular region into a table.
699 The upper right corner ends up in the current field. All involved fields
700 will be overwritten. If the rectangle does not fit into the present table,
701 the table is enlarged as needed. The process ignores horizontal separator
702 lines.
703 @kindex C-c C-q
704 @item C-c C-q
705 Wrap several fields in a column like a paragraph. If there is an active
706 region, and both point and mark are in the same column, the text in the
707 column is wrapped to minimum width for the given number of lines. A
708 prefix ARG may be used to change the number of desired lines. If there
709 is no region, the current field is split at the cursor position and the
710 text fragment to the right of the cursor is prepended to the field one
711 line down. If there is no region, but you specify a prefix ARG, the
712 current field gets blank, and the content is appended to the field
713 above.
714
715 @tsubheading{Calculations}
716 @cindex formula, in tables
717 @cindex calculations, in tables
718 @kindex C-c =
719 @item C-c =
720 Install a new formula for the current column and replace current field
721 with the result of the formula.
722
723 @kindex C-u C-c =
724 @item C-u C-c =
725 Install a new formula for the current field, which must be a named
726 field. Evaluate the formula and replace the field content with the
727 result.
728
729 @kindex C-c '
730 @item C-c '
731 Edit all formulas associated with the current table in a separate
732 buffer.
733
734 @kindex C-c *
735 @item C-c *
736 Recalculate the current row by applying the stored formulas from left
737 to right. When called with a @kbd{C-u} prefix, recalculate the
738 entire table, starting with the first non-header line (i.e. below the
739 first horizontal separator line). For details, see @ref{Table calculations}.
740
741 @kindex C-#
742 @item C-#
743 Rotate the calculation mark in first column through the states
744 @samp{}, @samp{#}, @samp{*}, @samp{!}, @samp{$}. For the meaning of
745 these marks see @ref{Advanced features}. When there is an active
746 region, change all marks in the region.
747
748 @kindex C-c ?
749 @item C-c ?
750 Which table column is the cursor in? Displays number >0 in echo
751 area.
752
753 @cindex region, active
754 @cindex active region
755 @cindex transient-mark-mode
756 @kindex C-c +
757 @item C-c +
758 Sum the numbers in the current column, or in the rectangle defined by
759 the active region. The result is shown in the echo area and can
760 be inserted with @kbd{C-y}.
761
762 @kindex S-@key{RET}
763 @item S-@key{RET}
764 When current field is empty, copy from first non-empty field above.
765 When not empty, copy current field down to next row and move cursor
766 along with it. Depending on the variable
767 @code{org-table-copy-increment}, integer field values will be
768 incremented during copy. This key is also used by CUA-mode
769 (@pxref{Interaction}).
770
771 @tsubheading{Miscellaneous}
772 @kindex C-c |
773 @item C-c |
774 Toggle the visibility of vertical lines in tables. The lines are
775 still there, only made invisible with a text property. Any @samp{|}
776 added by hand will become invisible on the next align.
777
778 @item M-x org-table-import
779 Import a file as a table. The table should be TAB- or whitespace
780 separated. Useful for example to import an Excel table or data from a
781 database, because these programs generally can write TAB-separated text
782 files. This command works by inserting the file into the buffer and
783 then converting the region to a table. Any prefix argument is passed on
784 to the converter, which uses it to determine the separator.
785
786 @item M-x org-table-export
787 Export the table as a TAB-separated file. Useful for data exchange with
788 for example Excel or database programs.
789
790 @end table
791
792 If you don't like the automatic table editor because it gets into your
793 way in lines which you would like to start with @samp{|}, you can turn
794 it off with
795 @lisp
796 (setq org-enable-table-editor nil)
797 @end lisp
798 @noindent The only table command which then still works is
799 @kbd{C-c C-c} to do a manual re-align.
800
801 @node Table calculations, orgtbl-mode, Built-in table editor, Tables
802 @section Calculations in tables
803 @cindex calculations, in tables
804
805 The table editor has some spreadsheet-like capabilities. The Emacs
806 @file{calc} package is required for this feature to work. There are
807 basically two levels of complexity for table calculations in Org-mode.
808 On the basic level, tables do only horizontal computations, so a field
809 can be computed from other fields @emph{in the same row}, and Org-mode
810 assumes that there is only one formula for each column. This is very
811 efficient to work with and enough for many tasks. On the complex
812 level, columns and individual fields can be named for easier
813 referencing in formulas, individual named fields can have their own
814 formula associated with them, and recalculation can be automated.
815
816 @menu
817 * Formula syntax:: How to write a formula
818 * Column formulas:: Formulas valid for all fields in a column
819 * Advanced features:: Field names, parameters and automatic recalc
820 * Named-field formulas:: Formulas valid in single fields
821 * Editing/debugging formulas:: Changing a stored formula
822 * Appetizer:: Taste the power of calc
823 @end menu
824
825 @node Formula syntax, Column formulas, Table calculations, Table calculations
826 @subsection Formula syntax
827
828 A formula can be any algebraic expression understood by the Emacs
829 @file{calc} package. Before evaluation by @code{calc-eval}
830 (@pxref{Calling Calc from Your Lisp Programs,calc-eval,Calling calc
831 from Your Lisp Programs,calc,GNU Emacs Calc Manual}), variable
832 substitution takes place:
833
834 @example
835 $ @r{refers to the current field}
836 $3 @r{refers to the field in column 3 of the current row}
837 $3..$7 @r{a vector of the fields in columns 3-7 of current row}
838 $P1..$P3 @r{vector of column range, using column names}
839 &2 @r{second data field above the current, in same column}
840 &5-2 @r{vector from fifth to second field above current}
841 &III-II @r{vector of fields between 2nd and 3rd hline above}
842 &III @r{vector of fields between third hline above and current field}
843 $name @r{a named field, parameter or constant}
844 @end example
845
846 The range vectors can be directly fed into the calc vector functions
847 like functions @samp{vmean} and @samp{vsum}.
848
849 @samp{$name} is interpreted as the name of a column, parameter or
850 constant. Constants are defined globally through the variable
851 @code{org-table-formula-constants}. If you have the
852 @file{constants.el} package, it will also be used to resolve
853 constants, including natural constants like @samp{$k} for Planck's
854 constant, units like @samp{$km} for kilometers. Column names and
855 parameters can be specified in special table lines. These are
856 described below, see @ref{Advanced features}.
857
858 A formula can contain an optional mode string after a semicolon. This
859 string consists of flags to influence calc's modes@footnote{By
860 default, Org-mode uses the standard calc modes (precision 12, angular
861 units degrees, fraction and symbolic modes off). However, the display
862 format which has been changed to @code{(float 5)} to keep tables
863 compact. The default settings can be configured using the variable
864 @code{org-calc-default-modes}.} during execution, e.g. @samp{p20} to
865 switch the internal precision to 20 digits, @samp{n3}, @samp{s3},
866 @samp{e2} or @samp{f4} to switch to normal, scientific, engineering,
867 or fix display format, respectively, and @samp{D}, @samp{R}, @samp{F},
868 and @samp{S} to turn on degrees, radians, fraction and symbolic modes,
869 respectively. In addition, you may provide a @code{printf} format
870 specifier to reformat the final result. A few examples:
871 @example
872 $1+$2 @r{Sum of first and second field}
873 $1+$2;%.2f @r{Same, format result to two decimals}
874 exp($2)+exp($1) @r{Math functions can be used}
875 $;%.1f @r{Reformat current cell to 1 decimal}
876 ($3-32)*5/9 @r{Degrees F -> C conversion}
877 $c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}}
878 tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1}
879 sin($1);Dp3%.1e @r{Same, but use printf specifier for display}
880 vmean($2..$7) @r{Compute column range mean, using vector function}
881 vsum(&III) @r{Sum numbers from 3rd hline above to here}
882 taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree}
883 @end example
884
885 @node Column formulas, Advanced features, Formula syntax, Table calculations
886 @subsection Column formulas
887
888 To apply a formula to a field, type it directly into the field,
889 preceded by an equal sign, like @samp{=$1+$2}. When you press
890 @key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in the
891 field, the formula will be stored as the formula for the current
892 column, evaluated and the current field replaced with the result. If
893 the field contains only @samp{=}, the previously stored formula for
894 this column is used.
895
896 For each column, Org-mode will remember the most recently used
897 formula. The information is stored in a special line starting with
898 @samp{#+TBLFM} directly below the table. When adding/deleting/moving
899 columns with the appropriate commands, the stored equations will be
900 modified accordingly. When a column used in a calculation is removed,
901 references to this column become invalid and will cause an error upon
902 applying the equation.
903
904 Instead of typing an equation into the field, you may also use the
905 command @kbd{C-c =}. It prompts for a formula (with default taken
906 from the @samp{#+TBLFM:} line) and applies it to the current field. A
907 numerical prefix (e.g. @kbd{C-5 C-c =}) will apply it to that many
908 subsequent fields in the current column.
909
910 To recompute all the fields in a line, use the command @kbd{C-c *}.
911 It re-applies all stored equations to the current row, from left to
912 right. With a @kbd{C-u} prefix, this will be done to every line in
913 the table, so use this command it you want to make sure the entire
914 table is up-to-date. @kbd{C-u C-c C-c} is another way to update the
915 entire table. Global updating does not touch the line(s) above the
916 first horizontal separator line, assuming that this is the table
917 header.
918
919 @node Advanced features, Named-field formulas, Column formulas, Table calculations
920 @subsection Advanced features
921
922 If you want want the recalculation of fields to happen automatically,
923 or if you want to be able to assign a formula to an individual field
924 (instead of an entire column) you need to reserve the first column of
925 the table for special marking characters. Here is an example of a
926 table that collects exam results of students and makes use of these
927 features:
928 @example
929 @group
930 |---+---------+--------+--------+--------+-------+------|
931 | | Student | Prob 1 | Prob 2 | Prob 3 | Total | Note |
932 |---+---------+--------+--------+--------+-------+------|
933 | ! | | P1 | P2 | P3 | Tot | |
934 | # | Maximum | 10 | 15 | 25 | 50 | 10.0 |
935 | ^ | | m1 | m2 | m3 | mt | |
936 |---+---------+--------+--------+--------+-------+------|
937 | # | Peter | 10 | 8 | 23 | 41 | 8.2 |
938 | # | Sara | 6 | 14 | 19 | 39 | 7.8 |
939 | # | Sam | 2 | 4 | 3 | 9 | 1.8 |
940 |---+---------+--------+--------+--------+-------+------|
941 | | Average | | | | 29.7 | |
942 | ^ | | | | | at | |
943 | $ | max=50 | | | | | |
944 |---+---------+--------+--------+--------+-------+------|
945 #+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f::$at=vmean(&II);%.1f
946 @end group
947 @end example
948
949 @noindent @b{Important}: Please note that for these special tables,
950 recalculating the table with @kbd{C-u C-c *} does only affect rows
951 which are marked @samp{#} or @samp{*}, and named fields. The column
952 formulas are not applied in rows with empty first field.
953
954 The marking characters have the following meaning:
955 @table @samp
956 @item !
957 The fields in this line define names for the columns, so that you may
958 refer to a column as @samp{$Tot} instead of @samp{$6}.
959 @item ^
960 This row define names for the fields @emph{above} the row. With such
961 a definition, any formula in the table may use @samp{$m1} to refer to
962 the value @samp{10}. Also, named fields can have their own formula
963 associated with them.
964 @item _
965 Similar to @samp{^}, but defines names for the fields in the row
966 @emph{below}.
967 @item $
968 Fields in this row can define @emph{parameters} for formulas. For
969 example, if a field in a @samp{$} row contains @samp{max=50}, then
970 formulas in this table can refer to the value 50 using @samp{$max}.
971 Parameters work exactly like constants, only that they can be defined on
972 a per-table basis. Changing a parameter and then recalculating the
973 table can be useful.
974 @item #
975 Fields in this row are automatically recalculated when pressing
976 @key{TAB} or @key{RET} or @kbd{S-@key{TAB}} in this row. Also, this row
977 is selected for a global recalculation with @kbd{C-u C-c *}. Unmarked
978 lines will be left alone by this command.
979 @item *
980 Selects this line for global recalculation with @kbd{C-u C-c *}, but
981 not for automatic recalculation. Use this when automatic
982 recalculation slows down editing too much.
983 @item
984 Unmarked lines are exempted from recalculation with @kbd{C-u C-c *}.
985 All lines that should be recalculated should be marked with @samp{#}
986 or @samp{*}.
987 @end table
988
989 @node Named-field formulas, Editing/debugging formulas, Advanced features, Table calculations
990 @subsection Named-field formulas
991
992 A named field can have its own formula associated with it. In the
993 example above, this is used for the @samp{at} field that contains
994 the average result of the students. To enter a formula for a named
995 field, just type it onto the buffer, preceded by @samp{:=}. Or use
996 @kbd{C-u C-c =}. This equation will be stored below the table like
997 @samp{$name=...}. Any recalculation in the table (even if only
998 requested for the current line) will also update all named field
999 formulas.
1000
1001 @node Editing/debugging formulas, Appetizer, Named-field formulas, Table calculations
1002 @subsection Editing and debugging formulas
1003
1004 To edit a column or field formula, you can use the commands @kbd{C-c
1005 =} and @kbd{C-u C-c =}, respectively. The currently active expression
1006 is then presented as default in the minibuffer, were it may be edited.
1007
1008 Note that making a table field blank does not remove the formula
1009 associated with the field - during the next recalculation the field
1010 will be filled again. To remove a formula from a field, you have to
1011 give an empty reply when prompted for the formula, or to edit the
1012 @samp{#+TBLFM} line.
1013
1014 @kindex C-c C-c
1015 You may edit the @samp{#+TBLFM} directly and re-apply
1016 the changed equations with @kbd{C-c C-c} in that line, or with the
1017 normal recalculation commands in the table.
1018
1019 @kindex C-c '
1020 @kindex C-c C-c
1021 @kindex C-c C-q
1022 @kindex C-c ?
1023 In particular for large tables with many formulas, it is convenient to
1024 use the command @kbd{C-c '} to edit the formulas of the current table
1025 in a separate buffer. That buffer will show the formulas one per
1026 line, and you are free to edit, add and remove formulas. Press
1027 @kbd{C-c ?} on a @samp{$...} expression to get information about its
1028 interpretation. Exiting the buffer with @kbd{C-c C-c} only stores the
1029 modified formulas below the table. Exiting with @kbd{C-u C-c C-c}
1030 also applies them to the entire table. @kbd{C-c C-q} exits without
1031 installing the changes.
1032
1033 When the evaluation of a formula leads to an error, the field content
1034 becomes the string @samp{#ERROR}. If you would like see what is going
1035 on during variable substitution and calculation in order to find a
1036 bug, turn on formula debugging in the menu and repeat the calculation
1037 by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field.
1038 Detailed information will be displayed.
1039
1040 @node Appetizer, , Editing/debugging formulas, Table calculations
1041 @subsection Appetizer
1042
1043 Finally, just to wet your appetite on what can be done with the fantastic
1044 @file{calc} package, here is a table that computes the Taylor series
1045 for a couple of functions (homework: try that with Excel :-)
1046
1047 @example
1048 @group
1049 |---+-------------+---+-----+--------------------------------------|
1050 | | Func | n | x | Result |
1051 |---+-------------+---+-----+--------------------------------------|
1052 | # | exp(x) | 1 | x | 1 + x |
1053 | # | exp(x) | 2 | x | 1 + x + x^2 / 2 |
1054 | # | exp(x) | 3 | x | 1 + x + x^2 / 2 + x^3 / 6 |
1055 | # | x^2+sqrt(x) | 2 | x=0 | x*(0.5 / 0) + x^2 (2 - 0.25 / 0) / 2 |
1056 | # | x^2+sqrt(x) | 2 | x=1 | 2 + 2.5 x - 2.5 + 0.875 (x - 1)^2 |
1057 | * | tan(x) | 3 | x | 0.0175 x + 1.77e-6 x^3 |
1058 |---+-------------+---+-----+--------------------------------------|
1059 #+TBLFM: $5=taylor($2,$4,$3);n3
1060 @end group
1061 @end example
1062
1063 @node orgtbl-mode, table.el, Table calculations, Tables
1064 @section The Orgtbl minor mode
1065 @cindex orgtbl-mode
1066 @cindex minor mode for tables
1067
1068 If you like the intuitive way the Org-mode table editor works, you
1069 might want to use it also in other modes like text-mode or mail-mode.
1070 The minor mode Orgtbl-mode makes this possible. You can always toggle
1071 the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for
1072 example in mail mode, use
1073 @lisp
1074 (add-hook 'mail-mode-hook 'turn-on-orgtbl)
1075 @end lisp
1076
1077 @node table.el, , orgtbl-mode, Tables
1078 @section The @file{table.el} package
1079 @kindex C-c C-c
1080 @cindex table editor, @file{table.el}
1081 @cindex @file{table.el}
1082
1083 Complex ASCII tables with automatic line wrapping, column- and
1084 row-spanning, and alignment can be created using the Emacs table
1085 package by Takaaki Ota (@uref{http://sourceforge.net/projects/table}).
1086 When @key{TAB} or @kbd{C-c C-c} is pressed in such a table, Org-mode
1087 will call @command{table-recognize-table} and move the cursor into the
1088 table. Inside a table, the keymap of Org-mode is inactive. In order
1089 to execute Org-mode-related commands, leave the table.
1090
1091 @table @kbd
1092 @kindex C-c C-c
1093 @item C-c C-c
1094 Recognize @file{table.el} table. Works when the cursor is in a
1095 table.el table.
1096
1097 @kindex C-c ~
1098 @item C-c ~
1099 Insert a table.el table. If there is already a table at point, this
1100 command converts it between the table.el format and the Org-mode
1101 format. See the documentation string of the command
1102 @code{org-convert-table} for the restrictions under which this is
1103 possible.
1104 @end table
1105
1106 @node Hyperlinks, TODO items, Tables, Top
1107 @chapter Hyperlinks
1108 @cindex hyperlinks
1109
1110 Just like HMTL, Org-mode provides links to other files, Usenet
1111 articles, emails and much more.
1112
1113 @menu
1114 * Links:: URL-like links to the world
1115 * Remember:: Org-trees store quick notes
1116 @end menu
1117
1118 @node Links, Remember, Hyperlinks, Hyperlinks
1119 @section Links
1120 @cindex links
1121 @cindex GNUS links
1122 @cindex BBDB links
1123 @cindex URL links
1124 @cindex file links
1125 @cindex VM links
1126 @cindex RMAIL links
1127 @cindex WANDERLUST links
1128 @cindex USENET links
1129 @cindex SHELL links
1130
1131 Org-mode supports links to files, websites, Usenet and email messages;
1132 and BBDB database entries. Links are just plain-text URL-like
1133 locators, optionally enclosed by angular brackets. The following list
1134 shows examples for each link type.
1135
1136 @example
1137 <http://www.astro.uva.nl/~dominik> @r{on the web}
1138 <file:/home/dominik/images/jupiter.jpg> @r{file, absolute path}
1139 <file:papers/last.pdf> @r{file, relative path}
1140 <file:~/code/main.c:255> @r{file, with line number}
1141 <news:comp.emacs> @r{Usenet link}
1142 <mailto:adent@@galaxy.net> @r{Mail link}
1143 <vm:folder> @r{VM folder link}
1144 <vm:folder#id> @r{VM message link}
1145 <vm://myself@@some.where.org/folder#id> @r{VM on remote machine}
1146 <wl:folder> @r{WANDERLUST folder link}
1147 <wl:folder#id> @r{WANDERLUST message link}
1148 <rmail:folder> @r{RMAIL folder link}
1149 <rmail:folder#id> @r{RMAIL message link}
1150 <gnus:group> @r{GNUS group link}
1151 <gnus:group#id> @r{GNUS article link}
1152 <bbdb:Richard Stallman> @r{BBDB link}
1153 <shell:ls *.org>@footnote{Note that @samp{<} and @samp{>} cannot be part of a link, and therefore of a shell command. If you need redirection, use @@@{ and @@@} instead.} @r{A shell command}
1154 @end example
1155
1156 A link may contain space characters and is terminated by @samp{>} or by
1157 the end of a line. In tables, the end of a table field also terminates
1158 a link. Angle brackets around a link are not required, but are
1159 recommended to avoid problems with punctuation and other text following
1160 the link. See also the variable @code{org-allow-space-in-links}.
1161
1162 @cindex storing links
1163 @table @kbd
1164 @kindex C-c l
1165 @item C-c l
1166 Store a link to the current location. This is a @emph{global} command
1167 which can be used in any buffer to create a link. The link will be
1168 stored for later insertion into an Org-mode buffer (see below). For VM,
1169 RMAIL, WANDERLUST, GNUS and BBDB buffers, the link will point to the
1170 current article/entry. For W3 and W3M buffer, the link goes to the
1171 current URL. For any other files, the link will just point to the file.
1172 The key binding @kbd{C-c l} is only a suggestion - see
1173 @ref{Installation and Activation}.
1174
1175 @kindex C-c C-l
1176 @cindex completion, of links
1177 @cindex completion, of file names
1178 @item C-c C-l
1179 Insert a link. This prompts for a link to be inserted into the
1180 buffer. You can just type a link, using one of the link type prefixes
1181 mentioned in the examples above. Through completion, all links stored
1182 during the current session can be accessed. When called with prefix
1183 arg, you can use file name completion to enter a file link. The link
1184 will be formatted as given in the variable @code{org-link-format} and
1185 inserted into the buffer. Note that you don't have to use this
1186 command to insert a link. Links in Org-mode are plain text, and you
1187 can type or paste them straight into the buffer.
1188
1189 @cindex inserting links
1190 @kindex C-c C-o
1191 @item C-c C-o
1192 Open link at point. This will launch a web browser for URLs (using
1193 @command{browse-url-at-point}), run vm/gnus/bbdb for the corresponding
1194 links, execute the command in a shell link, visit text files with
1195 Emacs and select a suitable application for non-text files.
1196 Classification of files is based on file extension only. See option
1197 @code{org-file-apps}. If there is no link at point, the current
1198 subtree will be searched for one. If you want to override the default
1199 application and visit the file with Emacs, use a @kbd{C-u} prefix.
1200 If the cursor is on a time stamp, compiles the agenda for that date.
1201
1202 @strong{IMPORTANT}: Be careful not to use any dangerous commands in a
1203 shell link.
1204
1205 @kindex mouse-2
1206 @item mouse-2
1207 On links, @kbd{mouse-2} will open the link just like @kbd{C-c C-o} would.
1208
1209 @kindex mouse-3
1210 @item mouse-3
1211 Like @kbd{mouse-2}, but force file links to be opened with Emacs.
1212 @end table
1213
1214 @node Remember, , Links, Hyperlinks
1215 @section Remember
1216 @cindex @file{remember.el}
1217
1218 Another way to create org entries with links to other files is through
1219 the @emph{Remember} package by John Wiegley. @emph{Remember} lets you
1220 store quick notes with little interruption of your work flow. See
1221 @uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
1222 information. The notes produced by @emph{Remember} can be stored in
1223 different ways, and Org-mode files are a good target. Org-mode allows
1224 to file away notes either to a default file, or directly to the
1225 correct location in your Org-mode outline tree. The following
1226 customization@footnote{The two autoload forms are only necessary if
1227 @file{org.el} is not part of the Emacs distribution or and XEmacs
1228 package.} will tell @emph{Remember} to use org files as target, and to
1229 create annotations compatible with Org-mode links.
1230
1231 @example
1232 (autoload 'org-remember-annotation "org")
1233 (autoload 'org-remember-handler "org")
1234 (setq org-directory "~/path/to/my/orgfiles/")
1235 (setq org-default-notes-file "~/.notes")
1236 (setq remember-annotation-functions '(org-remember-annotation))
1237 (setq remember-handler-functions '(org-remember-handler))
1238 @end example
1239
1240 When you compose a note with remember, you have to press @kbd{C-c C-c}
1241 to exit remember-mode and to file away the note. The handler first
1242 prompts for a target file - if you press @key{RET}, the value of
1243 @code{org-default-notes-file} is used. Then the command offers the
1244 headings tree of the selected file. You can either immediately press
1245 @key{RET} to get the note appended to the file. Or you can use
1246 vertical cursor motion (@key{up} and @key{down}) and visibility
1247 cycling (@key{TAB}) to find a better place. Pressing @key{RET} or
1248 @key{left} or @key{right} leads to the following result.
1249
1250 @multitable @columnfractions 0.2 0.1 0.7
1251 @item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted}
1252 @item buffer-start @tab @key{RET} @tab as level 2 heading at end of file
1253 @item on headline @tab @key{RET} @tab as sublevel of the heading at cursor
1254 @item @tab @key{left} @tab as same level, before current heading
1255 @item @tab @key{right} @tab as same level, after current heading
1256 @item not on headline @tab @key{RET}
1257 @tab at cursor position, level taken from context.
1258 Or use prefix arg to specify level manually.
1259 @end multitable
1260
1261 So a fast way to store the note is to press @kbd{C-c C-c @key{RET}
1262 @key{RET}} to append it to the default file. Even shorter would be
1263 @kbd{C-u C-c C-c}, which does the same without even showing the tree.
1264 But with little extra effort, you can push it directly to the correct
1265 location.
1266
1267 Before inserting the text into a tree, the function ensures that the
1268 text has a headline, i.e. a first line that starts with a @samp{*}.
1269 If not, a headline is constructed from the current date and some
1270 additional data. If the variable @code{org-adapt-indentation} is
1271 non-nil, the entire text is also indented so that it starts in the
1272 same column as the headline (after the asterisks).
1273
1274 @node TODO items, Timestamps, Hyperlinks, Top
1275 @chapter TODO items
1276 @cindex TODO items
1277
1278 Org-mode does not maintain TODO lists as a separate document. TODO
1279 items are an integral part of the notes file, because TODO items
1280 usually come up while taking notes! With Org-mode, you simply mark
1281 any entry in a tree as being a TODO item. In this way, the
1282 information is not duplicated, and the entire context from which the
1283 item emerged is always present when you check.
1284
1285 Of course, this technique causes TODO items to be scattered throughout
1286 your file. Org-mode provides methods to give you an overview over all
1287 things you have to do.
1288
1289 @menu
1290 * TODO basics:: Marking and displaying TODO entries
1291 * TODO extensions:: Workflow and assignments
1292 * Priorities:: Some things are more important than others
1293 @end menu
1294
1295 @node TODO basics, TODO extensions, TODO items, TODO items
1296 @section Basic TODO functionality
1297
1298 Any headline can become a TODO item by starting it with the word TODO,
1299 for example
1300
1301 @example
1302 *** TODO Write letter to Sam Fortune
1303 @end example
1304
1305 @noindent
1306 The most important commands to work with TODO entries are:
1307
1308 @table @kbd
1309 @kindex C-c C-t
1310 @item C-c C-t
1311 Rotate the TODO state of the current item between
1312 @example
1313 ,-> (unmarked) -> TODO -> DONE --.
1314 '--------------------------------'
1315 @end example
1316 The same rotation can also be done ``remotely'' from the timeline and
1317 agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}).
1318 @kindex C-c C-v
1319 @cindex sparse tree, for TODO
1320 @item C-c C-v
1321 View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds
1322 the entire buffer, but shows all TODO items and the headings hierarchy
1323 above them. With prefix arg, show also the DONE entries.
1324 @item C-u C-c a
1325 A @kbd{C-u} argument to the @code{org-agenda command} (@pxref{Agenda})
1326 collects all unfinished TODO items into a single place.
1327 @end table
1328
1329 @node TODO extensions, Priorities, TODO basics, TODO items
1330 @section Extended use of TODO keywords
1331 @cindex extended TODO keywords
1332
1333 The default implementation of TODO entries is just two states: TODO
1334 and DONE. You can, however, use the TODO feature for more
1335 complicated things by configuring the variables
1336 @code{org-todo-keywords} and @code{org-todo-interpretation}. Using
1337 special setup, you can even use TODO keywords in different ways in
1338 different org files.
1339
1340 @menu
1341 * Workflow states:: From TODO to DONE in steps
1342 * TODO types:: I do this, Fred the rest
1343 * Per file keywords:: Different files, different requirements
1344 @end menu
1345
1346 @node Workflow states, TODO types, TODO extensions, TODO extensions
1347 @subsection TODO keywords as workflow states
1348 @cindex TODO workflow
1349 @cindex workflow states as TODO keywords
1350
1351 You can use TODO keywords to indicate different states in the process
1352 of working on an item, for example
1353
1354 @lisp
1355 (setq org-todo-keywords '("TODO" "FEEDBACK" "VERIFY" "DONE")
1356 org-todo-interpretation 'sequence)
1357 @end lisp
1358
1359 @cindex completion, of TODO keywords
1360 With this setup, the command @kbd{C-c C-t} will cycle an entry from
1361 TODO to FEEDBACK, then to VERIFY, and finally too DONE. You may also
1362 use a prefix argument to quickly select a specific state. For example
1363 @kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
1364 If you define many keywords, you can use in-buffer completion (see
1365 @ref{Completion}) to insert these words into the buffer.
1366
1367 @node TODO types, Per file keywords, Workflow states, TODO extensions
1368 @subsection TODO keywords as types
1369 @cindex TODO types
1370 @cindex names as TODO keywords
1371 @cindex types as TODO keywords
1372
1373 The second possibility is to use TODO keywords to indicate different
1374 types of action items. For example, you might want to indicate that
1375 items are for ``work'' or ``home''. Or, when you work with several
1376 people on a single project, you might want to assign action items
1377 directly to persons, by using their names as TODO keywords. This
1378 would be set up like this:
1379
1380 @lisp
1381 (setq org-todo-keywords '("Fred" "Sara" "Lucy" "Mike" "DONE")
1382 org-todo-interpretation 'type)
1383 @end lisp
1384
1385 In this case, different keywords do not indicate a sequence, but
1386 rather different types. So it is normally not useful to change from
1387 one type to another. Therefore, in this case the behavior of the
1388 command @kbd{C-c C-t} is changed slightly@footnote{This is also true
1389 for the @kbd{t} command in the timeline and agenda buffers.}. When
1390 used several times in succession, it will still cycle through all
1391 names. But when when you return to the item after some time and
1392 execute @kbd{C-c C-t} again, it will switch from each name directly to
1393 DONE. Use prefix arguments or completion to quickly select a specific
1394 name.
1395
1396 @node Per file keywords, , TODO types, TODO extensions
1397 @subsection Setting up TODO keywords for individual files
1398 @cindex keyword options
1399 @cindex per file keywords
1400
1401 It can be very useful to use different aspects of the TODO mechanism
1402 in different files, which is not possible with the global settings
1403 described above. For file-local settings, you need to add special
1404 lines to the file which set the keywords and interpretation for that
1405 file only. For example, to set one of the two examples discussed
1406 above, you need one of the following lines, starting in column zero
1407 anywhere in the file:
1408
1409 @example
1410 #+SEQ_TODO: TODO FEEDBACK VERIFY DONE
1411 #+TYP_TODO: Fred Sara Lucy Mike DONE
1412 @end example
1413
1414 @cindex Completion, of option keywords
1415 @kindex M-@key{TAB}
1416 @noindent To make sure you are using the correct keyword, type
1417 @samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion.
1418
1419 @cindex DONE, final TODO keyword
1420 Remember that the last keyword must always mean that the item is DONE
1421 (you may use a different word, though). Also note that in each file,
1422 only one of the two aspects of TODO keywords can be used. After
1423 changing one of these lines, use @kbd{C-c C-c} with the cursor still
1424 in the line to make the changes known to Org-mode@footnote{Org-mode
1425 parses these lines only when Org-mode is activated after visiting a
1426 file. @kbd{C-c C-c} with the cursor in a line starting with @samp{#-}
1427 is simply restarting Org-mode, making sure that these changes will be
1428 respected.}.
1429
1430 If you want to use very many keywords, for example when working with a
1431 large group of people, you may split the names over several lines:
1432
1433 @example
1434 #+TYP_TODO: Fred Sara Lucy Mike
1435 #+TYP_TODO: Luis George Jules Jessica
1436 #+TYP_TODO: Kim Arnold Peter
1437 #+TYP_TODO: DONE
1438 @end example
1439
1440 @node Priorities, , TODO extensions, TODO items
1441 @section Priorities
1442 @cindex priorities
1443
1444 If you use Org-mode extensively to organize your work, you may end up
1445 with a number of TODO entries so large that you'd like to prioritize
1446 them. This can be done by placing a @emph{priority cookie} into the
1447 headline, like this
1448
1449 @example
1450 *** TODO [#A] Write letter to Sam Fortune
1451 @end example
1452
1453 @noindent
1454 With its standard setup, Org-mode supports priorities @samp{A},
1455 @samp{B}, and @samp{C}. @samp{A} is the highest priority. An entry
1456 without a cookie is treated as priority @samp{B}. Priorities make a
1457 difference only in the agenda (@pxref{Agenda}).
1458
1459 @table @kbd
1460 @kindex @kbd{C-c ,}
1461 @item @kbd{C-c ,}
1462 Set the priority of the current item. The command prompts for a
1463 priority character @samp{A}, @samp{B} or @samp{C}. When you press
1464 @key{SPC} instead, the priority cookie is removed from the headline.
1465 The priorities can also be changed ``remotely'' from the timeline and
1466 agenda buffer with the @kbd{,} command (@pxref{Agenda commands}).
1467
1468 @kindex S-@key{up}
1469 @kindex S-@key{down}
1470 @item S-@key{up}
1471 @itemx S-@key{down}
1472 Increase/decrease priority of current item. Note that these keys are
1473 also used to modify time stamps (@pxref{Creating timestamps}).
1474 Furthermore, these keys are also used by CUA-mode
1475 (@pxref{Interaction}).
1476 @end table
1477
1478
1479
1480 @node Timestamps, Timeline and Agenda, TODO items, Top
1481 @chapter Timestamps
1482
1483 Items can be labeled with timestamps to make them useful for project
1484 planning.
1485
1486 @menu
1487 * Time stamps:: Assigning a time to a tree entry
1488 * Creating timestamps:: Commands which insert timestamps
1489 @end menu
1490
1491
1492 @node Time stamps, Creating timestamps, Timestamps, Timestamps
1493 @section Time stamps, deadlines and scheduling
1494 @cindex time stamps
1495 @cindex deadlines
1496 @cindex scheduling
1497
1498 A time stamp is a specification of a date (possibly with time) in a
1499 special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16
1500 Tue 09:39>}. A time stamp can appear anywhere in the headline or body
1501 of an org-tree entry. Its presence allows to show entries on specific
1502 dates in the agenda (@pxref{Agenda}). We distinguish:
1503
1504 @table @var
1505 @cindex timestamp
1506 @item TIMESTAMP
1507 A simple time stamp just assigns a date/time to an item. In the
1508 timeline and agenda displays, the headline of the entry will be shown
1509 exactly on that date.
1510
1511 @item TIMERANGE
1512 @cindex timerange
1513 Two time stamps connected by @samp{--} denote a time range. The
1514 headline will be shown on the first and last day of the range, and on
1515 any dates that are displayed and fall in the range. Here is an
1516 example:
1517
1518 @example
1519 ** Meeting in Amsterdam
1520 <2004-08-23 Mon>--<2004-08-26 Thu>
1521 @end example
1522
1523 @item DEADLINE
1524 @cindex DEADLINE keyword
1525 If a time stamp is preceded by the word @samp{DEADLINE:}, the task
1526 (most likely a TODO item) is supposed to be finished on that date, and
1527 it will be listed then. In addition, the compilation for @emph{today}
1528 will carry a warning about the approaching or missed deadline,
1529 starting @code{org-deadline-warning-days} before the due date, and
1530 continuing until the entry is marked DONE. An example:
1531
1532 @example
1533 *** TODO write article about the Earth for the Guide
1534 The editor in charge is <bbdb:Ford Prefect>
1535 DEADLINE: <2004-02-29 Sun>
1536 @end example
1537
1538 @item SCHEDULED
1539 @cindex DEADLINE keyword
1540 If a time stamp is preceded by the word @samp{SCHEDULED:}, it means
1541 you are planning to start working on that task on the given date. The
1542 headline will be listed under the given date. In addition, a reminder
1543 that the scheduled date has passed will be present in the compilation
1544 for @emph{today}, until the entry is marked DONE. I.e., the
1545 task will automatically be forwarded.
1546 @end table
1547
1548 @node Creating timestamps, , Time stamps, Timestamps
1549 @section Creating timestamps
1550 @cindex creating timestamps
1551
1552 For Org-mode to recognize time stamps, they need to be in the specific
1553 format. All commands listed below produce time stamps in the correct
1554 format.
1555
1556 @table @kbd
1557 @kindex C-c .
1558 @item C-c .
1559 Prompt for a date and insert a corresponding time stamp. When the
1560 cursor is at a previously used time stamp, it is updated to NOW. When
1561 this command is used twice in succession, a time range is inserted.
1562
1563 @kindex C-u C-c .
1564 @item C-u C-c .
1565 Like @kbd{C-c .}, but use the alternative format which contains date
1566 and time.
1567
1568 @kindex C-c <
1569 @item C-c <
1570 Insert a time stamp corresponding to the cursor date in the Calendar.
1571
1572 @kindex C-c >
1573 @item C-c >
1574 Access the Emacs calendar for the current date. If there is a
1575 timestamp in the current line, goto the corresponding date
1576 instead.
1577
1578 @kindex C-c C-o
1579 @item C-c C-o
1580 Access the agenda for the date given by the time stamp at point
1581 (@pxref{Agenda}).
1582
1583 @kindex C-c C-d
1584 @item C-c C-d
1585 Insert @samp{DEADLINE} keyword along with a stamp.
1586 @kindex C-c C-w
1587 @cindex sparse tree, for deadlines
1588 @item C-c C-w
1589 Create a sparse tree with all deadlines that are either past-due, or
1590 which will become due within @code{org-deadline-warning-days}.
1591 With @kbd{C-u} prefix, show all deadlines in the file. With a numeric
1592 prefix, check that many days. For example, @kbd{C-1 C-c C-w} shows
1593 all deadlines due tomorrow.
1594
1595 @kindex C-c C-s
1596 @item C-c C-s
1597 Insert @samp{SCHEDULED} keyword along with a stamp.
1598
1599 @kindex S-@key{left}
1600 @kindex S-@key{right}
1601 @item S-@key{left}
1602 @itemx S-@key{right}
1603 Change date at cursor by one day. These key bindings conflict with
1604 CUA-mode (@pxref{Interaction}).
1605
1606 @kindex S-@key{up}
1607 @kindex S-@key{down}
1608 @item S-@key{up}
1609 @itemx S-@key{down}
1610 Change the item under the cursor in a timestamp. The cursor can be on
1611 a year, month, day, hour or minute. Note that if the cursor is not at
1612 a time stamp, these same keys modify the priority of an item.
1613 (@pxref{Priorities}). The key bindings also conflict with CUA-mode
1614 (@pxref{Interaction}).
1615
1616
1617 @kindex C-c C-y
1618 @cindex evaluate time range
1619 @item C-c C-y
1620 Evaluate a time range by computing the difference between start and
1621 end. With prefix arg, insert result after the time range (in a table:
1622 into the following column).
1623 @end table
1624
1625 @cindex date, reading in minibuffer
1626 @cindex time, reading in minibuffer
1627 @cindex calendar, for selecting date
1628 When Org-mode prompts for a date/time, the function reading your input
1629 will replace anything you choose not to specify with the current date
1630 and time. For details, see the documentation string of
1631 @command{org-read-date}. Also, a calender will pop up to allow
1632 selecting a date. The calendar can be fully controlled from the
1633 minibuffer, and a date can be selected with the following commands:
1634
1635 @table @kbd
1636 @kindex <
1637 @item <
1638 Scroll calendar backwards by one month.
1639 @kindex >
1640 @item >
1641 Scroll calendar forwards by one month.
1642 @kindex mouse-1
1643 @item mouse-1
1644 Select date by clicking on it.
1645 @kindex S-@key{right}
1646 @item S-@key{right}
1647 One day forward.
1648 @kindex S-@key{left}
1649 @item S-@key{left}
1650 One day back.
1651 @kindex S-@key{down}
1652 @item S-@key{down}
1653 One week forward.
1654 @kindex S-@key{up}
1655 @item S-@key{up}
1656 One week back.
1657 @kindex M-S-@key{right}
1658 @item M-S-@key{right}
1659 One month forward.
1660 @kindex M-S-@key{left}
1661 @item M-S-@key{left}
1662 One month back.
1663 @kindex @key{RET}
1664 @item @key{RET}
1665 Choose date in calendar (only if nothing typed into minibuffer).
1666 @end table
1667
1668 @node Timeline and Agenda, Exporting, Timestamps, Top
1669 @chapter Timeline and Agenda
1670 @cindex agenda
1671
1672 We have already described three commands to filter important
1673 information in an org file into a sparse tree (@pxref{Sparse trees}):
1674
1675 @cindex sparse trees
1676 @itemize @bullet
1677 @item
1678 The TODO tree, (@kbd{C-c C-v}), see @ref{TODO items}.
1679 @item
1680 The occur tree @kbd{C-c /}, see @ref{TODO items}.
1681 @item
1682 Checking upcoming deadlines with @kbd{C-c C-w}, see @ref{Creating
1683 timestamps}.
1684 @end itemize
1685 @noindent
1686
1687 Instead of using the sparse trees, Org-mode can also collect and
1688 time-sort the important items into a separate buffer, which we call
1689 the @emph{timeline} of the org file. It can also collect information
1690 from a @emph{list of files} and in this way provide an @emph{agenda}
1691 which covers all of your current projects, action items and
1692 appointments.
1693
1694 @menu
1695 * Timeline:: Time-sorted view for single file
1696 * Agenda:: Your weekly planner
1697 * Agenda commands:: Remote editing of org trees
1698 * Calendar/Diary integration:: Integrating Anniversaries and more
1699 @end menu
1700
1701 @node Timeline, Agenda, Timeline and Agenda, Timeline and Agenda
1702 @section Timeline for a single file
1703 @cindex single file summary
1704 @cindex agenda, for single file
1705 @cindex timeline, single file
1706 @cindex time-sorted view
1707
1708 The timeline shows all time-stamped items in a single Org-mode file,
1709 in @emph{time-sorted view}. The main purpose of this command is to
1710 give an overview over events in a project.
1711
1712 @table @kbd
1713 @kindex C-c C-r
1714 @item C-c C-r
1715 Show a time-sorted view of the org file, with all time-stamped items
1716 of today or later. When called with a @kbd{C-u} prefix, past dates
1717 will be included as well. When called with two @kbd{C-u C-u}
1718 prefixes, all unfinished TODO entries (scheduled or not) are also
1719 listed under the current date.
1720 @end table
1721 @noindent
1722
1723 The timeline is shown in a temporary buffer @file{*Org Agenda*}. The
1724 commands available in the Agenda buffer are listed in @ref{Agenda
1725 commands}.
1726
1727 @node Agenda, Agenda commands, Timeline, Timeline and Agenda
1728 @section Agenda
1729 @cindex agenda
1730
1731 An agenda can be compiled from one or more org files. The main
1732 purpose of this command is to act like a paper agenda, showing you all
1733 the tasks for the current day or week.
1734
1735 The Org-mode files to be processed in order to generate the agenda are
1736 listed in the variable @code{org-agenda-files}. You can customize
1737 this variable, but the easiest way to maintain it is through the
1738 following commands
1739
1740 @cindex files, adding to agenda list
1741 @table @kbd
1742 @kindex C-c [
1743 @item C-c [
1744 Add current file to the list of agenda files
1745 @kindex C-c ]
1746 @item C-c ]
1747 Remove current file from the list of agenda files.
1748 @end table
1749 @noindent
1750 The Org menu contains the list of all files and can be used to quickly
1751 visit any of them.
1752
1753 The global command @command{org-agenda} compiles the agenda from all
1754 listed files.
1755
1756 @table @kbd
1757 @cindex org-agenda, command
1758 @kindex C-c a
1759 @item C-c a
1760 Compile an agenda for the current week from a list of org files. The
1761 agenda shows the entries for each day. With a @kbd{C-u} prefix (or
1762 when the variable @code{org-agenda-include-all-todo} is @code{t}), all
1763 unfinished TODO items (also those without a date) are also listed at
1764 the beginning of the buffer, before the first date.@*
1765 The key binding @kbd{C-c a} is only a suggestion - see
1766 @ref{Installation and Activation}.
1767 @end table
1768
1769 The commands available in the Agenda buffer are listed in
1770 @ref{Agenda commands}.
1771
1772 @subsection Categories
1773
1774 @cindex category
1775 In the agenda buffer, each entry is preceded by a @emph{category},
1776 which is derived from the file name. The category can also be set
1777 with a special line anywhere in the buffer, looking like this:
1778 @example
1779 #+CATEGORY: Thesis
1780 @end example
1781 @noindent
1782 After changing this line, press @kbd{C-c C-c} with the cursor still in
1783 the line, to make the changes known to org-mode. Otherwise, the
1784 change will only be active the next time you visit this file with
1785 Emacs.
1786
1787 The display in the agenda buffer looks best if the category is not
1788 longer than 10 characters.
1789
1790 @subsection Time-of-Day Specifications
1791
1792 Org-mode checks each agenda item for a time-of-day specification. The
1793 time can be part of the time stamp that triggered inclusion into the
1794 agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time
1795 ranges can be specified with two time stamps, like
1796 @c
1797 @w{@samp{<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>}}.
1798
1799 In the headline of the entry itself, a time(range) may also appear as
1800 plain text (like @samp{12:45} or a @samp{8:30-1pm}. If the agenda
1801 integrates the Emacs diary (@pxref{Calendar/Diary integration}), time
1802 specifications in diary entries are recognized as well.
1803
1804 For agenda display, Org-mode extracts the time and displays it in a
1805 standard 24 hour format as part of the prefix. The example times in
1806 the previous paragraphs would end up in the agenda like this:
1807
1808 @example
1809 8:30-13:00 Arthur Dent lies in front of the bulldozer
1810 12:45...... Ford Prefect arrives and takes Arthur to the pub
1811 19:00...... The Vogon reads his poem
1812 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
1813 @end example
1814
1815 If the agenda is in single-day mode, or for the display of today, the
1816 timed entries are embedded in a time grid, like
1817
1818 @example
1819 8:00...... ------------------
1820 8:30-13:00 Arthur Dent lies in front of the bulldozer
1821 10:00...... ------------------
1822 12:00...... ------------------
1823 12:45...... Ford Prefect arrives and takes Arthur to the pub
1824 14:00...... ------------------
1825 16:00...... ------------------
1826 18:00...... ------------------
1827 19:00...... The Vogon reads his poem
1828 20:00...... ------------------
1829 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
1830 @end example
1831
1832 The time grid can be turned on and off with the variable
1833 @code{org-agenda-use-time-grid}, and can be configured with
1834 @code{org-agenda-time-grid}.
1835
1836
1837 @subsection Sorting of agenda items
1838 @cindex sorting, of agenda items
1839 @cindex priorities, of agenda items
1840 The entries for each day are sorted. The default order is to first
1841 collect all items containing an explicit time-of-day specification.
1842 These entries will be shown at the beginning of the list, as a
1843 @emph{schedule} for the day. After that, items remain grouped in
1844 categories, in the sequence given by @code{org-agenda-files}. Within
1845 each category, items are sorted by priority (@pxref{Priorities}).
1846
1847 The priority is a numerical quantity composed of the base priority
1848 (2000 for priority @samp{A}, 1000 for @samp{B}, and 0 for @samp{C}),
1849 plus additional increments for overdue scheduled or deadline items.
1850
1851 Sorting can be customized using the variable
1852 @code{org-agenda-sorting-strategy}.
1853
1854 @node Agenda commands, Calendar/Diary integration, Agenda, Timeline and Agenda
1855 @section Commands in the agenda buffer
1856
1857 Entries in the agenda buffer are linked back to the org file or diary
1858 file where they originate. You are not allowed to edit the agenda
1859 buffer itself, but commands are provided to show and jump to the
1860 original entry location, and to edit the org-files ``remotely'' from
1861 the agenda buffer. In this way, all information is stored only once,
1862 and you don't risk that your agenda and note files diverge.
1863
1864 Some commands can be executed with mouse clicks on agenda lines. For
1865 the other commands, the cursor needs to be in the desired line. Most
1866 commands are available for both timelines and the agenda. The
1867 exceptions are marked.
1868
1869 @table @kbd
1870 @tsubheading{Motion}
1871 @kindex n
1872 @item n
1873 Next line (same as @key{up}).
1874 @kindex p
1875 @item p
1876 Previous line (same as @key{down}).
1877 @tsubheading{View/GoTo org file}
1878 @kindex mouse-3
1879 @kindex @key{SPC}
1880 @item mouse-3
1881 @itemx @key{SPC}
1882 Display the original location of the item in another window.
1883
1884 @kindex l
1885 @item l
1886 Display original location and recenter that window.
1887
1888 @kindex mouse-2
1889 @kindex @key{TAB}
1890 @item mouse-2
1891 @itemx @key{TAB}
1892 Go to the original location of the item in another window.
1893
1894 @kindex @key{RET}
1895 @itemx @key{RET}
1896 Go to the original location of the item and delete other windows.
1897
1898 @kindex f
1899 @item f
1900 Toggle follow mode. In follow mode, as you move the cursor through
1901 the agenda buffer, the other window always shows the corresponding
1902 location in the org file.
1903
1904 @tsubheading{Change display}
1905 @kindex o
1906 @item o
1907 Delete other windows.
1908
1909 @kindex w
1910 @item w
1911 Switch to weekly view (7 days displayed together)
1912
1913 @kindex d
1914 @item d
1915 Switch to daily view (just one day displayed)
1916
1917 @kindex D
1918 @item D
1919 Toggle the inclusion of diary entries. See @ref{Calendar/Diary integration}.
1920
1921 @kindex g
1922 @item g
1923 Toggle the time grid on and off. See also the variables
1924 @code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}.
1925
1926 @kindex r
1927 @item r
1928 Recreate the agenda buffer, for example to reflect the changes
1929 after modification of the time stamps of items with S-@key{left} and
1930 S-@key{right}.
1931
1932 @kindex @key{right}
1933 @item @key{right}
1934 Display the following @code{org-agenda-ndays} days. For example, if
1935 the display covers a week, switch to the following week. With prefix
1936 arg, go forward that many times @code{org-agenda-ndays} days. Not
1937 available in timelines.
1938
1939 @kindex @key{left}
1940 @item @key{left}
1941 Display the previous dates. Not available in timelines.
1942
1943 @kindex .
1944 @item .
1945 Goto today.
1946
1947 @tsubheading{Remote editing}
1948
1949 @item 0-9
1950 Digit argument.
1951
1952 @kindex t
1953 @item t
1954 Change the TODO state of the item, both in the agenda and in the
1955 original org file.
1956
1957 @kindex ,
1958 @item ,
1959 Set the priority for the current item. Org-mode prompts for the
1960 priority character. If you reply with @key{SPC}, the priority cookie
1961 is removed from the entry.
1962
1963 @kindex P
1964 @item p
1965 Display weighted priority of current item.
1966
1967 @kindex +
1968 @kindex S-@key{up}
1969 @item +
1970 @itemx S-@key{up}
1971 Increase the priority of the current item. The priority is changed in
1972 the original buffer, but the agenda is not resorted. Use the @kbd{r}
1973 key for this.
1974
1975 @kindex -
1976 @kindex S-@key{down}
1977 @item -
1978 @itemx S-@key{down}
1979 Decrease the priority of the current item.
1980
1981 @kindex S-@key{right}
1982 @item S-@key{right}
1983 Change the time stamp associated with the current line by one day into
1984 the future. With prefix argument, change it by that many days. For
1985 example, @kbd{3 6 5 S-@key{right}} will change it by a year. The
1986 stamp is changed in the original org file, but the change is not
1987 directly reflected in the agenda buffer. Use the
1988 @kbd{r} key to update the buffer.
1989
1990 @kindex S-@key{left}
1991 @item S-@key{left}
1992 Change the time stamp associated with the current line by one day
1993 into the past.
1994
1995 @kindex >
1996 @item >
1997 Change the time stamp associated with the current line to today.
1998 The key @kbd{>} has been chosen, because it is the same as @kbd{S-.}
1999 on my keyboard.
2000
2001 @cindex diary entries, creating from agenda
2002 @kindex i
2003 @item i
2004 Insert a new entry into the diary. Prompts for the type of entry
2005 (day, weekly, monthly, yearly, anniversary, cyclic) and creates a new
2006 entry in the diary, just like @kbd{i d} etc. would do in the calendar.
2007 The date is taken from the cursor position.
2008
2009 @tsubheading{Calendar commands}
2010 @kindex c
2011 @item c
2012 Open the Emacs calendar and move to the date at the agenda cursor.
2013
2014 @item c
2015 When in the calendar, compute and show the Org-mode agenda for the
2016 date at the cursor.
2017
2018 @kindex M
2019 @item M
2020 Show the phases of the moon for three month around current date.
2021
2022 @kindex S
2023 @item S
2024 Show sunrise and sunset times. The geographical location must be set
2025 with calendar variables, see documentation of the Emacs calendar.
2026
2027 @kindex C
2028 @item C
2029 Convert the date at cursor into many other cultural and historic
2030 calendars.
2031
2032 @kindex H
2033 @item H
2034 Show holidays for three month around the cursor date.
2035
2036 @tsubheading{Quit and Exit}
2037 @kindex q
2038 @item q
2039 Quit Agenda, remove the agenda buffer.
2040
2041 @kindex x
2042 @cindex agenda files, removing buffers
2043 @item x
2044 Exit agenda, remove the agenda buffer and all buffers loaded by Emacs
2045 for the compilation of the agenda. Buffers created by the user to
2046 visit org files will not be removed.
2047
2048 @end table
2049
2050 @node Calendar/Diary integration, , Agenda commands, Timeline and Agenda
2051 @section Calendar/Diary integration
2052 @cindex calendar integration
2053 @cindex diary integration
2054
2055 Emacs contains the calendar and diary by Edward M. Reingold. The
2056 calendar displays a three-month calendar with holidays from different
2057 countries and cultures. The diary allows to keep track of
2058 anniversaries, lunar phases, sunrise/set, recurrent appointments
2059 (weekly, monthly) and more. In this way, it is quite complementary to
2060 Org-mode. It can be very useful to combine output from Org-mode with
2061 the diary.
2062
2063 The interaction between Org-mode and diary works both ways: You can
2064 list entries from the diary in the Org-mode agenda, from which many
2065 calendar and diary commands are directly accessible. Or you can
2066 display entries from the org agenda in the Emacs diary.
2067
2068 @menu
2069 * Diary to agenda:: Agenda incorporates the diary
2070 * Agenda to diary:: Diary incorporates the agenda
2071 @end menu
2072
2073 @node Diary to agenda, Agenda to diary, Calendar/Diary integration, Calendar/Diary integration
2074 @subsection Including the diary into the agenda
2075 @cindex diary to agenda
2076
2077 In order to include entries from the Emacs diary into Org-mode's
2078 agenda, you only need to customize the variable
2079
2080 @lisp
2081 (setq org-agenda-include-diary t)
2082 @end lisp
2083 @noindent
2084
2085 @noindent After that, everything will happen automatically. All diary
2086 entries including holidays, anniversaries etc will be included in the
2087 agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and
2088 @key{RET} can be used from the agenda buffer to jump to the diary
2089 file, in order to edit existing diary entries. The @kbd{i} command to
2090 insert new entries for the current date works in the agenda buffer, as
2091 well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to display
2092 Sunrise/Sunset times, show lunar phases and to convert to other
2093 calendars, respectively. @kbd{c} can be used to switch back and forth
2094 between calendar and agenda.
2095
2096 @node Agenda to diary, , Diary to agenda, Calendar/Diary integration
2097 @subsection Including the agenda into the diary
2098
2099 If you prefer to use the Emacs diary as your main instrument and if
2100 you wish to include the Org-mode agenda into it, the following steps
2101 are necessary: Autoload the function @command{org-diary} as shown
2102 above under @ref{Installation and Activation}. You also need to use
2103 @emph{fancy diary display} by setting in @file{.emacs}:
2104
2105 @lisp
2106 (add-hook 'diary-display-hook 'fancy-diary-display)
2107 @end lisp
2108
2109 Then include the following line into your @file{~/diary} file, in
2110 order to get the entries from all files listed in the variable
2111 @code{org-agenda-files}:
2112
2113 @example
2114 &%%(org-diary)
2115 @end example
2116 @noindent
2117 You may also select specific files with
2118
2119 @example
2120 &%%(org-diary) ~/path/to/some/org-file.org
2121 &%%(org-diary) ~/path/to/another/org-file.org
2122 @end example
2123
2124 If you now launch the calendar and press @kbd{d} to display a diary,
2125 the headlines of entries containing a timestamp, date range, schedule,
2126 or deadline referring to the selected date will be listed. Just like
2127 in Org-mode's agenda view, the diary for @emph{today} contains
2128 additional entries for overdue deadlines and scheduled items. See
2129 also the documentation of the @command{org-diary} function.
2130
2131 @node Exporting, Miscellaneous, Timeline and Agenda, Top
2132 @chapter Exporting
2133 @cindex exporting
2134 @cindex ASCII export
2135 @cindex HTML export
2136
2137 @cindex headline levels, for exporting
2138 For printing and sharing of notes, an Org-mode document can be
2139 exported as an ASCII file, or as HTML. In the exported version, the
2140 first 3 outline levels will become headlines, defining a general
2141 document structure. Additional levels will be exported as itemize
2142 lists. If you want that transition to occur at a different level,
2143 specify it with a prefix argument. For example,
2144
2145 @example
2146 @kbd{M-1 M-x org-export-as-html}
2147 @end example
2148 @noindent
2149 creates only top level headlines and does the rest as items.
2150
2151 @menu
2152 * Export commands:: Commands which export and display
2153 * HTML formatting:: Interpretation of the buffer content
2154 * Export options:: How to influence exports
2155 * Comment lines:: Lines which will not be exported
2156 @end menu
2157
2158 @node Export commands, HTML formatting, Exporting, Exporting
2159 @section Export commands
2160
2161 @cindex region, active
2162 @cindex active region
2163 @cindex transient-mark-mode
2164 @table @kbd
2165 @kindex C-c C-x a
2166 @item C-c C-x a
2167 Export as ASCII file. If there is an active region, only the region
2168 will be exported. For an org file @file{myfile.org}, the ASCII file
2169 will be @file{myfile.txt}. The file will be overwritten without
2170 warning.
2171 @kindex C-c C-x h
2172 @item C-c C-x h
2173 Export as HTML file @file{myfile.html}.
2174 @kindex C-c C-x C-h
2175 @item C-c C-x C-h
2176 Export as HTML file and open it with a browser.
2177 @kindex C-c C-x t
2178 @item C-c C-x t
2179 Insert template with export options, see below.
2180 @kindex C-c :
2181 @item C-c :
2182 Toggle fixed-width for line or region, see below.
2183 @end table
2184
2185 @node HTML formatting, Export options, Export commands, Exporting
2186 @section HTML formatting
2187
2188 Not all text is transferred literally to the exported HTML file. The
2189 exporter implements the following interpretation:
2190
2191 @itemize @bullet
2192 @cindex underlined text
2193 @cindex bold text
2194 @cindex italic text
2195 @item
2196 You can make words @b{*bold*}, @i{/italic/}, and _underlined_
2197
2198 @cindex @TeX{} interpretation
2199 @item
2200 Simple @TeX{}-like math constructs are interpreted:
2201
2202 @cindex completion, of @TeX{} symbols
2203 @itemize @minus
2204 @item
2205 @samp{10^22} and @samp{J_n} are super- and subscripts. You can quote
2206 @samp{^} and @samp{_} with a backslash: @samp{\_} and @samp{\^}
2207 @item
2208 @samp{\alpha} indicates a Greek letter, @samp{\to} an arrow. You can
2209 use completion for these macros, just type @samp{\} and maybe a few
2210 letters, and press @kbd{M-@key{TAB}} to see possible completions.
2211 @end itemize
2212
2213 @cindex tables, export to HTML
2214 @item
2215 Tables are transformed into HTML tables. Data fields before the first
2216 horizontal separator line will be formatted as table header fields.
2217
2218 @cindex fixed width
2219 @item
2220 Lines starting with @samp{:} are typeset in a fixed-width font, to
2221 allow quoting of computer code etc.
2222
2223 @cindex HTML tags
2224 @item
2225 If you want to include HTML tags which should be interpreted as such,
2226 mark them with a @samp{@@} like in @samp{@@<b>bold text@@</b>}.
2227 Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and
2228 @samp{&gt;} in HTML export.
2229 @end itemize
2230
2231 If these conversions conflict with your habits of typing ASCII text,
2232 they can all be turned off with corresponding variables.
2233
2234 @node Export options, Comment lines, HTML formatting, Exporting
2235 @section Export options
2236 @cindex options, for export
2237
2238 @cindex completion, of option keywords
2239 The exporter recognizes special lines in the buffer which provide
2240 additional information. These lines may be put anywhere in the file.
2241 The whole set of lines can be inserted into the buffer with @kbd{C-c
2242 C-x t}. For individual lines, a good way to make sure the keyword is
2243 correct it to type @samp{#+} and then use @kbd{M-@key{TAB}} completion
2244 (@pxref{Completion}).
2245
2246 @example
2247 #+TITLE: the title to be shown (default is the buffer name)
2248 #+AUTHOR: the author (default taken from @code{user-full-name})
2249 #+EMAIL: his/her email address (default from @code{user-mail-address})
2250 #+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language})
2251 #+TEXT: Some descriptive text to be inserted at the beginning.
2252 #+TEXT: Several lines may be given.
2253 #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t *:nil TeX:t
2254 @end example
2255 @noindent
2256 The OPTIONS line is a compact form to specify export settings. Here
2257 you can
2258 @cindex headline levels
2259 @cindex section-numbers
2260 @cindex table of contents
2261 @cindex linebreak preservation
2262 @cindex quoted html tags
2263 @cindex fixed-width sections
2264 @cindex tables
2265 @cindex @TeX{}-like syntax for sub- and superscripts
2266 @cindex emphasized text
2267 @cindex @TeX{} macros
2268 @example
2269 H: @r{set the number of headline levels for export}
2270 num: @r{turn on/off section-numbers}
2271 toc: @r{turn on/off table of contents}
2272 \n: @r{turn on/off linebreak-preservation}
2273 @@: @r{turn on/off quoted html tags}
2274 :: @r{turn on/off fixed-width sections}
2275 |: @r{turn on/off tables}
2276 ^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.}
2277 *: @r{turn on/off emphasized text (bold, italic, underlined)}
2278 TeX: @r{turn on/off @TeX{} macros}
2279 @end example
2280
2281 @node Comment lines, , Export options, Exporting
2282 @section Comment lines
2283 @cindex comment lines
2284 @cindex exporting, not
2285
2286 Lines starting with @samp{#} in column zero are treated as comments
2287 and will never be exported. Also entire subtrees starting with the
2288 word @samp{COMMENT} will never be exported. Finally, any text before
2289 the first headline will not be exported either.
2290
2291 @table @kbd
2292 @kindex C-c ;
2293 @item C-c ;
2294 Toggle the COMMENT keyword at the beginning of an entry.
2295 @end table
2296
2297 @node Miscellaneous, Index, Exporting, Top
2298 @chapter Miscellaneous
2299
2300 @menu
2301 * Completion:: M-TAB knows what you need
2302 * Customization:: Adapting Org-mode to your taste
2303 * FAQ:: Frequently asked questions
2304 * Interaction:: Other Emacs packages
2305 * Bugs:: Things which do not work perfectly
2306 * Acknowledgments:: These people provided feedback and more
2307 @end menu
2308
2309 @node Completion, Customization, Miscellaneous, Miscellaneous
2310 @section Completion
2311 @cindex completion, of @TeX{} symbols
2312 @cindex completion, of TODO keywords
2313 @cindex completion, of dictionary words
2314 @cindex completion, of option keywords
2315
2316 Org-mode supports in-buffer completion. This type of completion does
2317 not make use of the minibuffer. You simply type a few letters into
2318 the buffer and use the key to complete text right there.
2319
2320 @table @kbd
2321 @kindex M-@key{TAB}
2322 @item M-@key{TAB}
2323 Complete word at point
2324 @itemize @bullet
2325 @item
2326 At the beginning of a headline, complete TODO keywords.
2327 @item
2328 After @samp{\}, complete @TeX{} symbols supported by the exporter.
2329 @item
2330 After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
2331 @samp{OPTIONS} which set file-specific options for Org-mode. When the
2332 option keyword is already complete, pressing @kbd{M-@key{TAB}} again
2333 will insert example settings for this keyword.
2334 @item
2335 Elsewhere, complete dictionary words using ispell.
2336 @end itemize
2337 @end table
2338
2339 @node Customization, FAQ, Completion, Miscellaneous
2340 @section Customization
2341 @cindex customization
2342 @cindex options, for customization
2343 @cindex variables, for customization
2344
2345 There is a large number of variables which can be used to customize
2346 Org-mode. For the sake of compactness of the manual, we are not
2347 describing the variables here. For an overview of customization
2348 variables, use @kbd{M-x org-customize}. Or select @code{Browse Org
2349 Group} from the @code{Org->Customization} menu.
2350
2351 @node FAQ, Interaction, Customization, Miscellaneous
2352 @section Frequently asked questions
2353
2354 @enumerate
2355 @item @b{Org-mode seems to be a useful default mode for the various
2356 @file{README} files I have scattered through my directories. How do I
2357 turn it on for all @file{README} files?}
2358 @example
2359 (add-to-list 'auto-mode-alist '("README$" . org-mode))
2360 @end example
2361
2362 @item @b{I would like to have two windows on the same Org-mode
2363 file, but with different outline visibility. Is that possible?}@*
2364 @cindex @code{make-indirect-buffer}
2365 @cindex indirect buffers
2366 In GNU Emacs, you may use @emph{indirect buffers} which do exactly
2367 this. See the documentation on the command
2368 @code{make-indirect-buffer}. In XEmacs, this is currently not
2369 possible because of the different outline implementation.
2370
2371 @item @b{Is there an easy way to insert links to web locations?}@*
2372 @cindex URL, paste into buffer
2373 Sure, just type or paste them into the buffer. A plain-text URL-like
2374 string is directly interpreted as a link.
2375
2376 @item @b{When I export my TODO list, every TODO item becomes a
2377 separate section. How do I enforce these items to be exported as an
2378 itemized list?}@*
2379 If you plan to use ASCII or HTML export, make sure things you want to
2380 be exported as item lists are level 4 at least, even if that does mean
2381 there is a level jump. For example
2382
2383 @example
2384 * Todays top priorities
2385 **** TODO write a letter to xyz
2386 **** TODO Finish the paper
2387 **** Pick up kids at the school
2388 @end example
2389
2390 Alternatively, if you need a specific value for the heading/item
2391 transition in a particular file, use the @samp{+OPTIONS} line to
2392 configure the @samp{H} switch.
2393
2394 @example
2395 +OPTIONS: H:2; ...
2396 @end example
2397
2398 @item @b{I would like to export only a subtree of my file to HTML. How?}@*
2399 @cindex exporting a subtree
2400 If you want to export a subtree, mark the subtree as region and then
2401 export. Marking can be done with @kbd{C-c @@ C-x C-x}, for example.
2402
2403 @item @b{Org-mode takes over the S-cursor keys. I also want to use
2404 CUA-mode, is there a way to fix this conflict?}@*
2405 Yes, see @ref{Interaction}
2406
2407 @item @b{Is there an easy way to insert an empty table template with a
2408 default number of rows and columns?}@*
2409 @cindex table, empty template
2410 To insert an empty table template, just type @samp{|-} and use
2411 @key{TAB}. The default size can be changed with the variable
2412 @code{org-table-default-size}. However, just starting to type the
2413 first line is usually much easier.
2414
2415 @item @b{One of my table columns has started to fill up with
2416 @samp{#ERROR}. What is going on?}@*
2417 Org-mode tried to compute the column from other fields using a
2418 formula stored in the @samp{#+TBLFMT:} line just below the table, and
2419 the evaluation of the formula fails. Fix the fields used in the
2420 formula, or fix the formula, or remove it!
2421
2422 @item @b{When I am in the last column of a table and just above a
2423 horizontal line in the table, pressing TAB creates a new table line
2424 @i{before} the horizontal line. How can I quickly move to the line
2425 @i{below} the horizontal line instead?}@*
2426 Press @key{down} (to get on the separator line) and then @key{TAB}.
2427
2428 @item @b{How can I change the indentation of an entire table without
2429 fixing every line by hand?}@*
2430 @cindex indentation, of tables
2431 The indentation of a table is set by the first line. So just fix the
2432 indentation of the first line and realign with @key{TAB}.
2433
2434 @end enumerate
2435
2436
2437 @node Interaction, Bugs, FAQ, Miscellaneous
2438 @section Interaction with other packages
2439 @cindex packages, interaction with other
2440 Org-mode can cooperate with the following packages:
2441
2442 @table @asis
2443 @cindex @file{table.el}
2444 @item @file{table.el} by Takaaki Ota
2445 Org mode cooperates with table.el, see @ref{table.el}.
2446 @cindex @file{calc.el}
2447 @item @file{calc.el} by Dave Gillespie
2448 Org-mode uses the calc package for implementing spreadsheet
2449 functionality in its tables (@pxref{Table calculations}). Org-modes
2450 checks for the availability of calc by looking for the function
2451 @code{calc-eval} which should be autoloaded in your setup if calc has
2452 been installed properly. As of Emacs 22, calc is part of the Emacs
2453 distribution. Another possibility for interaction between the two
2454 packages is using calc for embedded calculations. @xref{Embedded Mode,
2455 , Embedded Mode, calc, GNU Emacs Calc Manual}.
2456 @cindex @file{constants.el}
2457 @item @file{constants.el} by Carsten Dominik
2458 In a table formula (@pxref{Table calculations}), it is possible to use
2459 names for natural constants or units. Instead of defining you own
2460 constants in the variable @code{org-table-formula-constants}, install
2461 the @file{constants} package which defines a large number of constants
2462 and units, and lets you use unit prefixes like @samp{M} for
2463 @samp{Mega} etc. You will need version 2.0 of this package, available
2464 at @url{http://www.astro.uva.nl/~dominik/Tools}. Org-mode checks for
2465 the function @code{constants-get}, which has to be autoloaded in your
2466 setup. See the installation instructions in the file
2467 @file{constants.el}.
2468 @cindex @file{remember.el}
2469 @cindex @file{CUA.el}
2470 @item @file{CUA.el} by Kim. F. Storm
2471 Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys
2472 used by CUA-mode (as well as pc-select-mode and s-region-mode) to
2473 select and extend the region. If you want to use one of these
2474 packages along with Org-mode, configure the variable
2475 @code{org-CUA-compatible}. When set, Org-mode will move the following
2476 keybindings in org-mode files, and in the agenda buffer (but not
2477 during date selection).
2478 @example
2479 S-UP -> M-p S-DOWN -> M-n
2480 S-LEFT -> M-- S-RIGHT -> M-+
2481 S-RET -> C-S-RET
2482 @end example
2483 Yes, these are unfortunately more difficult to remember. If you want
2484 to have other replacement keys, look at the variable
2485 @code{org-disputed-keys}.
2486 @item @file{remember.el} by John Wiegley
2487 Org mode cooperates with remember, see @ref{Remember}.
2488 @cindex @file{planner.el}
2489 @item @file{planner.el} by John Wiegley
2490 Planner is another tool to plan work and keep track of tasks. Planner
2491 uses a multi-file approach with project pages and day pages. Is based
2492 on Emacs-Wiki. If Planner is your primary tool, it can be useful to
2493 display the agenda entries resulting from org files in day-pages of
2494 the planner. This can be done through the diary of the calendar:
2495 Integrate org files into the diary as described above, and then turn
2496 on the diary support of planner.
2497 @end table
2498
2499 @node Bugs, Acknowledgments, Interaction, Miscellaneous
2500 @section Bugs
2501 @cindex bugs
2502
2503 Here is a list of things which should work differently, but which I
2504 have found too hard to fix.
2505
2506 @itemize @bullet
2507 @item
2508 If you call @code{fill-paragraph} (bound to @kbd{M-q}) in a table, the
2509 filling is correctly disabled. However, if some text directly
2510 (without an empty line in between) precedes or follows a table, calling
2511 @code{fill-paragraph} in that text will also fill the table like
2512 normal text. Also, @code{fill-region} does bypass the
2513 @code{fill-paragraph} code and will fill tables like normal text.
2514 @item
2515 When the application called by @kbd{C-c C-o} to open a file link fails
2516 (for example because the application does not exits or refuses to open
2517 the file), it does so silently. No error message is displayed.
2518 @item
2519 Recalculating a table line applies the formulas from left to right.
2520 If a formula calculated fields further down the row, multiple
2521 recalculation may be needed to get all fields consistent.
2522 @item
2523 Under XEmacs, if Org-mode entries are included into the diary, it is
2524 not possible to jump back from the diary to the org file. Apparently,
2525 the text properties are lost when the fancy-diary-display is used.
2526 However, from Org-mode's timeline and agenda buffers (created with
2527 @kbd{C-c C-r} and @kbd{C-c a}), things do work correctly.
2528 @item
2529 Linux should also have a default viewer application, using mailcap.
2530 Maybe we can use GNUS or VM mime code? Or dired's guessing commands?
2531 Any hints (or even patches) are appreciated.
2532 @item
2533 When you write @samp{x = a /b/ c}, b will be exported in italics.
2534 @item
2535 The exporters work well, but could be made more efficient.
2536 @end itemize
2537
2538 @page
2539
2540 @node Acknowledgments, , Bugs, Miscellaneous
2541 @section Acknowledgments
2542 @cindex acknowledgments
2543
2544 Org-mode was written by Carsten Dominik, who still maintains it at the
2545 Org-mode homepage @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
2546 The following people have helped the development along with ideas,
2547 suggestions and patches.
2548
2549 @itemize @bullet
2550 @item
2551 Matthias Rempe (Oelde) provided ideas, a patch introducing Windows
2552 NT/2000 support, and quality control.
2553 @item
2554 Kevin Rogers contributed code to access VM files on remote hosts.
2555 @item
2556 Juergen Vollmer contributed code generating the table of contents
2557 in HTML output, and other export improvements.
2558 @item
2559 Christian Egli converted the documentation into TeXInfo format. He
2560 also showed me his plans for a multifile summary for Org-mode. Some of
2561 his ideas have found their way into the agenda.
2562 @item
2563 Philip Rooke created the Org-mode reference card. He also helped with
2564 beta testing and contributed a number of very useful ideas.
2565 @item
2566 Christian Schlauer proposed angular brackets around links, among other
2567 things.
2568 @item
2569 David Wainberg suggested to implement an archiving mechanism and helped
2570 testing.
2571 @item
2572 Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
2573 @file{organizer-mode.el}.
2574 @item
2575 Scheduling TODO items was inspired by John Wiegley's @file{planner.el}.
2576 @item
2577 Sacha Chua, the current maintainer of Planner, offered linking code
2578 from Planner. I made use of the offer for links to RMAIL and Wanderlust.
2579 @item
2580 Oliver Oppitz sent several useful suggestions.
2581 @item
2582 Carsten Wimmer suggested some changes and helped fix a bug in linking
2583 to GNUS.
2584 @item
2585 Pavel Chalmoviansky reported bugs and suggested improvements related
2586 to the agenda treatment of items with specified time.
2587 @item
2588 Stefan Monnier provided a patch with lots of little fixes to keep the
2589 Emacs-Lisp compiler happy.
2590 @item
2591 Kai Grossjohann pointed out that a number of key bindings in Org-mode
2592 conflict with other packages.
2593 @end itemize
2594
2595 @node Index, Key Index, Miscellaneous, Top
2596 @chapter Index
2597
2598 @printindex cp
2599
2600 @node Key Index, , Index, Top
2601 @chapter Key Index
2602
2603 @printindex ky
2604
2605 @bye
2606
2607 @ignore
2608 arch-tag: 7893d1fe-cc57-4d13-b5e5-f494a1bcc7ac
2609 @end ignore