(enriched-mode): Specify :group.
[emacs.git] / man / org.texi
blobd1a388f958a041dbedbaae16cbd2953bda7dc281
1 \input texinfo
2 @c %**start of header
3 @setfilename ../info/org
4 @settitle Org Mode Manual
6 @set VERSION 3.05
7 @set DATE April 2005
9 @dircategory Emacs
10 @direntry
11 * Org Mode: (org).      Outline-based notes management and organizer 
12 @end direntry
14 @c Version and Contact Info
15 @set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage}
16 @set MAINTAINER Carsten Dominik
17 @set MAINTAINEREMAIL @email{dominik@@science.uva.nl}
18 @set MAINTAINERCONTACT @uref{mailto:dominik@@science.uva.nl,contact the maintainer}
19 @c %**end of header
20 @finalout
22 @c Macro definitions
24 @c Subheadings inside a table.  Need a difference between info and the rest.
25 @macro tsubheading{text}
26 @ifinfo
27 @subsubheading \text\
28 @end ifinfo
29 @ifnotinfo
30 @item @b{\text\}
31 @end ifnotinfo
32 @end macro
34 @copying
35 This manual is for Org-mode (version @value{VERSION}).
37 Copyright @copyright{} 2004, 2005 Free Software Foundation
39 @quotation
40 Permission is granted to copy, distribute and/or modify this document
41 under the terms of the GNU Free Documentation License, Version 1.1 or
42 any later version published by the Free Software Foundation; with no
43 Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
44 and with the Back-Cover Texts as in (a) below.  A copy of the
45 license is included in the section entitled ``GNU Free Documentation
46 License.''
48 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
49 this GNU Manual, like GNU software.  Copies published by the Free
50 Software Foundation raise funds for GNU development.''
51 @end quotation
52 @end copying
54 @titlepage
55 @title Org Mode Manual
57 @subtitle Release @value{VERSION}
58 @author by Carsten Dominik
60 @c The following two commands start the copyright page.
61 @page
62 @vskip 0pt plus 1filll
63 @insertcopying
64 @end titlepage
66 @c Output the table of contents at the beginning.
67 @contents
69 @ifnottex
70 @node Top, Introduction, (dir), (dir)
71 @top Org Mode Manual
73 @insertcopying
74 @end ifnottex
76 @menu
77 * Introduction::                Getting started
78 * Document Structure::          A tree works like your brain
79 * TODO items::                  Every tree branch can be a TODO item
80 * Tables::                      Pure magic for quick formatting
81 * Hyperlinks::                  Notes in context
82 * Timestamps::                  Assign date and time to items
83 * Timeline and Agenda::         Use time-stamped items to produce an agenda
84 * Exporting::                   Sharing and publishing of notes
85 * Miscellaneous::               All the rest which did not fit elsewhere
86 * Index::                       The fast road to specific information
87 * Key Index::                   Key bindings and where they are described
89 @detailmenu
90  --- The Detailed Node Listing ---
92 Introduction
94 * Summary::                     Brief summary of what Org-mode does
95 * Installation::                How to install Org-mode
97 Document Structure
99 * Outlines::                    Org-mode is based on outline-mode
100 * Headlines::                   How to typeset org-tree headlines
101 * Visibility cycling::          Show ad hide, much simplified
102 * Motion::                      Jumping to other headlines
103 * Structure editing::           Changing sequence and level of headlines
104 * Sparse trees::                Matches embedded in context
106 TODO items
108 * TODO basics::                 Marking and displaying TODO entries
109 * Priorities::                  Some things are more important than others
110 * TODO extensions::             Workflow and assignments
112 Extended use of TODO keywords
114 * Workflow states::             From TODO to DONE in steps
115 * TODO types::                  I do this, Fred the rest
116 * Per file keywords::           Different files, different requirements
118 Tables
120 * Built-in table editor::       Simple tables
121 * table.el::                    Complex tables
122 * orgtbl-mode::                 The table editor as minor mode
124 Hyperlinks
126 * Links::                       URL-like links to the world
127 * Remember::                    Org-trees store quick notes
129 Timestamps
131 * Time stamps::                 Assigning a time to a tree entry
132 * Creating timestamps::         Commands which insert timestamps
134 Timeline and Agenda
136 * Timeline (single file)::      Time-sorted view for single file
137 * Agenda (multiple files)::     Your weekly planner
138 * Agenda commands::             Remote editing of org trees
139 * Calendar/Diary integration::  Integrating Anniversaries and more
141 Calendar/Diary integration
143 * Diary to agenda::             Agenda incorporates the diary
144 * Agenda to diary::             Diary incorporates the agenda
146 Exporting
148 * Export commands::             Commands which export and display
149 * HTML formatting::             Interpretation of the buffer content
150 * Export options::              How to influence exports
151 * Comment lines::               Lines which will not be exported
153 Miscellaneous
155 * Completion::                  M-TAB knows what you need
156 * Customization::               Adapting Org-mode to your taste
157 * Tips and Tricks::             An author-imposed FAQ, sort of
158 * Interaction::                 Other Emacs packages
159 * Acknowledgments::             These people provided feedback and more
160 * Bugs::                        Things which do not work perfectly
162 @end detailmenu
163 @end menu
165 @node Introduction, Document Structure, Top, Top
166 @chapter Introduction
167 @cindex introduction
169 @menu
170 * Summary::                     Brief summary of what Org-mode does
171 * Installation::                How to install Org-mode
172 @end menu
174 @node Summary, Installation, Introduction, Introduction
175 @section Summary
176 @cindex summary
178 Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing
179 project planning with a fast and effective plain-text system.
181 Org-mode develops organizational tasks around NOTES files that contain
182 information about projects as plain text.  Org-mode is implemented on
183 top of outline-mode, which makes it possible to keep the content of
184 large files well structured.  Visibility cycling and structure editing
185 help to work with the tree.  Tables are easily created with a built-in
186 table editor.  Org-mode supports ToDo items, deadlines, time stamps,
187 and scheduling.  It dynamically compiles entries into an agenda that
188 utilizes and smoothly integrates much of the Emacs calendar and diary.
189 Plain text URL-like links connect to websites, emails, usenet
190 messages, BBDB entries, and any files related to the projects.  For
191 printing and sharing of notes, an Org-mode file can be exported as a
192 structured ASCII file, or as HTML.
194 Org-mode keeps simple things simple.  Not every outline branch needs
195 to be an action item, not every action item needs to have priority or
196 scheduling information associated with it.  Org-mode can be used on
197 different levels and in different ways, for example
199 @example
200 @r{@bullet{} as an outline extension with visibility cycling and structure editing}
201 @r{@bullet{} as an ASCII system and table editor to take structured notes}
202 @r{@bullet{} as a simple hypertext system, with HTML export}
203 @r{@bullet{} as a TODO list editor}
204 @r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
205 @end example
207 The Org-mode table editor can be integrated into any major mode by
208 activating the minor Orgtbl-mode.
210 There is a website for Org-mode which provides links to the newest
211 version of Org-mode, as well as additional information, screen shots
212 and example files.  This page is located at
213 @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
215 @page
217 @node Installation,  , Summary, Introduction
218 @section Installation
219 @cindex installation
220 @cindex autoload
221 @cindex global keybindings
222 @cindex keybindings, global
224 The instructions below assume that you have downloaded Org-mode from
225 the web.  If Org-mode is part of the Emacs distribution or an XEmacs
226 package, you only need to add to @file{.emacs} the last three Lisp
227 lines below - all the rest will be taken care of automatically.
229 Byte-compile @file{org.el} and put it on your load path.  If you'd
230 like to use the Info documentation, copy the file @file{org} into the
231 directory containing info files and run the command @code{install-info
232 org}.
234 Then copy the following lines into @file{.emacs}.  The last two lines
235 define @emph{global} keys for the commands @command{org-store-link}
236 and @command{org-agenda} - please choose suitable keys yourself.
238 @lisp
239 (autoload 'org-mode "org" "Org mode" t)
240 (autoload 'org-diary "org" "Diary entries from Org mode")
241 (autoload 'org-agenda "org" "Multi-file agenda from Org mode" t)
242 (autoload 'org-store-link "org" "Store a link to the current location" t)
243 (autoload 'orgtbl-mode "org" "Org tables as a minor mode" t)
244 (autoload 'turn-on-orgtbl "org" "Org tables as a minor mode")
245 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
246 (define-key global-map "\C-cl" 'org-store-link)
247 (define-key global-map "\C-ca" 'org-agenda)
248 @end lisp
250 @cindex org-mode, turning on
251 @noindent
252 This will put all files with extension @samp{.org} into Org-mode.  As
253 an alternative, make the first line of a file look like this:
255 @example
256 MY PROJECTS    -*- mode: org; -*-
257 @end example
259 @noindent which will select Org-mode for this buffer no matter what
260 the file's name is.
262 @node Document Structure, TODO items, Introduction, Top
263 @chapter Document Structure
264 @cindex document structure
265 @cindex structure of document
267 Org-mode is based on outline mode and provides flexible commands to
268 edit the structure of the document.
270 @menu
271 * Outlines::                    Org-mode is based on outline-mode
272 * Headlines::                   How to typeset org-tree headlines
273 * Visibility cycling::          Show ad hide, much simplified
274 * Motion::                      Jumping to other headlines
275 * Structure editing::           Changing sequence and level of headlines
276 * Sparse trees::                Matches embedded in context
277 @end menu
279 @node Outlines, Headlines, Document Structure, Document Structure
280 @section Outlines
281 @cindex outlines
282 @cindex outline-mode
284 Org-mode is implemented on top of outline-mode.  Outlines allow to
285 organize a document in a hierarchical structure, which (at least for
286 me) is the best representation of notes and thoughts.  Overview over
287 this structure is achieved by folding (hiding) large parts of the
288 document to show only the general document structure and the parts
289 currently being worked on.  Org-mode greatly simplifies the use of
290 outlines by compressing the entire show/hide functionality into a
291 single command @command{org-cycle}, which is bound to the @key{TAB}
292 key.
294 @node Headlines, Visibility cycling, Outlines, Document Structure
295 @section Headlines
296 @cindex headlines
297 @cindex outline tree
299 Headlines define the structure of an outline tree.  The Headlines in
300 Org-mode start with one or more stars, for example
302 @example
303 * Top level headline
304 ** Second level
305 *** 3rd level
306     some text
307 *** 3rd level
308     more text
309 * Another top level headline
310 @end example
312 @node Visibility cycling, Motion, Headlines, Document Structure
313 @section Visibility cycling
314 @cindex visibility cycling
315 @cindex trees, visibility
317 Outlines make it possible to hide parts of the text in the buffer.
318 Org-mode uses a single command bound to the @key{TAB} key to change
319 the visibility in the buffer.
321 @cindex subtree visibility states
322 @cindex folded, subtree visibility state
323 @cindex children, subtree visibility state
324 @cindex subtree, subtree visibility state
325 @table @kbd
326 @kindex @key{TAB}
327 @item @key{TAB}
328 Rotate current subtree between the states
329 @example
330 ,-> FOLDED -> CHILDREN -> SUBTREE --.
331 '-----------------------------------'
332 @end example
333 At the beginning of the buffer (or when called with @kbd{C-u}), this does
334 the same as the command @kbd{S-@key{TAB}} below.
336 @cindex global visibility states
337 @cindex overview, global visibility state
338 @cindex contents, global visibility state
339 @cindex show all, global visibility state
340 @kindex S-@key{TAB}
341 @item S-@key{TAB}
342 Rotate the entire buffer between the states
343 @example
344 ,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
345 '--------------------------------------'
346 @end example
347 Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field.
349 @cindex show all, command
350 @kindex C-c C-a
351 @item C-c C-a
352 Show all.
353 @end table
355 When Emacs firsts visits a Org-mode file, the global state is set to
356 OVERVIEW, i.e. only the top level headlines are visible.  This can be
357 configured through the variable @code{org-startup-folded}, or on a
358 per-file basis by adding one of the following lines anywhere in the
359 buffer:
361 @example
362 #+STARTUP: fold
363 #+STARTUP: nofold
364 @end example
367 @node Motion, Structure editing, Visibility cycling, Document Structure
368 @section Motion
369 @cindex motion, between headlines
370 @cindex jumping, to headlines
371 The following commands jump to other headlines in the buffer.
373 @table @kbd
374 @kindex C-c C-n
375 @item C-c C-n
376 Next heading.
377 @kindex C-c C-p
378 @item C-c C-p
379 Previous heading.
380 @kindex C-c C-f
381 @item C-c C-f
382 Next heading same level.
383 @kindex C-c C-b
384 @item C-c C-b
385 Previous heading same level.
386 @kindex C-c C-u
387 @item C-c C-u
388 Backward to higher level heading.
389 @kindex C-c C-j
390 @item C-c C-j
391 Jump to a different place without changing the current outline
392 visibility.  Shows the document structure in a temporary buffer, where
393 you can use visibility cycling (@key{TAB}) to find your destination.
394 After pressing @key{RET}, the cursor moves to the selected location in
395 the original buffer, and the headings hierarchy above it is made
396 visible.
397 @end table
399 @node Structure editing, Sparse trees, Motion, Document Structure
400 @section Structure editing
401 @cindex structure editing
402 @cindex headline, promotion and demotion
403 @cindex promotion, of subtrees
404 @cindex demotion, of subtrees
405 @cindex subtree, cut and paste
406 @cindex pasting, subtrees
407 @cindex cutting, subtrees
408 @cindex copying, subtrees
410 @table @kbd
411 @kindex M-@key{RET}
412 @item M-@key{RET}
413 Insert new heading with same level as current
414 @kindex M-@key{left}
415 @item M-@key{left}
416 Promote current heading by one level
417 @kindex M-@key{right}
418 @item M-@key{right}
419 Demote current heading by one level
420 @kindex M-S-@key{left}
421 @item M-S-@key{left}
422 Promote the current subtree by one level
423 @kindex M-S-@key{right}
424 @item M-S-@key{right}
425 Demote the current subtree by one level
426 @kindex M-S-@key{up}
427 @item M-S-@key{up}
428 Move subtree up (swap with previous subtree of same level)
429 @kindex M-S-@key{down}
430 @item M-S-@key{down}
431 Move subtree down (swap with next subtree of same level)
432 @kindex C-c C-h C-w
433 @item C-c C-h C-w
434 Kill subtree, i.e. remove it from buffer but save in kill ring.
435 @kindex C-c C-h M-w
436 @item C-c C-h M-w
437 Copy subtree to kill ring.
438 @kindex C-c C-h C-y
439 @item C-c C-h C-y
440 Yank subtree from kill ring.  This does modify the level of subtree to
441 make sure the tree fits in nicely at the yank position.  The yank
442 level can also be specified with a prefix arg, or by yanking after a
443 headline marker like @samp{****}.
444 @end table
446 @cindex region, active
447 @cindex active region
448 @cindex transient-mark-mode
449 When there is an active region (transient-mark-mode), promotion and
450 demotion work on all headlines in the region.  To select a region of
451 headlines, it is best to place both point and mark at the beginning of a
452 line, mark at the beginning of the first headline, and point at the line
453 just after the last headline to change.  Note that when the cursor is
454 inside a table (@pxref{Tables}), the Meta-Cursor keys have different
455 functionality.
457 @node Sparse trees,  , Structure editing, Document Structure
458 @section Sparse trees
459 @cindex sparse trees
460 @cindex trees, sparse
461 @cindex folding, sparse trees
462 @cindex occur, command
464 An important feature of Org-mode is the ability to construct
465 @emph{sparse trees} for selected information in an outline tree.  A
466 sparse tree means that the entire document is folded as much as
467 possible, but the selected information is made visible along with the
468 headline structure above it.  Just try it out and you will see
469 immediately how it works.
471 Org-mode contains several commands creating such trees.  The most
472 basic one is @command{org-occur}:
474 @table @kbd
475 @kindex C-c /
476 @item C-c /
477 Occur.  Prompts for a regexp and shows a sparse tree with all matches.
478 If the match is in a headline, the headline is made visible.  If the
479 match is in the body of an entry, headline and body are made visible.
480 In order to provide minimal context, also the full hierarchy of
481 headlines above the match is shown, as well as the headline following
482 the match.
483 @end table
485 Other commands are using this feature as well.  For example @kbd{C-c
486 C-v} creates a sparse TODO tree (@pxref{TODO basics}).
488 @kindex C-c C-x v
489 @cindex printing sparse trees
490 @cindex visible text, printing
491 To print a sparse tree, you can use the Emacs command
492 @code{ps-print-buffer-with-faces} which does not print invisible parts
493 of the document @footnote{this does not work under XEmacs, because
494 XEmacs uses selective display for outlining, not text properties}.
495 Or you can use the command @kbd{C-c C-x v} to copy the visible part of
496 the document to another file (extension @file{.txt}) which then can be
497 printed in any desired way.
499 @node TODO items, Tables, Document Structure, Top
500 @chapter TODO items
501 @cindex TODO items
503 Org-mode does not maintain TODO lists as a separate document.  TODO
504 items are an integral part of the notes file, because TODO items
505 usually come up while taking notes!  With Org-mode, you simply mark
506 any entry in a tree as being a TODO item.  In this way, the
507 information is not duplicated, and the entire context from which the
508 item emerged is always present when you check.
510 Of course, this technique causes TODO items to be scattered throughout
511 your file.  Org-mode provides methods to give you an overview over all
512 things you have to do.
514 @menu
515 * TODO basics::                 Marking and displaying TODO entries
516 * Priorities::                  Some things are more important than others
517 * TODO extensions::             Workflow and assignments
518 @end menu
520 @node TODO basics, Priorities, TODO items, TODO items
521 @section Basic TODO functionality
523 Any headline can become a TODO item by starting it with the word TODO,
524 for example
526 @example
527 *** TODO Write letter to Sam Fortune
528 @end example
530 @noindent
531 The most important commands to work with TODO entries are:
533 @table @kbd
534 @kindex C-c C-t
535 @item C-c C-t
536 Rotate the TODO state of the current item between
537 @example
538 ,-> (unmarked) -> TODO -> DONE --.
539 '--------------------------------'
540 @end example
541 @kindex C-c C-v
542 @cindex sparse tree, for TODO
543 @item C-c C-v
544 View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}).  Folds
545 the entire buffer, but shows all TODO items and the headings hierarchy
546 above them.  With prefix arg, show also the DONE entries.
547 @end table
549 @node Priorities, TODO extensions, TODO basics, TODO items
550 @section Priorities
551 @cindex priorities
553 If you use Org-mode extensively to organize your work, you may end up
554 with a number of TODO entries so large that you'd like to prioritize
555 them.  You can do this by placing a @emph{priority cookie} into the
556 headline, like this
558 @example
559 *** TODO [#A] Write letter to Sam Fortune
560 @end example
562 @noindent
563 With its standard setup, Org-mode supports priorities @samp{A},
564 @samp{B}, and @samp{C}.  @samp{A} is the highest priority.  An entry
565 without a cookie is treated as priority @samp{B}.  Priorities make a
566 difference only in the multi-file agenda (@pxref{Agenda (multiple files)}).
568 @table @kbd
569 @kindex @kbd{C-c ,}
570 @item @kbd{C-c ,}
571 Set the priority of the current item.  The command prompts for a
572 priority character @samp{A}, @samp{B} or @samp{C}.  When you press
573 @key{SPC} instead, the priority cookie is removed from the headline.
574 @kindex S-@key{up}
575 @kindex S-@key{down}
576 @item S-@key{up}
577 @itemx S-@key{down}
578 Increase/decrease priority of current item.  Note that these keys are
579 also used to modify time stamps (@pxref{Creating timestamps}).
580 @end table
583 @node TODO extensions,  , Priorities, TODO items
584 @section Extended use of TODO keywords
585 @cindex extended TODO keywords
587 The default implementation of TODO entries is just two states:  TODO
588 and DONE.  You can, however, use the TODO feature for more
589 complicated things by configuring the variables
590 @code{org-todo-keywords} and @code{org-todo-interpretation}.  Using
591 special setup, you can even use TODO keywords in different ways in
592 different org files.
594 @menu
595 * Workflow states::             From TODO to DONE in steps
596 * TODO types::                  I do this, Fred the rest
597 * Per file keywords::           Different files, different requirements
598 @end menu
600 @node Workflow states, TODO types, TODO extensions, TODO extensions
601 @subsection TODO keywords as workflow states
602 @cindex TODO workflow
603 @cindex workflow states as TODO keywords
605 You can use TODO keywords to indicate different states in the process
606 of working on an item, for example
608 @lisp
609 (setq org-todo-keywords '("TODO" "FEEDBACK" "VERIFY" "DONE")
610       org-todo-interpretation 'sequence)
611 @end lisp
613 With this setup, the command @kbd{C-c C-t} will cycle an entry from
614 TODO to FEEDBACK, then to VERIFY, and finally too DONE.  You may also
615 use a prefix argument to quickly select a specific state.  For example
616 @kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
617 If you define many keywords, you can use in-buffer completion (see
618 @ref{Completion}) to insert these words into the buffer.
620 @node TODO types, Per file keywords, Workflow states, TODO extensions
621 @subsection TODO keywords as types
622 @cindex TODO types
623 @cindex names as TODO keywords
624 @cindex types as TODO keywords
626 The second possibility is to use TODO keywords to indicate different
627 types of action items.  For example, when you work with several people
628 on a single project, you might want to assign action items to
629 persons. 
631 @lisp
632 (setq org-todo-keywords '("Fred" "Sara" "Lucy" "Mike" "DONE")
633       org-todo-interpretation 'type)
634 @end lisp
636 In this case, different keywords do not indicate a sequence, but
637 rather different types.  This changes the behavior of the command
638 @kbd{C-c C-t} slightly.  When used several times in succession, it
639 will still cycle through all names.  But when when you return to the
640 item after some time and execute @kbd{C-c C-t} again, it will switch
641 from each name directly to DONE.  Use prefix arguments or completion
642 to quickly select a specific name.
644 @node Per file keywords,  , TODO types, TODO extensions
645 @subsection Setting up TODO keywords for individual files
646 @cindex keyword options
647 @cindex per file keywords
649 It can be very useful to use different aspects of the TODO mechanism
650 in different files.  For this you need to add special lines to the
651 file which set the keywords and interpretation for that file only.
652 For example, to set one of the two examples discussed above, you
653 need one of the following lines, starting in column zero anywhere in
654 the file:
656 @example
657 #+SEQ_TODO: TODO FEEDBACK VERIFY DONE
658 #+TYP_TODO: Fred Sara Lucy Mike DONE
659 @end example
661 @cindex Completing option keywords
662 @kindex M-@key{TAB}
663 @noindent To make sure you are using the correct keyword, type
664 @samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion.
666 @cindex DONE, final TODO keyword
667 Remember that the last keyword must always mean that the
668 item is DONE (you may use a different word, though).  After changing
669 these lines, use @kbd{M-x normal-mode} to make the changes known to
670 Org-mode.  Also note that in each file, only one of the two aspects
671 of TODO keywords can be used.
673 If you want to use very many keywords, for example when working with a
674 large group of people, you may split the names over several lines:
676 @example
677 #+TYP_TODO: Fred Sara Lucy Mike
678 #+TYP_TODO: Luis George Jules Jessica
679 #+TYP_TODO: Kim Arnold Peter
680 #+TYP_TODO: DONE
681 @end example
683 @node Tables, Hyperlinks, TODO items, Top
684 @chapter Tables
685 @cindex tables
687 For taking notes, tables are an essential tool because they allow
688 immediate and clear structuring of data.  Org-mode has a very fast and
689 intuitive table editor built-in.  More complex tables can be created
690 with the Emacs table.el package.
692 @menu
693 * Built-in table editor::       Simple tables
694 * table.el::                    Complex tables
695 * orgtbl-mode::                 The table editor as minor mode
696 @end menu
698 @node Built-in table editor, table.el, Tables, Tables
699 @section The built-in table editor
700 @cindex table editor, builtin
702 Org-mode makes it easy to format tables in plain ASCII.  Any line with
703 @samp{|} as the first non-white character is considered part of a
704 table.  @samp{|} is also the column separator.  A table might look
705 like this:
707 @example
708 | Name  | Phone | Age |
709 |-------+-------+-----|
710 | Peter |  1234 |  17 |
711 | Anna  |  4321 |  25 |
712 @end example
714 A table is re-aligned automatically each time you press @key{TAB} or
715 @key{RET} inside the table.  @key{TAB} also moves to the next field
716 (@key{RET} to the next row) and creates new table rows at the end of the
717 table or before horizontal lines.  The indentation of the table is set
718 by the first line.  Any line starting with @samp{|-} is considered as a
719 horizontal separator line and will be expanded on the next re-align to
720 span the whole table width.  So, to create the above table, you would
721 only type
723 @example
724 |Name|Phone|Age
726 @end example
728 @noindent and then press @key{TAB} to align the table and start filling in
729 fields.
731 @table @kbd
732 @tsubheading{Creation and conversion}
733 @kindex C-c C-c
734 @item C-c C-c
735 Recognize @file{table.el} table.  Works when the cursor is in a
736 table.el table
738 @kindex C-c C-c
739 @item C-c C-c
740 Convert region to table.  Works when the cursor is not in an existing
741 table, and when there is a region defined.  If every line contains at
742 least one TAB character, the function assumes that the material is tab
743 separated.  If not, lines are split at whitespace into fields.  You
744 can use a prefix argument to indicate how many consecutive spaces are
745 at least required to indicate a field separator (default: just one).
747 @item M-x org-table-create
748 Creates an empty Org-mode table.  However, it is much easier to just
749 start typing, like @kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}
751 @tsubheading{Re-aligning and field motion}
752 @kindex C-c C-c
753 @item C-c C-c
754 Re-align the table without moving the cursor.
756 @kindex @key{TAB}
757 @item @key{TAB}
758 Re-align the table, move to the next field.  Creates a new row if
759 necessary.
761 @kindex S-@key{TAB}
762 @item S-@key{TAB}
763 Move to previous field.
765 @kindex @key{RET}
766 @item @key{RET}
767 Re-align the table and move down to next row.  Creates a new row if
768 necessary.  At the beginning or end of a line, @key{RET} still does
769 NEWLINE, so it can be used to split a table.
771 @tsubheading{Column and row editing}
772 @kindex M-@key{left}
773 @kindex M-@key{right}
774 @item M-@key{left}
775 @itemx M-@key{right}
776 Move the current column left/right
778 @kindex M-S-@key{left}
779 @item M-S-@key{left}
780 Kill the current column.
782 @kindex M-S-@key{right}
783 @item M-S-@key{right}
784 Insert a new column to the left of the cursor position.
786 @kindex M-@key{up}
787 @kindex M-@key{down}
788 @item M-@key{up}
789 @itemx M-@key{down}
790 Move the current row up/down
792 @kindex M-S-@key{up}
793 @item M-S-@key{up}
794 Kill the current row or horizontal line.
796 @kindex M-S-@key{down}
797 @item M-S-@key{down}
798 Insert a new row above (with arg: below) the current row.
800 @kindex C-c -
801 @item C-c -
802 Insert a horizontal line below current row. With prefix arg, line is
803 created above the current line.
805 @tsubheading{Regions}
806 @kindex C-c C-h M-w
807 @item C-c C-h M-w
808 Copy an rectangular region from a table to a special clipboard.  Point
809 and mark determine edge fields of the rectangle.  The process ignores
810 horizontal separator lines.
811 @kindex C-c C-h C-w
812 @item C-c C-h C-w
813 Copy an rectangular region from a table to a special clipboard, and
814 blank all fields in the rectangle.
815 @kindex C-c C-h C-y
816 @item C-c C-h C-y
817 Paste a rectangular region into a table.
818 The upper right corner ends up in the current field.  All involved fields
819 will be overwritten.  If the rectangle does not fit into the present table,
820 the table is enlarged as needed.  The process ignores horizontal separator
821 lines.
822 @kindex C-c C-q
823 @item C-c C-q
824 Wrap several fields in a column like a paragraph.  If there is an active
825 region, and both point and mark are in the same column, the text in the
826 column is wrapped to minimum width for the given number of lines.  A
827 prefix ARG may be used to change the number of desired lines.  If there
828 is no region, the current field is split at the cursor position and the
829 text fragment to the right of the cursor is prepended to the field one
830 line down. If there is no region, but you specify a prefix ARG, the
831 current field gets blank, and the content is appended to the field
832 above.
834 @tsubheading{Calculations}
835 @kindex C-c ?
836 @item C-c ?
837 Which table column is the cursor in?  Displays number >0 in echo
838 area. 
840 @cindex region, active
841 @cindex active region
842 @cindex transient-mark-mode
843 @kindex C-c +
844 @item C-c +
845 Sum the numbers in the current column, or in the rectangle defined by
846 the active region.  The result is displayed in the echo area and can
847 be inserted with @kbd{C-y}.
849 @kindex S-@key{RET}         
850 @item S-@key{RET}         
851 When current field is empty, copy from first non-empty field above.
852 When not empty, copy current field down to next row and move cursor
853 along with it.  Depending on the variable
854 @code{org-table-copy-increment}, integer field values will be
855 incremented during copy.
857 @cindex formula, in tables
858 @cindex calculations, in tables
859 @kindex C-c =
860 @item C-c =
861 Replace current field with the result of a formula.  Requires the
862 Emacs calc package.  The formula can access the current field with
863 @samp{$}, and the other fields in the current row
864 with @samp{$1}, @samp{$2},...  For details see the documentation of the
865 command @command{org-table-eval-formula}.
867 @tsubheading{Miscellaneous}
868 @kindex C-c |
869 @item C-c |
870 Toggle the visibility of vertical lines in tables.  The lines are
871 still there, only made invisible with a text property.  Any @samp{|}
872 added by hand will become invisible on the next align.
873 Typographically it is good style to have no vertical lines in tables.
875 @item M-x org-table-import
876 Import a file as a table.  The table should be TAB- or whitespace
877 separated.  Useful for example to import an Excel table or data from a
878 database, because these programs generally can write TAB-separated text
879 files.  This command works by inserting the file into the buffer and
880 then converting the region to a table.  Any prefix argument is passed on
881 to the converter, which uses it to determine the separator.
883 @item M-x org-table-export
884 Export the table as a TAB-separated file.  Useful for data exchange with
885 for example Excel or database programs.
887 @end table
889 If you don't like the automatic table editor because it gets into your
890 way in lines which you would like to start with @samp{|}, you can turn
891 it off with
892 @lisp
893 (setq org-enable-table-editor nil)
894 @end lisp
895 @noindent The only table command which then still works is
896 @kbd{C-c C-c} to do a manual re-align.
898 @node table.el, orgtbl-mode, Built-in table editor, Tables
899 @section The @file{table.el} package
900 @kindex C-c C-c
901 @cindex table editor, table.el
902 @cindex @file{table.el}
904 More complex ASCII tables (with automatic line wrapping, column- and
905 row-spanning, and alignment) can be created using the Emacs table
906 package by Takaaki Ota (@uref{http://sourceforge.net/projects/table}).
907 When @key{TAB} or @kbd{C-c C-c} is pressed in such a table, Org-mode
908 will call @command{table-recognize-table} and move the cursor into the
909 table.  Inside a table, the keymap of Org-mode is inactive.  In order
910 to execute org-related commands, leave the table.
912 @table @kbd
913 @kindex C-c #
914 @item C-c #
915 Insert a table.el table.  If there is already a table at point, this
916 command converts it between the table.el format and the Org-mode
917 format.  See the documentation string of the command
918 @code{org-convert-table} for the restrictions under which this is
919 possible.
920 @end table
922 @node orgtbl-mode,  , table.el, Tables
923 @section The Orgtbl minor mode
924 @cindex orgtbl-mode
925 @cindex Minor mode for tables
927 If you like the intuitive way the Org-mode table editor works, you
928 might want to use it also in other modes like text-mode or mail-mode.
929 The minor mode Orgtbl-mode make this possible.  You can always toggle
930 the mode with @kbd{M-x orgtbl-mode}.  To turn it on by default, for
931 example in mail mode, use
932 @lisp
933 (add-hook 'mail-mode-hook 'turn-on-orgtbl)
934 @end lisp
936 @node Hyperlinks, Timestamps, Tables, Top
937 @chapter Hyperlinks
938 @cindex hyperlinks
940 Just like HMTL, Org-mode provides links to other files, usenet
941 articles, emails and much more.
943 @menu
944 * Links::                       URL-like links to the world
945 * Remember::                    Org-trees store quick notes
946 @end menu
948 @node Links, Remember, Hyperlinks, Hyperlinks
949 @section Links
950 @cindex links
951 @cindex GNUS links
952 @cindex BBDB links
953 @cindex VM links
954 @cindex RMAIL links
955 @cindex WANDERLUST links
956 @cindex USENET links
957 @cindex SHELL links
959 Org-mode supports links to files, websites, usenet and email messages;
960 and BBDB database entries.  Links are just plain-text URL-like locators.
961 The following list shows examples for each link type.
963 @example
964 http://www.astro.uva.nl/~dominik         @r{on the web}
965 file:/home/dominik/images/jupiter.jpg    @r{file, absolute path}
966 file:papers/last.pdf                     @r{file, relative path}
967 file:~/code/main.c:255                   @r{file, with line number}
968 news:comp.emacs                          @r{Usenet link}
969 mailto:adent@@galaxy.net                  @r{Mail link}
970 vm:folder                                @r{VM folder link}
971 vm:folder#id                             @r{VM message link}
972 vm://myself@@some.where.org/folder#id     @r{VM on remote machine}
973 wl:folder                                @r{WANDERLUST folder link}
974 wl:folder#id                             @r{WANDERLUST message link}
975 rmail:folder                             @r{RMAIL folder link}
976 rmail:folder#id                          @r{RMAIL message link}
977 gnus:group                               @r{GNUS group link}
978 gnus:group#id                            @r{GNUS article link}
979 bbdb:Richard Stallman                    @r{BBDB link}
980 shell:ls *.org                           @r{A shell command}
981 @end example
983 A link may contain space characters and is terminated by the end of
984 the line.  Therefore, there can be only one link per line (but see the
985 variable @code{org-allow-space-in-links}).
987 @cindex storing links
988 @table @kbd
989 @kindex C-c l
990 @item C-c l
991 Store a link to the current location.  This is a @emph{global} command
992 which can be used in any buffer to create a link.  The link will be
993 stored for later insertion into an Org-mode buffer (see below).  For VM,
994 RMAIL, WANDERLUST, GNUS and BBDB buffers, the link will point to the
995 current article/entry.  For W3 and W3M buffer, the link goes to the
996 current URL.  For any other files, the link will just point to the file.
997 The key binding @kbd{C-c l} is only a suggestion - see
998 @ref{Installation}.
1000 @kindex C-c C-l
1001 @item C-c C-l
1002 Insert a link.  This prompts for a link to be inserted into the
1003 buffer.  You can just type a link, using one of the link type prefixes
1004 mentioned in the examples above.  Through completion, all links stored
1005 during the current session can be accessed.  When called with prefix
1006 arg, you can use file name completion to enter a file link.  Note that
1007 you don't have to use this command to insert a link.  Links in
1008 Org-mode are plain text, and you can type or paste them straight into
1009 the buffer.
1011 @cindex inserting links
1012 @kindex C-c C-o
1013 @item C-c C-o
1014 Open link at point.  This will launch a web browser for URLs (using
1015 @command{browse-url-at-point}), run vm/gnus/bbdb for the corresponding
1016 links, execute the command in a shell link, visit text files with
1017 Emacs and select a suitable application for non-text files.
1018 Classification of files is based on file extension only.  See option
1019 @code{org-file-apps}.  If there is no link at point, the current
1020 subtree will be searched for one.  If you want to override the default
1021 application and visit the file with Emacs, use a @kbd{C-u} prefix.
1022 If the cursor is on a time stamp, compiles the agenda for that date.
1024 @strong{IMPORTANT}: Be careful not to use any dangerous commands in a
1025 shell link.
1027 @kindex mouse-2
1028 @item mouse-2
1029 On links, @kbd{mouse-2} will open the link just like @kbd{C-c C-o} would.
1031 @kindex mouse-3
1032 @item mouse-3
1033 Like @kbd{mouse-2}, but force file links to be opened with Emacs.
1034 @end table
1036 @node Remember,  , Links, Hyperlinks
1037 @section Remember
1038 @cindex @file{remember.el}
1040 Another way to create org entries with links to other files is through
1041 the @emph{Remember} package by John Wiegley.  @emph{Remember} lets you
1042 store quick notes with little interruption of your work flow.  See
1043 @uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
1044 information.  The notes produced by @emph{Remember} can be stored in
1045 different ways, and Org-mode files are a good target.
1046 Org-mode allows to file away notes either to a default file, or
1047 directly to the correct location in your Org-mode outline tree.  The
1048 following customization will tell @emph{Remember} to use org files as
1049 target, and to create annotations compatible with Org-mode links.
1052 @c FIXME: The autoload will not be necessary when Org-mode is part of Emacs
1053 @example
1054 (autoload 'org-remember-annotation "org")
1055 (autoload 'org-remember-handler "org")
1056 (setq org-directory "~/path/to/my/orgfiles/")
1057 (setq org-default-notes-file "~/.notes")
1058 (setq remember-annotation-functions '(org-remember-annotation))
1059 (setq remember-handler-functions '(org-remember-handler))
1060 @end example
1062 When you compose a note with remember, you have to press @kbd{C-c C-c}
1063 to exit remember-mode and to file away the note.  The handler first
1064 prompts for a target file - if you press @key{RET}, the value of
1065 @code{org-default-notes-file} is used.  Then the command offers the
1066 headings tree of the selected file.  You can either immediately press
1067 @key{RET} to get the note appended to the file.  Or you can use
1068 vertical cursor motion (@key{up} and @key{down}) and visibility
1069 cycling (@key{TAB}) to find a better place.  Pressing @key{RET} or
1070 @key{left} or @key{right} leads to the following result.
1072 @multitable @columnfractions 0.2 0.1 0.7
1073 @item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted}
1074 @item buffer-start @tab @key{RET} @tab as level 2 heading at end of file
1075 @item on headline @tab @key{RET} @tab as sublevel of the heading at cursor
1076 @item             @tab @key{left}  @tab as same level, before current heading
1077 @item             @tab @key{right} @tab as same level, after current heading
1078 @item not on headline @tab @key{RET} 
1079       @tab at cursor position, level taken from context.
1080            Or use prefix arg to specify level manually.
1081 @end multitable
1083 So the fastest way to store the note is to press @kbd{C-c C-c @key{RET}
1084 @key{RET}} to append it to the default file.  But with little extra
1085 effort, you can push it directly to the correct location.
1087 Before inserting the text into a tree, the function ensures that the
1088 text has a headline, i.e. a first line that starts with a @samp{*}.
1089 If not, a headline is constructed from the current date and some
1090 additional data.  If the variable @code{org-adapt-indentation} is
1091 non-nil, the entire text is also indented so that it starts in the
1092 same column as the headline (after the asterisks).
1094 @node Timestamps, Timeline and Agenda, Hyperlinks, Top
1095 @chapter Timestamps
1097 Items can be labeled with timestamps to make them useful for project
1098 planning.
1100 @menu
1101 * Time stamps::                 Assigning a time to a tree entry
1102 * Creating timestamps::         Commands which insert timestamps
1103 @end menu
1106 @node Time stamps, Creating timestamps, Timestamps, Timestamps
1107 @section Time stamps, deadlines and scheduling
1108 @cindex time stamps
1109 @cindex deadlines
1110 @cindex scheduling
1112 A time stamp is a specification of a date (possibly with time) in a
1113 special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16
1114 Tue 09:39>}.  A time stamp can appear anywhere in the headline or body
1115 of an org-tree entry.  Its presence allows to show entries on specific
1116 dates in the agenda (@pxref{Agenda (multiple files)}).  We distinguish:
1118 @table @var
1119 @cindex timestamp
1120 @item TIMESTAMP
1121 A simple time stamp just assigns a date/time to an item.  In the
1122 timeline and agenda displays, the headline of the entry will be shown
1123 exactly on that date.
1125 @item TIMERANGE
1126 @cindex timerange
1127 Two time stamps connected by @samp{--} denote a time range.  The
1128 headline will be shown on the first and last day of the range, and on
1129 any dates that are displayed and fall in the range.  Here is an
1130 example:
1132 @example
1133 ** Meeting in Amsterdam
1134    <2004-08-23 Mon>--<2004-08-26 Thu>
1135 @end example
1137 @item DEADLINE
1138 @cindex deadline
1139 If a time stamp is preceded by the word @samp{DEADLINE:}, the task
1140 (most likely a TODO item) is supposed to be finished on that date, and
1141 it will be listed then.  In addition, the compilation for the
1142 @emph{current day} will carry a warning about the approaching or
1143 missed deadline, starting @code{org-deadline-warning-days} before the
1144 due date, and continuing until the entry is marked DONE.  An example:
1146 @example
1147 *** TODO write article about the Earth for the Guide
1148     The editor in charge is bbdb:Ford Prefect
1149     DEADLINE: <2004-02-29 Sun>
1150 @end example
1152 @item SCHEDULED
1153 @cindex scheduled
1154 If a time stamp is preceded by the word @samp{SCHEDULED:}, it means
1155 you are planning to start working on that task on the given date.  The
1156 headline will be listed under the given date.  In addition, a reminder
1157 that the scheduled date has passed will be present in the compilation
1158 for the @emph{current day}, until the entry is marked DONE.  I.e., the
1159 task will automatically be forwarded.
1160 @end table
1162 @node Creating timestamps,  , Time stamps, Timestamps
1163 @section Creating timestamps
1164 @cindex creating timestamps
1166 For Org-mode to recognize time stamps, they need to be in the specific
1167 format.  All commands listed below produce time stamps in the correct
1168 format.
1170 @table @kbd
1171 @kindex C-c .
1172 @item C-c .
1173 Prompt for a date and insert a corresponding time stamp.  When the
1174 cursor is at a previously used time stamp, it is updated to NOW.  When
1175 this command is used twice in succession, a time range is inserted.
1177 @kindex C-u C-c .
1178 @item C-u C-c .
1179 Like @kbd{C-c .}, but use the alternative format which contains date
1180 and time.
1182 @kindex C-c <
1183 @item C-c <
1184 Insert a time stamp corresponding to the cursor date in the Calendar.
1186 @kindex C-c >
1187 @item C-c >
1188 Access the Emacs calendar for the current date.  If there is a
1189 timestamp in the current line, goto the corresponding date
1190 instead.
1192 @kindex C-c C-o
1193 @item C-c C-o
1194 Access the agenda for the date given by the time stamp at point
1195 (@pxref{Agenda (multiple files)}).
1197 @kindex C-c C-d
1198 @item C-c C-d
1199 Insert @samp{DEADLINE} keyword along with a stamp.
1200 @kindex C-c C-w
1201 @cindex sparse tree, for deadlines
1202 @item C-c C-w
1203 Create a sparse tree with all deadlines that are either past-due, or
1204 which will become due within @code{org-deadline-warning-days}.
1205 With @kbd{C-u} prefix, show all deadlines in the file.  With a numeric
1206 prefix, check that many days.  For example, @kbd{C-1 C-c C-w} shows
1207 all deadlines due tomorrow.
1209 @kindex C-c C-s
1210 @item C-c C-s
1211 Insert @samp{SCHEDULED} keyword along with a stamp.
1213 @kindex S-@key{left}
1214 @kindex S-@key{right}
1215 @item S-@key{left}
1216 @itemx S-@key{right}
1217 Change date at cursor by one day.
1219 @kindex S-@key{up}
1220 @kindex S-@key{down}
1221 @item S-@key{up}
1222 @itemx S-@key{down}
1223 Change the item under the cursor in a timestamp.  The cursor can be on
1224 a year, month, day, hour or minute.  Note that if the cursor is not at
1225 a time stamp, these same keys modify the priority of an item
1226 (@pxref{Priorities}).
1228 @kindex C-c C-y
1229 @cindex evaluate time range
1230 @item C-c C-y
1231 Evaluate a time range by computing the difference between start and
1232 end.  With prefix arg, insert result after the time range (in a table:
1233 into the following column).
1234 @end table
1236 @cindex date, reading in minibuffer
1237 @cindex time, reading in minibuffer
1238 @cindex calendar, for selecting date
1239 When org prompts for a date/time, the function reading your input will
1240 replace anything you choose not to specify with the current date and
1241 time.  For details, see the documentation string of
1242 @command{org-read-date}.  Also, a calender will pop up to allow
1243 selecting a date.  The calendar can be fully controlled from the
1244 minibuffer, and a date can be selected with the following commands:
1246 @table @kbd
1247 @kindex <
1248 @item <
1249 Scroll calendar backwards by one month.
1250 @kindex >
1251 @item >
1252 Scroll calendar forwards by one month.
1253 @kindex mouse-1
1254 @item mouse-1
1255 Select date by clicking on it.
1256 @kindex S-@key{right}
1257 @item S-@key{right}
1258 One day forward.
1259 @kindex S-@key{left}
1260 @item S-@key{left}
1261 One day back.
1262 @kindex S-@key{down}
1263 @item S-@key{down}
1264 One week forward.
1265 @kindex S-@key{up}
1266 @item S-@key{up}
1267 One week back.
1268 @kindex M-S-@key{right}
1269 @item M-S-@key{right}
1270 One month forward.
1271 @kindex M-S-@key{left}
1272 @item M-S-@key{left}
1273 One month back.
1274 @kindex @key{RET}
1275 @item @key{RET}
1276 Choose date in calendar (only if nothing typed into minibuffer).
1277 @end table
1279 @node Timeline and Agenda, Exporting, Timestamps, Top
1280 @chapter Timeline and Agenda
1281 @cindex agenda
1283 We have already described three commands to filter important
1284 information in an org file into a sparse tree (@pxref{Sparse trees}):
1286 @cindex sparse trees
1287 @itemize @bullet
1288 @item
1289 The TODO tree, (@kbd{C-c C-v}), see @ref{TODO items}.
1290 @item
1291 The occur tree @kbd{C-c /}, see @ref{TODO items}.
1292 @item
1293 Checking upcoming deadlines with @kbd{C-c C-w}, see @ref{Creating
1294 timestamps}.
1295 @end itemize
1296 @noindent
1298 Instead of using the sparse trees, Org-mode can also collect and
1299 time-sort the important items into a separate buffer, which we call
1300 the @emph{timeline} of the org file.  It can also collect information
1301 from a @emph{list of files} and in this way provide an @emph{agenda}
1302 which covers all of your current projects, action items and
1303 appointments.
1305 @menu
1306 * Timeline (single file)::      Time-sorted view for single file
1307 * Agenda (multiple files)::     Your weekly planner
1308 * Agenda commands::             Remote editing of org trees
1309 * Calendar/Diary integration::  Integrating Anniversaries and more
1310 @end menu
1312 @node Timeline (single file), Agenda (multiple files), Timeline and Agenda, Timeline and Agenda
1313 @section Timeline for a single file
1314 @cindex single file summary
1315 @cindex agenda, for single file
1316 @cindex timeline, single file
1317 @cindex time-sorted view
1319 The timeline shows all time-stamped items in a single Org-mode file,
1320 in @emph{time-sorted view}.  The main purpose of this command is to
1321 give an overview over events in a project.
1323 @table @kbd
1324 @kindex C-c C-r
1325 @item C-c C-r
1326 Show a time-sorted view of the org file, with all time-stamped items
1327 of today or later.  When called with a @kbd{C-u} prefix, past dates
1328 will be included as well.  When called with two @kbd{C-u C-u}
1329 prefixes, all unfinished TODO entries (scheduled or not) are also
1330 listed under the current date.
1331 @end table
1332 @noindent
1334 The timeline is shown in a temporary buffer @file{*Org Agenda*}.  The
1335 commands available in the Agenda buffer are listed in @ref{Agenda
1336 commands}.
1338 @node Agenda (multiple files), Agenda commands, Timeline (single file), Timeline and Agenda
1339 @section Agenda from multiple files
1340 @cindex agenda, from multiple files
1342 An agenda can be compiled from one or more org files.  The main
1343 purpose of this command is to act like a planner, in order to show you
1344 what tasks are up for the current week, similar to a paper agenda.
1346 The Org-mode files to be processed in order to generate the agenda are
1347 listed in the variable @code{org-agenda-files}.  You can customize
1348 this variable, but the easiest way to maintain it is through the
1349 following commands
1351 @cindex files, adding to agenda list
1352 @table @kbd
1353 @kindex C-c [
1354 @item C-c [
1355 Add current file to the list of agenda files
1356 @kindex C-c ]
1357 @item C-c ]
1358 Remove current file from the list of agenda files.
1359 @end table
1360 @noindent
1361 The Org menu contains the list of all files and can be used to quickly
1362 visit any of them.
1364 The global command @command{org-agenda} compiles the agenda from all
1365 listed files.
1367 @table @kbd
1368 @cindex org-agenda, command
1369 @kindex C-c a
1370 @item C-c a
1371 Compile an agenda for the current week from a list of org files.  The
1372 agenda shows the entries for each day.  With a @kbd{C-u} prefix (or
1373 when the variable @code{org-agenda-include-all-todo} is @code{t}), all
1374 unfinished TODO items (also those without a date) are also listed at
1375 the beginning of the buffer, before the first date.@*
1376 The key binding @kbd{C-c a} is only a suggestion - see
1377 @ref{Installation}.
1378 @end table
1380 The commands available in the Agenda buffer are listed in
1381 @ref{Agenda commands}.
1383 @subsection Categories
1385 @cindex category
1386 In the agenda buffer, each entry is preceded by a @emph{category},
1387 which is derived from the file name.  You can also set the category of
1388 a file through file variables, for example by making the first line of
1389 the file look like this:
1391 @cindex file variables
1392 @example
1393 Planet Finder -*- mode: org; org-category: Cheops -*-
1394 @end example
1395 @noindent
1396 Or, like with TODO keywords (@pxref{Per file keywords}), you can
1397 insert a special line anywhere in the file:
1399 @example
1400 #+CATEGORY: Cheops
1401 @end example
1402 @noindent
1403 The display looks best if the category is no longer than 10 characters.
1406 @subsection Sorting of agenda items
1407 @cindex sorting, of agenda items
1408 @cindex priorities, of agenda items
1409 The entries for each day are sorted.  The default order is to first
1410 collect all items containing an explicit time-of-day specification.
1411 These entries will be shown at the beginning of the list, as a
1412 @emph{schedule} for the day.  After that, items remain grouped in
1413 categories, in the sequence given by @code{org-agenda-files}.  Within
1414 each category, items are sorted by priority (@pxref{Priorities}).
1416 A time-of-day specification looks like @samp{12:45} or @samp{3pm} and
1417 must appear in the headline.  For example, a timestamp in a headline
1418 that contains not only a date but also a time will trigger this
1419 mechanism.  Specifications of a time in diary entries are recognized
1420 as well, so the schedule will be mixed from diary entries and Org-mode
1421 files.
1423 The priority is a numerical quantity composed of the base priority
1424 (2000 for priority @samp{A}, 1000 for @samp{B}, and 0 for @samp{C}),
1425 plus additional increments for overdue scheduled or deadline items.
1427 Sorting can be customized using the variable
1428 @code{org-agenda-sorting-strategy}.
1430 @node Agenda commands, Calendar/Diary integration, Agenda (multiple files), Timeline and Agenda
1431 @section Commands in the agenda buffer
1433 Entries in the agenda buffer are linked back to the org file or diary
1434 file where they originate.  You are not allowed to edit the agenda
1435 buffer itself, but commands are provided to show and jump to the
1436 original entry location, and to edit the org-files ``remotely'' from
1437 the agenda buffer.  In this way, all information is stored only once,
1438 and you don't risk that your agenda and note files diverge.
1440 Some commands can be executed with mouse clicks on agenda lines.  For
1441 the other commands, the cursor needs to be in the desired line.  Most
1442 commands are available for both timelines and the agenda.  The
1443 exceptions are marked.
1445 @table @kbd
1446 @tsubheading{View/GoTo org file}
1447 @kindex mouse-3
1448 @kindex @key{SPC}
1449 @item mouse-3
1450 @itemx @key{SPC} 
1451 Display the original location of the item in another window.
1453 @kindex l
1454 @item l
1455 Display original location and recenter that window.
1457 @kindex mouse-2
1458 @kindex @key{TAB}
1459 @item mouse-2
1460 @itemx @key{TAB}
1461 Go to the original location of the item in another window.
1463 @kindex @key{RET}
1464 @itemx @key{RET}
1465 Go to the original location of the item and delete other windows.
1467 @kindex f
1468 @item f
1469 Toggle follow mode.  In follow mode, as you move the cursor through
1470 the agenda buffer, the other window always shows the corresponding
1471 location in the org file.
1474 @tsubheading{Change display}
1475 @kindex o
1476 @item o
1477 Delete other windows.
1479 @kindex w
1480 @item w
1481 Toggle between weekly and daily view.
1483 @kindex d
1484 @item d
1485 Toggle the inclusion of diary entries.  See @ref{Calendar/Diary integration}.
1487 @kindex r
1488 @item r
1489 Recreate the agenda buffer, for example to reflect the changes
1490 after modification of the time stamps of items with S-@key{left} and
1491 S-@key{right}.
1493 @kindex @key{right}
1494 @item @key{right}
1495 Display the following @code{org-agenda-ndays} days.  For example, if
1496 the display covers a week, switch to the following week.  With prefix
1497 arg, go forward that many times @code{org-agenda-ndays} days.  Not
1498 available in timelines.
1500 @kindex @key{left}
1501 @item @key{left}
1502 Display the previous dates.  Not available in timelines.
1504 @kindex .
1505 @item .
1506 Goto today.
1508 @tsubheading{Remote editing}
1510 @item 0-9
1511 Digit argument.
1513 @kindex t
1514 @item t
1515 Change the TODO state of the item, both in the agenda and in the
1516 original org file.
1518 @kindex p
1519 @item p
1520 Set the priority for the current item.  Org-mode prompts for the
1521 priority character. If you reply with @key{SPC}, the priority cookie
1522 is removed from the entry.
1524 @kindex P
1525 @item p
1526 Display weighted priority of current item.
1528 @kindex +
1529 @item +
1530 Increase the priority of the current item.  The priority is changed in
1531 the original buffer, but the agenda is not resorted.  Use the @kbd{r}
1532 key for this.
1534 @kindex -
1535 @item -
1536 Decrease the priority of the current item.
1538 @kindex S-@key{right}
1539 @item S-@key{right}
1540 Change the time stamp associated with the current line by one day into
1541 the future.  With prefix argument, change it by that many days.  For
1542 example, @kbd{3 6 5 S-@key{right}} will change it by a year.  The
1543 stamp is changed in the original org file, but the change is not
1544 directly reflected in the agenda buffer.  Use the 
1545 @kbd{r} key to update the buffer.
1547 @kindex S-@key{left}
1548 @item S-@key{left}
1549 Change the time stamp associated with the current line by one day
1550 into the past.
1552 @kindex >
1553 @item >
1554 Change the time stamp associated with the current line to today.
1555 The key @kbd{>} has been chosen, because it is the same as @kbd{S-.}
1556 on my keyboard.
1558 @cindex diary entries, creating from agenda
1559 @kindex i
1560 @item i
1561 Insert a new entry into the diary.  Prompts for the type of entry
1562 (day, weekly, monthly, yearly, anniversary, cyclic) and creates a new
1563 entry in the diary, just like @kbd{i d} etc. would do in the calendar.
1564 The date is taken from the cursor position.
1566 @tsubheading{Calendar commands}
1567 @kindex c
1568 @item c
1569 Open the Emacs calendar and move to the date at the agenda cursor.
1571 @kindex C
1572 @item C
1573 Convert the date at cursor into many other cultural and historic
1574 calendars.
1576 @kindex M
1577 @item M
1578 Show the phases of the moon for three month around current date.
1580 @kindex S
1581 @item S
1582 Show sunrise and sunset times.  The location must be set with calendar
1583 variables, see documentation of the Emacs calendar.
1585 @kindex H
1586 @item H
1587 Show holidays for three month around the cursor date.
1589 @tsubheading{Quit and Exit}
1590 @kindex q
1591 @item q
1592 Quit Agenda, remove the agenda buffer.
1594 @kindex x
1595 @cindex agenda files, removing buffers
1596 @item x
1597 Exit agenda, remove the agenda buffer and all buffers loaded by Emacs
1598 for the compilation of the agenda.  Buffers created by the user to
1599 visit org files will not be removed.
1601 @end table
1603 @node Calendar/Diary integration,  , Agenda commands, Timeline and Agenda
1604 @section Calendar/Diary integration
1605 @cindex calendar integration
1606 @cindex diary integration
1608 Emacs contains the calendar and diary by Edward M. Reingold.  The
1609 calendar displays a three-month calendar with holidays from different
1610 countries and cultures.  The diary allows to keep track of
1611 anniversaries, lunar phases, sunrise/set, recurrent appointments
1612 (weekly, monthly) and more.  In this way, it is quite complementary to
1613 Org-mode.  It can be very useful to combine output from Org-mode with
1614 the diary.
1616 The interaction between Org-mode and diary works both ways: You can
1617 list entries from the diary in the Org-mode agenda, from which many
1618 calendar and diary commands are directly accessible.  Or you can
1619 display entries from the org agenda in the Emacs diary.
1621 @menu
1622 * Diary to agenda::             Agenda incorporates the diary
1623 * Agenda to diary::             Diary incorporates the agenda
1624 @end menu
1626 @node Diary to agenda, Agenda to diary, Calendar/Diary integration, Calendar/Diary integration
1627 @subsection Including the diary into the agenda
1628 @cindex diary to agenda
1630 In order to include entries from the Emacs diary into Org-mode's
1631 agenda, you only need to customize the variable
1633 @lisp
1634 (setq org-agenda-include-diary t)
1635 @end lisp
1636 @noindent
1638 @noindent After that, everything will happen automatically.  All diary
1639 entries including holidays, anniversaries etc will be included in the
1640 agenda buffer created by Org-mode.  @key{SPC}, @key{TAB}, and
1641 @key{RET} can be used from the agenda buffer to jump to the diary
1642 file, in order to edit existing diary entries.  Also the @kbd{i}
1643 command to insert new entries for the current date works in the agenda
1644 buffer, as well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to
1645 display Sunrise/Sunset times, show lunar phases and to convert to
1646 other calendars, respectively.
1648 @node Agenda to diary,  , Diary to agenda, Calendar/Diary integration
1649 @subsection Including the agenda into the diary
1651 If you prefer to use the Emacs diary as your main instrument and if
1652 you wish to include the Org-mode agenda into it, the following steps
1653 are necessary: Autoload the function @command{org-diary} as shown
1654 above under @ref{Installation}.  You also need to use @emph{fancy
1655 diary display} by setting in @file{.emacs}:
1657 @lisp
1658 (add-hook 'diary-display-hook 'fancy-diary-display)
1659 @end lisp
1661 Then include the following line into your @file{~/diary} file, in
1662 order to get the entries from all files listed in the variable
1663 @code{org-agenda-files}:
1665 @example
1666 &%%(org-diary)
1667 @end example
1668 @noindent
1669 You may also select specific files with
1671 @example
1672 &%%(org-diary) ~/path/to/some/org-file.org
1673 &%%(org-diary) ~/path/to/another/org-file.org
1674 @end example
1676 If you now launch the calendar and press @kbd{d} to display a diary,
1677 the headlines of entries containing a timestamp, date range, schedule,
1678 or deadline referring to the selected date will be listed.  Just like
1679 in Org-mode's agenda view, the diary for @emph{today} contains
1680 additional entries for overdue deadlines and scheduled items.  See
1681 also the documentation of the @command{org-diary} function.
1683 @node Exporting, Miscellaneous, Timeline and Agenda, Top
1684 @chapter Exporting
1685 @cindex exporting
1686 @cindex ASCII file
1687 @cindex HTML
1690 @cindex headline levels, for exporting
1691 For printing and sharing of notes, an Org-mode document can be
1692 exported as an ASCII file, or as HTML.  In the exported version, the
1693 first 3 outline levels will become headlines, defining a general
1694 document structure.  Additional levels will be exported as itemize
1695 lists.  If you want that transition to occur at a different level,
1696 specify it with a prefix argument.  For example,
1698 @example
1699 @kbd{M-1 M-x org-export-as-html}
1700 @end example
1701 @noindent
1702 creates only top level headlines and does the rest as items.
1704 @menu
1705 * Export commands::             Commands which export and display
1706 * HTML formatting::             Interpretation of the buffer content
1707 * Export options::              How to influence exports
1708 * Comment lines::               Lines which will not be exported
1709 @end menu
1711 @node Export commands, HTML formatting, Exporting, Exporting
1712 @section Export commands
1714 @cindex region, active
1715 @cindex active region
1716 @cindex transient-mark-mode
1717 @table @kbd
1718 @kindex C-c C-x a    
1719 @item C-c C-x a
1720 Export as ASCII file.  If there is an active region, only the region
1721 will be exported.  For an org file @file{myfile.org}, the ASCII file
1722 will be @file{myfile.txt}.  The file will be overwritten without
1723 warning.
1724 @kindex C-c C-x h    
1725 @item C-c C-x h
1726 Export as HTML file @file{myfile.html}.
1727 @kindex C-c C-x C-h  
1728 @item C-c C-x C-h
1729 Export as HTML file and open it with a browser.
1730 @kindex C-c C-x t
1731 @item C-c C-x t
1732 Insert template with export options, see below.
1733 @kindex C-c :
1734 @item C-c :
1735 Toggle fixed-width for line or region, see below.
1736 @end table
1738 @node HTML formatting, Export options, Export commands, Exporting
1739 @section HTML formatting
1741 Not all text is transferred literally to the exported HTML file.  The
1742 exporter implements the following interpretation:
1744 @itemize @bullet
1745 @cindex underlined text
1746 @cindex bold text
1747 @cindex italic text
1748 @item
1749 You can make words @b{*bold*}, @i{/italic/}, and _underlined_
1751 @cindex @TeX{} interpretation
1752 @item
1753 Simple @TeX{}-like math constructs are interpreted:
1755 @itemize @minus
1756 @item
1757 @samp{10^22} and @samp{J_n} are super- and subscripts.  You can quote
1758 @samp{^} and @samp{_} with a backslash: @samp{\_} and @samp{\^}
1759 @item
1760 @samp{\alpha} indicates a Greek letter, @samp{\to} an arrow.  You can
1761 use completion for these macros, just type @samp{\} and maybe a few
1762 letters, and press @kbd{M-@key{TAB}} to see possible completions.
1763 @end itemize
1765 @cindex tables, export to HTML
1766 @item
1767 Tables are transformed into HTML tables.
1769 @cindex fixed width
1770 @item
1771 Lines starting with @samp{:} are typeset in a fixed-width font, to
1772 allow quoting of computer code etc. 
1774 @cindex HTML tags
1775 @item
1776 If you want to include HTML tags which should be interpreted as such,
1777 mark them with a @samp{@@} like in @samp{@@<b>bold text@@</b>}.
1778 Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and
1779 @samp{&gt;} in HTML export.
1780 @end itemize
1782 If these conversions conflict with your habits of typing ASCII text,
1783 they can all be turned off with corresponding variables.
1785 @node Export options, Comment lines, HTML formatting, Exporting
1786 @section Export options
1787 @cindex options, for export
1789 The exporter recognizes special lines in the buffer which provide
1790 additional information.  These lines may be put anywhere in the file.
1791 The whole set of lines can be inserted into the buffer with @kbd{C-c
1792 C-x t}.  For individual lines, a good way to make sure the keyword is
1793 correct it to type @samp{#+} and then use @kbd{M-@key{TAB}} completion
1794 (@pxref{Completion}). 
1796 @example
1797 #+TITLE:     the title to be shown (default is the buffer name)
1798 #+AUTHOR:    the author (default taken from @code{user-full-name})
1799 #+EMAIL:     his/her email address (default from @code{user-mail-address})
1800 #+LANGUAGE:  language for HTML, e.g. @samp{en} (@code{org-export-default-language})
1801 #+TEXT:      Some descriptive text to be inserted at the beginning.
1802 #+TEXT:      Several lines may be given.
1803 #+OPTIONS:   H:2  num:t  toc:t  \n:nil  @:t  ::t  |:t  ^:t  *:nil  TeX:t
1804 @end example
1805 @noindent
1806 The OPTIONS line is a compact form to specify export settings.  Here
1807 you can
1808 @cindex headline levels
1809 @cindex section-numbers
1810 @cindex table of contents
1811 @cindex linebreak-preservation
1812 @cindex quoted html tags
1813 @cindex fixed-width sections
1814 @cindex tables
1815 @cindex @TeX{}-like syntax for sub- and superscripts
1816 @cindex emphasized text
1817 @cindex @TeX{} macros
1818 @example
1819 H:      @r{set the number of headline levels for export}
1820 num:    @r{turn on/off section-numbers}
1821 toc:    @r{turn on/off table of contents}
1822 \n:     @r{turn on/off linebreak-preservation}
1823 @@:      @r{turn on/off quoted html tags}
1824 ::      @r{turn on/off fixed-width sections}
1825 |:      @r{turn on/off tables}
1826 ^:      @r{turn on/off @TeX{}-like syntax for sub- and superscripts.}
1827 *:      @r{turn on/off emphasized text (bold, italic, underlined)}
1828 TeX:    @r{turn on/off @TeX{} macros}
1829 @end example
1831 @node Comment lines,  , Export options, Exporting
1832 @section Comment lines
1833 @cindex comment lines
1834 @cindex exporting, not
1836 Lines starting with @samp{#} in column zero are treated as comments
1837 and will never be exported.  Also entire subtrees starting with the
1838 word @samp{COMMENT} will never be exported.  Finally, any text before
1839 the first headline will not be exported either.
1841 @table @kbd
1842 @kindex C-c ;
1843 @item C-c ;
1844 Toggle the COMMENT keyword at the beginning of an entry.
1845 @end table
1847 @node Miscellaneous, Index, Exporting, Top
1848 @chapter Miscellaneous
1850 @menu
1851 * Completion::                  M-TAB knows what you need
1852 * Customization::               Adapting Org-mode to your taste
1853 * Tips and Tricks::             An author-imposed FAQ, sort of
1854 * Interaction::                 Other Emacs packages
1855 * Acknowledgments::             These people provided feedback and more
1856 * Bugs::                        Things which do not work perfectly
1857 @end menu
1859 @node Completion, Customization, Miscellaneous, Miscellaneous
1860 @section Completion
1861 @cindex complete @TeX{} symbols
1862 @cindex complete TODO keywords
1863 @cindex complete dictionary words
1864 @cindex complete option keywords
1866 Org-mode supports in-buffer completion.  This type of completion does
1867 not make use of the minibuffer.  You simply type a few letters into
1868 the buffer and use the key to complete text right there.
1870 @table @kbd
1871 @kindex M-@key{TAB}
1872 @item M-@key{TAB}
1873 Complete word at point
1874 @itemize @bullet
1875 @item
1876 At the beginning of a headline, complete TODO keywords.
1877 @item
1878 After @samp{\}, complete @TeX{} symbols supported by the exporter.
1879 @item
1880 After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
1881 @samp{OPTIONS} which set file-specific options for Org-mode.  When the
1882 option keyword is already complete, pressing @kbd{M-@key{TAB}} again
1883 will insert example settings for this keyword.
1884 @item
1885 Elsewhere, complete dictionary words using ispell.
1886 @end itemize
1887 @end table
1889 @node Customization, Tips and Tricks, Completion, Miscellaneous
1890 @section Customization
1891 @cindex customization
1892 @cindex options, for customization
1893 @cindex variables, for customization
1895 There is a large number of variables which can be used to customize
1896 Org-mode.  For the sake of compactness of the manual, we are not
1897 describing the variables here.  For an overview of customization
1898 variables, use @kbd{M-x org-customize}.  Or select @code{Browse Org
1899 Group} from the @code{Org->Customization} menu.
1901 @node Tips and Tricks, Interaction, Customization, Miscellaneous
1902 @section Tips and Tricks
1904 @itemize @bullet
1905 @cindex README files
1906 @item
1907 I find Org-mode very useful for the many @file{README} files I have
1908 scattered through my directories.  So I turn on @file{org-mode} for
1909 all @file{README} files with
1911 @example
1912 (add-to-list 'auto-mode-alist '("README$" . org-mode))
1913 @end example
1915 @ignore
1916 @cindex files, adding automatically
1917 @item
1918 If you would like to add all org files you ever create to the list of
1919 agenda files@footnote{Think twice.  Do you @emph{really} want this?},
1920 you could do so with
1922 @lisp
1923 (add-hook 'org-mode-hook 'org-add-file)
1924 @end lisp
1926 If you would like to add only a selection, for example everything
1927 except the @file{README} files, this could be achieved in the
1928 following way:
1930 @lisp
1931 (add-hook 'org-mode-hook
1932           (lambda ()
1933              (or (string-match "README\\'" (buffer-file-name))
1934                  (org-add-file))))
1935 @end lisp
1936 @end ignore
1938 @cindex @code{make-indirect-buffer}
1939 @cindex indirect buffers
1940 @item
1941 It can be useful to have two different windows showing the same
1942 Org-mode file.  However, a problem here is that changes to the
1943 visibility in one window immediately affect the other window.  On
1944 Emacs (not on XEmacs because it uses the old outline-mode) a way out
1945 is the use of @emph{indirect buffers}, which visit the same file, but
1946 have separate settings, also for outline visibility.  See the
1947 documentation on the command @code{make-indirect-buffer}.
1949 @cindex URL, paste into buffer
1950 @item
1951 Paste URLs into Org-mode whenever this seems useful.  For example, if
1952 you are writing notes about a paper which is available on the web, put
1953 the corresponding URL there and a direct look at the paper is only a
1954 mouse click away.  If you have a local copy of the paper, use a
1955 file:path link.
1957 @cindex headline levels, for export
1958 @item
1959 If you plan to use ASCII or HTML export, make sure things you want to
1960 be exported as item lists are level 4 at least, even if that does mean
1961 there is a level jump.  For example
1963 @example
1964 * Todays top priorities
1965 **** TODO write a letter to xyz
1966 **** TODO Finish the paper
1967 **** Pick up kids at the school
1968 @end example
1970 Alternatively, if you need a specific value for the heading/item
1971 transition in a particular file, use the @samp{+OPTIONS} line to
1972 configure the @samp{H} switch.
1974 @example
1975 +OPTIONS:   H:2; ...
1976 @end example
1978 @cindex exporting a subtree
1979 @item
1980 If you want to export a subtree, mark the subtree as region and then
1981 export.  Marking can be done with @kbd{C-c @@ C-x C-x}, for example.
1983 @cindex table, empty template
1984 @item
1985 To insert an empty table template, just type @samp{|-} and use
1986 @key{TAB}.
1988 @item
1989 In a table, to add a new column at the end, just type some text
1990 anywhere after the final @samp{|}.  Upon the next re-align, a new
1991 column will be created.
1993 @item
1994 In tables, @key{TAB} creates new rows before horizontal separator lines.  If
1995 the cursor is at @samp{Age} in the following table,
1997 @example
1998 | Name  | Phone | Age |
1999 |-------+-------+-----|
2000 |       |       |     |
2001 @end example
2003 the next @key{TAB} would create a second header line.  If you want
2004 instead to go to the first empty field below the horizontal line,
2005 press @key{down} (to get on the separator line) and then @key{TAB}.
2007 @cindex indentation, of tables
2008 @item
2009 To change the indentation of a table, just change the first line and
2010 realign with @key{TAB}.
2012 @end itemize
2015 @node Interaction, Acknowledgments, Tips and Tricks, Miscellaneous
2016 @section Interaction with other packages
2017 @cindex packages, interaction with other
2018 @cindex @file{planner.el}
2019 @cindex @file{remember.el}
2020 @cindex @file{table.el}
2021 @file{Org.el} can cooperate with the following packages:
2023 @table @asis
2024 @cindex @file{remember.el}
2025 @item @file{remember.el} by John Wiegley
2026 Org mode cooperates with remember, see @ref{Remember}.
2027 @cindex @file{plannner.el}
2028 @item @file{planner.el} by John Wiegley
2029 Planner is another tool to plan work and keep track of tasks.  Planner
2030 uses a multi-file approach with project pages and day pages.  Is based
2031 on Emacs-Wiki.  It can be useful to display the agenda entries
2032 resulting from org files in day-pages of the planner.  This can be
2033 done through the diary of the calendar: Integrate org files into the
2034 diary as described above, and then turn on the diary support of
2035 planner.
2036 @cindex @file{table.el}
2037 @item @file{table.el} by Takaaki Ota
2038 Org mode cooperates with table.el, see @ref{table.el}.
2039 @end table
2041 @c EmacsWiki
2042 @c organizer-mode
2043 @c todo-mode
2044 @c records mode
2046 @page  @c FIXME
2048 @node Acknowledgments, Bugs, Interaction, Miscellaneous
2049 @section Acknowledgments
2050 @cindex acknowledgments
2052 Org-mode was written by Carsten Dominik, who still maintains it at the
2053 Org-mode homepage
2054 @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.  The following
2055 people have helped the development along with ideas, suggestions and
2056 patches. 
2058 @itemize @bullet
2059 @item
2060 Matthias Rempe (Oelde) provided ideas and suggestions, a patch
2061 introducing Windows NT/2000 support, and quality control.
2062 @item
2063 Kevin Rogers contributed code to access VM files on remote hosts.
2064 @item
2065 Juergen Vollmer contributed code generating the table of contents
2066 in HTML output, and other export improvements.
2067 @item
2068 Christian Egli converted the documentation into TeXInfo format.  He
2069 also showed me his plans for a multifile summary for Org-mode. Some of
2070 his ideas have found their way into the agenda.
2071 @item 
2072 Philip Rooke created the Org-mode reference card and did some
2073 beta-testing.
2074 @item
2075 Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
2076 @file{organizer-mode.el}.
2077 @item
2078 Scheduling TODO items was inspired by John Wiegley's @file{planner.el}.
2079 @item
2080 Sacha Chua, the current maintainer of Planner suggested to take some
2081 linking code from Planner, which I did (for RMAIL and Wanderlust).
2082 @item
2083 Oliver Oppitz sent several useful suggestions.
2084 @item
2085 Carsten Wimmer suggested some changes and helped fix a bug in linking
2086 to GNUS.
2087 @end itemize
2089 @node Bugs,  , Acknowledgments, Miscellaneous
2090 @section Bugs
2091 @cindex bugs
2093 Here is a list of things which should work differently, but which I
2094 have found too hard to fix.
2096 @itemize @bullet
2097 @item 
2098 When the application called by @kbd{C-c C-o} to open a file link fails
2099 (for example because the application does not exits or refuses to open
2100 the file), it does so silently.  No error message is displayed.
2101 @item 
2102 Under XEmacs, if Org-mode entries are included into the diary, it is
2103 not possible to jump back from the diary to the org file.  Apparently,
2104 the text properties are lost when the fancy-diary-display is used.
2105 However, from Org-mode's agenda (created with @kbd{C-c C-r} or
2106 @kbd{M-x org-agenda}), things do work correctly.
2107 @item 
2108 Linux should also have a default viewer application, using mailcap.
2109 Maybe we can use GNUS or VM mime code?  Or dired's guessing commands?
2110 Any hints (or even patches) are appreciated.
2111 @item 
2112 When you write @samp{x = a /b/ c}, b will be exported in italics.
2113 @item 
2114 The exporters work well, but could be made more efficient.
2115 @end itemize
2117 @node Index, Key Index, Miscellaneous, Top
2118 @chapter Index
2120 @printindex cp
2122 @node Key Index,  , Index, Top
2123 @chapter Key Index
2125 @printindex ky
2127 @bye
2130 @ignore
2131    arch-tag: 7893d1fe-cc57-4d13-b5e5-f494a1bcc7ac
2132 @end ignore