(latexenc-find-file-coding-system): Don't inherit the EOL part of the
[emacs.git] / man / org.texi
blob4f3576d57c46f063c0ee1336b2eec3a6d1467664
1 \input texinfo
2 @c %**start of header
3 @c @setfilename org
4 @setfilename ../info/org
5 @settitle Org Mode Manual
7 @set VERSION 3.10
8 @set DATE May 2005
10 @dircategory Emacs
11 @direntry
12 * Org Mode: (org).      Outline-based notes management and organizer 
13 @end direntry
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
23 @c Macro definitions
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
35 @copying
36 This manual is for Org-mode (version @value{VERSION}).
38 Copyright @copyright{} 2004, 2005 Free Software Foundation
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.''
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
55 @titlepage
56 @title Org Mode Manual
58 @subtitle Release @value{VERSION}
59 @author by Carsten Dominik
61 @c The following two commands start the copyright page.
62 @page
63 @vskip 0pt plus 1filll
64 @insertcopying
65 @end titlepage
67 @c Output the table of contents at the beginning.
68 @contents
70 @ifnottex
71 @node Top, Introduction, (dir), (dir)
72 @top Org Mode Manual
74 @insertcopying
75 @end ifnottex
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
90 @detailmenu
91  --- The Detailed Node Listing ---
93 Introduction
95 * Summary::                     Brief summary of what Org-mode does
96 * Installation and Activation::  How to install Org-mode
97 * Feedback::                    Bug reportes, ideas, patches etc.
99 Document Structure
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 * Sparse trees::                Matches embedded in context
108 Tables
110 * Built-in table editor::       Simple tables
111 * table.el::                    Complex tables
112 * orgtbl-mode::                 The table editor as minor mode
114 Hyperlinks
116 * Links::                       URL-like links to the world
117 * Remember::                    Org-trees store quick notes
119 TODO items
121 * TODO basics::                 Marking and displaying TODO entries
122 * TODO extensions::             Workflow and assignments
123 * Priorities::                  Some things are more important than others
125 Extended use of TODO keywords
127 * Workflow states::             From TODO to DONE in steps
128 * TODO types::                  I do this, Fred the rest
129 * Per file keywords::           Different files, different requirements
131 Timestamps
133 * Time stamps::                 Assigning a time to a tree entry
134 * Creating timestamps::         Commands which insert timestamps
136 Timeline and Agenda
138 * Timeline::                    Time-sorted view for single file
139 * Agenda::                      Your weekly planner
140 * Agenda commands::             Remote editing of org trees
141 * Calendar/Diary integration::  Integrating Anniversaries and more
143 Calendar/Diary integration
145 * Diary to agenda::             Agenda incorporates the diary
146 * Agenda to diary::             Diary incorporates the agenda
148 Exporting
150 * Export commands::             Commands which export and display
151 * HTML formatting::             Interpretation of the buffer content
152 * Export options::              How to influence exports
153 * Comment lines::               Lines which will not be exported
155 Miscellaneous
157 * Completion::                  M-TAB knows what you need
158 * Customization::               Adapting Org-mode to your taste
159 * FAQ::                         Frequently asked questions
160 * Interaction::                 Other Emacs packages
161 * Acknowledgments::             These people provided feedback and more
162 * Bugs::                        Things which do not work perfectly
164 @end detailmenu
165 @end menu
167 @node Introduction, Document Structure, Top, Top
168 @chapter Introduction
169 @cindex introduction
171 @menu
172 * Summary::                     Brief summary of what Org-mode does
173 * Installation and Activation::  How to install Org-mode
174 * Feedback::                    Bug reportes, ideas, patches etc.
175 @end menu
177 @node Summary, Installation and Activation, Introduction, Introduction
178 @section Summary
179 @cindex summary
181 Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing
182 project planning with a fast and effective plain-text system.
184 Org-mode develops organizational tasks around NOTES files that contain
185 information about projects as plain text.  Org-mode is implemented on
186 top of outline-mode, which makes it possible to keep the content of
187 large files well structured.  Visibility cycling and structure editing
188 help to work with the tree.  Tables are easily created with a built-in
189 table editor.  Org-mode supports ToDo items, deadlines, time stamps,
190 and scheduling.  It dynamically compiles entries into an agenda that
191 utilizes and smoothly integrates much of the Emacs calendar and diary.
192 Plain text URL-like links connect to websites, emails, usenet
193 messages, BBDB entries, and any files related to the projects.  For
194 printing and sharing of notes, an Org-mode file can be exported as a
195 structured ASCII file, or as HTML.
197 Org-mode keeps simple things simple.  Not every outline branch needs
198 to be an action item, not every action item needs to have priority or
199 scheduling information associated with it.  Org-mode can be used on
200 different levels and in different ways, for example
202 @example
203 @r{@bullet{} as an outline extension with visibility cycling and structure editing}
204 @r{@bullet{} as an ASCII system and table editor to take structured notes}
205 @r{@bullet{} as a simple hypertext system, with HTML export}
206 @r{@bullet{} as a TODO list editor}
207 @r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
208 @end example
210 The Org-mode table editor can be integrated into any major mode by
211 activating the minor Orgtbl-mode.
213 There is a website for Org-mode which provides links to the newest
214 version of Org-mode, as well as additional information, screen shots
215 and example files.  This page is located at
216 @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
218 @page
220 @node Installation and Activation, Feedback, Summary, Introduction
221 @section Installation and Activation
222 @cindex installation
223 @cindex autoload
224 @cindex global keybindings
225 @cindex keybindings, global
227 If Org-mode is part of the Emacs distribution or an XEmacs package,
228 you only need to copy the following lines to your @file{.emacs} file.
229 The last two lines define @emph{global} keys for the commands
230 @command{org-store-link} and @command{org-agenda} - please choose
231 suitable keys yourself.
233 @lisp
234 ;; The following lines are always needed.  Choose your own keys.
235 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
236 (define-key global-map "\C-cl" 'org-store-link)
237 (define-key global-map "\C-ca" 'org-agenda)
238 @end lisp
240 If you have downloaded Org-mode from the Web, you must byte-compile
241 @file{org.el} and put it on your load path.  In addition to the Emacs
242 Lisp lines above, you also need to add the following lines to
243 @file{.emacs}:
245 @lisp
246 ;; These lines only if org-mode is not part of the X/Emacs distribution.
247 (autoload 'org-mode "org" "Org mode" t)
248 (autoload 'org-diary "org" "Diary entries from Org mode")
249 (autoload 'org-agenda "org" "Multi-file agenda from Org mode" t)
250 (autoload 'org-store-link "org" "Store a link to the current location" t)
251 (autoload 'orgtbl-mode "org" "Org tables as a minor mode" t)
252 (autoload 'turn-on-orgtbl "org" "Org tables as a minor mode")
253 @end lisp
255 @cindex org-mode, turning on
256 With this setup, all files with extension @samp{.org} will be put into
257 Org-mode.  As an alternative, make the first line of a file look like
258 this:
260 @example
261 MY PROJECTS    -*- mode: org; -*-
262 @end example
264 @noindent which will select Org-mode for this buffer no matter what
265 the file's name is.  See also the variable
266 @code{org-insert-mode-line-in-empty-file'}. 
268 @node Feedback,  , Installation and Activation, Introduction
269 @section Feedback
270 @cindex feedback
271 @cindex bug reports
272 @cindex maintainer
273 @cindex author
275 If you find problems with Org-mode, or if you have questions, remarks,
276 or ideas about it, please contact the maintainer Carsten Dominik at
277 @value{MAINTAINEREMAIL}.
279 For bug reports, please provide as much information as possible,
280 including the version information of Emacs (@kbd{C-h v emacs-version
281 @key{RET}}) and Org-mode (@kbd{M-x org-version}), as well as the
282 Org-mode related setup in @file{.emacs}.  If an error occurs, a
283 traceback can be very useful.  Often a small example file helps, along
284 with clear information about:
285 @enumerate
286 @item What exactly did you do?
287 @item What did you expect to happen?
288 @item What happened instead?
289 @end enumerate
290 @noindent Thanks for helping to improve this mode.
292 @node Document Structure, Tables, Introduction, Top
293 @chapter Document Structure
294 @cindex document structure
295 @cindex structure of document
297 Org-mode is based on outline mode and provides flexible commands to
298 edit the structure of the document.
300 @menu
301 * Outlines::                    Org-mode is based on outline-mode
302 * Headlines::                   How to typeset org-tree headlines
303 * Visibility cycling::          Show ad hide, much simplified
304 * Motion::                      Jumping to other headlines
305 * Structure editing::           Changing sequence and level of headlines
306 * Sparse trees::                Matches embedded in context
307 @end menu
309 @node Outlines, Headlines, Document Structure, Document Structure
310 @section Outlines
311 @cindex outlines
312 @cindex outline-mode
314 Org-mode is implemented on top of outline-mode.  Outlines allow to
315 organize a document in a hierarchical structure, which (at least for
316 me) is the best representation of notes and thoughts.  Overview over
317 this structure is achieved by folding (hiding) large parts of the
318 document to show only the general document structure and the parts
319 currently being worked on.  Org-mode greatly simplifies the use of
320 outlines by compressing the entire show/hide functionality into a
321 single command @command{org-cycle}, which is bound to the @key{TAB}
322 key.
324 @node Headlines, Visibility cycling, Outlines, Document Structure
325 @section Headlines
326 @cindex headlines
327 @cindex outline tree
329 Headlines define the structure of an outline tree.  The Headlines in
330 Org-mode start with one or more stars, for example
332 @example
333 * Top level headline
334 ** Second level
335 *** 3rd level
336     some text
337 *** 3rd level
338     more text
339 * Another top level headline
340 @end example
342 @node Visibility cycling, Motion, Headlines, Document Structure
343 @section Visibility cycling
344 @cindex visibility cycling
345 @cindex trees, visibility
347 Outlines make it possible to hide parts of the text in the buffer.
348 Org-mode uses a single command bound to the @key{TAB} key to change
349 the visibility in the buffer.
351 @cindex subtree visibility states
352 @cindex folded, subtree visibility state
353 @cindex children, subtree visibility state
354 @cindex subtree, subtree visibility state
355 @table @kbd
356 @kindex @key{TAB}
357 @item @key{TAB}
358 Rotate current subtree between the states
359 @example
360 ,-> FOLDED -> CHILDREN -> SUBTREE --.
361 '-----------------------------------'
362 @end example
363 At the beginning of the buffer (or when called with @kbd{C-u}), this does
364 the same as the command @kbd{S-@key{TAB}} below.
366 @cindex global visibility states
367 @cindex overview, global visibility state
368 @cindex contents, global visibility state
369 @cindex show all, global visibility state
370 @kindex S-@key{TAB}
371 @item S-@key{TAB}
372 Rotate the entire buffer between the states
373 @example
374 ,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
375 '--------------------------------------'
376 @end example
377 Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field.
379 @cindex show all, command
380 @kindex C-c C-a
381 @item C-c C-a
382 Show all.
383 @end table
385 When Emacs firsts visits a Org-mode file, the global state is set to
386 OVERVIEW, i.e. only the top level headlines are visible.  This can be
387 configured through the variable @code{org-startup-folded}, or on a
388 per-file basis by adding one of the following lines anywhere in the
389 buffer:
391 @example
392 #+STARTUP: fold
393 #+STARTUP: nofold
394 #+STARTUP: content
395 @end example
397 @node Motion, Structure editing, Visibility cycling, Document Structure
398 @section Motion
399 @cindex motion, between headlines
400 @cindex jumping, to headlines
401 The following commands jump to other headlines in the buffer.
403 @table @kbd
404 @kindex C-c C-n
405 @item C-c C-n
406 Next heading.
407 @kindex C-c C-p
408 @item C-c C-p
409 Previous heading.
410 @kindex C-c C-f
411 @item C-c C-f
412 Next heading same level.
413 @kindex C-c C-b
414 @item C-c C-b
415 Previous heading same level.
416 @kindex C-c C-u
417 @item C-c C-u
418 Backward to higher level heading.
419 @kindex C-c C-j
420 @item C-c C-j
421 Jump to a different place without changing the current outline
422 visibility.  Shows the document structure in a temporary buffer, where
423 you can use visibility cycling (@key{TAB}) to find your destination.
424 After pressing @key{RET}, the cursor moves to the selected location in
425 the original buffer, and the headings hierarchy above it is made
426 visible.
427 @end table
429 @node Structure editing, Sparse trees, Motion, Document Structure
430 @section Structure editing
431 @cindex structure editing
432 @cindex headline, promotion and demotion
433 @cindex promotion, of subtrees
434 @cindex demotion, of subtrees
435 @cindex subtree, cut and paste
436 @cindex pasting, subtrees
437 @cindex cutting, subtrees
438 @cindex copying, subtrees
440 @table @kbd
441 @kindex M-@key{RET}
442 @item M-@key{RET}
443 Insert new heading with same level as current
444 @kindex M-S-@key{RET}
445 @item M-S-@key{RET}
446 Insert new TODO entry with same level as current heading.
447 @kindex M-@key{left}
448 @item M-@key{left}
449 Promote current heading by one level
450 @kindex M-@key{right}
451 @item M-@key{right}
452 Demote current heading by one level
453 @kindex M-S-@key{left}
454 @item M-S-@key{left}
455 Promote the current subtree by one level
456 @kindex M-S-@key{right}
457 @item M-S-@key{right}
458 Demote the current subtree by one level
459 @kindex M-S-@key{up}
460 @item M-S-@key{up}
461 Move subtree up (swap with previous subtree of same level)
462 @kindex M-S-@key{down}
463 @item M-S-@key{down}
464 Move subtree down (swap with next subtree of same level)
465 @kindex C-c C-h C-w
466 @item C-c C-h C-w
467 Kill subtree, i.e. remove it from buffer but save in kill ring.
468 @kindex C-c C-h M-w
469 @item C-c C-h M-w
470 Copy subtree to kill ring.
471 @kindex C-c C-h C-y
472 @item C-c C-h C-y
473 Yank subtree from kill ring.  This does modify the level of the subtree to
474 make sure the tree fits in nicely at the yank position.  The yank
475 level can also be specified with a prefix arg, or by yanking after a
476 headline marker like @samp{****}.
477 @end table
479 @cindex region, active
480 @cindex active region
481 @cindex transient-mark-mode
482 When there is an active region (transient-mark-mode), promotion and
483 demotion work on all headlines in the region.  To select a region of
484 headlines, it is best to place both point and mark at the beginning of a
485 line, mark at the beginning of the first headline, and point at the line
486 just after the last headline to change.  Note that when the cursor is
487 inside a table (@pxref{Tables}), the Meta-Cursor keys have different
488 functionality.
490 @node Sparse trees,  , Structure editing, Document Structure
491 @section Sparse trees
492 @cindex sparse trees
493 @cindex trees, sparse
494 @cindex folding, sparse trees
495 @cindex occur, command
497 An important feature of Org-mode is the ability to construct
498 @emph{sparse trees} for selected information in an outline tree.  A
499 sparse tree means that the entire document is folded as much as
500 possible, but the selected information is made visible along with the
501 headline structure above it@footnote{See also the variable
502 @code{org-show-following-heading}}.  Just try it out and you will see
503 immediately how it works.
505 Org-mode contains several commands creating such trees.  The most
506 basic one is @command{org-occur}:
508 @table @kbd
509 @kindex C-c /
510 @item C-c /
511 Occur.  Prompts for a regexp and shows a sparse tree with all matches.
512 If the match is in a headline, the headline is made visible.  If the
513 match is in the body of an entry, headline and body are made visible.
514 In order to provide minimal context, also the full hierarchy of
515 headlines above the match is shown, as well as the headline following
516 the match.
517 @end table
519 Other commands are using this feature as well.  For example @kbd{C-c
520 C-v} creates a sparse TODO tree (@pxref{TODO basics}).
522 @kindex C-c C-x v
523 @cindex printing sparse trees
524 @cindex visible text, printing
525 To print a sparse tree, you can use the Emacs command
526 @code{ps-print-buffer-with-faces} which does not print invisible parts
527 of the document @footnote{this does not work under XEmacs, because
528 XEmacs uses selective display for outlining, not text properties}.
529 Or you can use the command @kbd{C-c C-x v} to copy the visible part of
530 the document to another file (extension @file{.txt}) which then can be
531 printed in any desired way.
533 @node Tables, Hyperlinks, Document Structure, Top
534 @chapter Tables
535 @cindex tables
537 For taking notes, tables are an essential tool because they allow
538 immediate and clear structuring of data.  Org-mode has a very fast and
539 intuitive table editor built-in.  More complex tables can be created
540 with the Emacs table.el package.
542 @menu
543 * Built-in table editor::       Simple tables
544 * table.el::                    Complex tables
545 * orgtbl-mode::                 The table editor as minor mode
546 @end menu
548 @node Built-in table editor, table.el, Tables, Tables
549 @section The built-in table editor
550 @cindex table editor, builtin
552 Org-mode makes it easy to format tables in plain ASCII.  Any line with
553 @samp{|} as the first non-white character is considered part of a
554 table.  @samp{|} is also the column separator.  A table might look
555 like this:
557 @example
558 | Name  | Phone | Age |
559 |-------+-------+-----|
560 | Peter |  1234 |  17 |
561 | Anna  |  4321 |  25 |
562 @end example
564 A table is re-aligned automatically each time you press @key{TAB} or
565 @key{RET} inside the table.  @key{TAB} also moves to the next field
566 (@key{RET} to the next row) and creates new table rows at the end of the
567 table or before horizontal lines.  The indentation of the table is set
568 by the first line.  Any line starting with @samp{|-} is considered as a
569 horizontal separator line and will be expanded on the next re-align to
570 span the whole table width.  So, to create the above table, you would
571 only type
573 @example
574 |Name|Phone|Age
576 @end example
578 @noindent and then press @key{TAB} to align the table and start filling in
579 fields.
581 @table @kbd
582 @tsubheading{Creation and conversion}
583 @kindex C-c C-c
584 @item C-c C-c
585 Recognize @file{table.el} table.  Works when the cursor is in a
586 table.el table
588 @kindex C-c C-c
589 @item C-c C-c
590 Convert region to table.  Works when the cursor is not in an existing
591 table, and when there is a region defined.  If every line contains at
592 least one TAB character, the function assumes that the material is tab
593 separated.  If not, lines are split at whitespace into fields.  You
594 can use a prefix argument to indicate how many consecutive spaces are
595 at least required to indicate a field separator (default: just one).
597 @item M-x org-table-create
598 Creates an empty Org-mode table.  However, it is much easier to just
599 start typing, like @kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}
601 @tsubheading{Re-aligning and field motion}
602 @kindex C-c C-c
603 @item C-c C-c
604 Re-align the table without moving the cursor.
606 @kindex @key{TAB}
607 @item @key{TAB}
608 Re-align the table, move to the next field.  Creates a new row if
609 necessary.
611 @kindex S-@key{TAB}
612 @item S-@key{TAB}
613 Move to previous field.
615 @kindex @key{RET}
616 @item @key{RET}
617 Re-align the table and move down to next row.  Creates a new row if
618 necessary.  At the beginning or end of a line, @key{RET} still does
619 NEWLINE, so it can be used to split a table.
621 @tsubheading{Column and row editing}
622 @kindex M-@key{left}
623 @kindex M-@key{right}
624 @item M-@key{left}
625 @itemx M-@key{right}
626 Move the current column left/right
628 @kindex M-S-@key{left}
629 @item M-S-@key{left}
630 Kill the current column.
632 @kindex M-S-@key{right}
633 @item M-S-@key{right}
634 Insert a new column to the left of the cursor position.
636 @kindex M-@key{up}
637 @kindex M-@key{down}
638 @item M-@key{up}
639 @itemx M-@key{down}
640 Move the current row up/down
642 @kindex M-S-@key{up}
643 @item M-S-@key{up}
644 Kill the current row or horizontal line.
646 @kindex M-S-@key{down}
647 @item M-S-@key{down}
648 Insert a new row above (with arg: below) the current row.
650 @kindex C-c -
651 @item C-c -
652 Insert a horizontal line below current row. With prefix arg, line is
653 created above the current line.
655 @tsubheading{Regions}
656 @kindex C-c C-h M-w
657 @item C-c C-h M-w
658 Copy an rectangular region from a table to a special clipboard.  Point
659 and mark determine edge fields of the rectangle.  The process ignores
660 horizontal separator lines.
661 @kindex C-c C-h C-w
662 @item C-c C-h C-w
663 Copy an rectangular region from a table to a special clipboard, and
664 blank all fields in the rectangle.
665 @kindex C-c C-h C-y
666 @item C-c C-h C-y
667 Paste a rectangular region into a table.
668 The upper right corner ends up in the current field.  All involved fields
669 will be overwritten.  If the rectangle does not fit into the present table,
670 the table is enlarged as needed.  The process ignores horizontal separator
671 lines.
672 @kindex C-c C-q
673 @item C-c C-q
674 Wrap several fields in a column like a paragraph.  If there is an active
675 region, and both point and mark are in the same column, the text in the
676 column is wrapped to minimum width for the given number of lines.  A
677 prefix ARG may be used to change the number of desired lines.  If there
678 is no region, the current field is split at the cursor position and the
679 text fragment to the right of the cursor is prepended to the field one
680 line down. If there is no region, but you specify a prefix ARG, the
681 current field gets blank, and the content is appended to the field
682 above.
684 @tsubheading{Calculations}
685 @kindex C-c ?
686 @item C-c ?
687 Which table column is the cursor in?  Displays number >0 in echo
688 area. 
690 @cindex region, active
691 @cindex active region
692 @cindex transient-mark-mode
693 @kindex C-c +
694 @item C-c +
695 Sum the numbers in the current column, or in the rectangle defined by
696 the active region.  The result is displayed in the echo area and can
697 be inserted with @kbd{C-y}.
699 @kindex S-@key{RET}         
700 @item S-@key{RET}         
701 When current field is empty, copy from first non-empty field above.
702 When not empty, copy current field down to next row and move cursor
703 along with it.  Depending on the variable
704 @code{org-table-copy-increment}, integer field values will be
705 incremented during copy.
707 @cindex formula, in tables
708 @cindex calculations, in tables
709 @kindex C-c =
710 @item C-c =
711 Replace current field with the result of a formula.  Requires the
712 Emacs calc package.  The formula can access the current field with
713 @samp{$}, and the other fields in the current row
714 with @samp{$1}, @samp{$2},...  For details see the documentation of the
715 command @command{org-table-eval-formula}.
717 @tsubheading{Miscellaneous}
718 @kindex C-c |
719 @item C-c |
720 Toggle the visibility of vertical lines in tables.  The lines are
721 still there, only made invisible with a text property.  Any @samp{|}
722 added by hand will become invisible on the next align.
723 Typographically it is good style to have no vertical lines in tables.
725 @item M-x org-table-import
726 Import a file as a table.  The table should be TAB- or whitespace
727 separated.  Useful for example to import an Excel table or data from a
728 database, because these programs generally can write TAB-separated text
729 files.  This command works by inserting the file into the buffer and
730 then converting the region to a table.  Any prefix argument is passed on
731 to the converter, which uses it to determine the separator.
733 @item M-x org-table-export
734 Export the table as a TAB-separated file.  Useful for data exchange with
735 for example Excel or database programs.
737 @end table
739 If you don't like the automatic table editor because it gets into your
740 way in lines which you would like to start with @samp{|}, you can turn
741 it off with
742 @lisp
743 (setq org-enable-table-editor nil)
744 @end lisp
745 @noindent The only table command which then still works is
746 @kbd{C-c C-c} to do a manual re-align.
748 @node table.el, orgtbl-mode, Built-in table editor, Tables
749 @section The @file{table.el} package
750 @kindex C-c C-c
751 @cindex table editor, table.el
752 @cindex @file{table.el}
754 More complex ASCII tables (with automatic line wrapping, column- and
755 row-spanning, and alignment) can be created using the Emacs table
756 package by Takaaki Ota (@uref{http://sourceforge.net/projects/table}).
757 When @key{TAB} or @kbd{C-c C-c} is pressed in such a table, Org-mode
758 will call @command{table-recognize-table} and move the cursor into the
759 table.  Inside a table, the keymap of Org-mode is inactive.  In order
760 to execute org-related commands, leave the table.
762 @table @kbd
763 @kindex C-c #
764 @item C-c #
765 Insert a table.el table.  If there is already a table at point, this
766 command converts it between the table.el format and the Org-mode
767 format.  See the documentation string of the command
768 @code{org-convert-table} for the restrictions under which this is
769 possible.
770 @end table
772 @node orgtbl-mode,  , table.el, Tables
773 @section The Orgtbl minor mode
774 @cindex orgtbl-mode
775 @cindex Minor mode for tables
777 If you like the intuitive way the Org-mode table editor works, you
778 might want to use it also in other modes like text-mode or mail-mode.
779 The minor mode Orgtbl-mode makes this possible.  You can always toggle
780 the mode with @kbd{M-x orgtbl-mode}.  To turn it on by default, for
781 example in mail mode, use
782 @lisp
783 (add-hook 'mail-mode-hook 'turn-on-orgtbl)
784 @end lisp
786 @node Hyperlinks, TODO items, Tables, Top
787 @chapter Hyperlinks
788 @cindex hyperlinks
790 Just like HMTL, Org-mode provides links to other files, usenet
791 articles, emails and much more.
793 @menu
794 * Links::                       URL-like links to the world
795 * Remember::                    Org-trees store quick notes
796 @end menu
798 @node Links, Remember, Hyperlinks, Hyperlinks
799 @section Links
800 @cindex links
801 @cindex GNUS links
802 @cindex BBDB links
803 @cindex VM links
804 @cindex RMAIL links
805 @cindex WANDERLUST links
806 @cindex USENET links
807 @cindex SHELL links
809 Org-mode supports links to files, websites, usenet and email messages;
810 and BBDB database entries.  Links are just plain-text URL-like locators.
811 The following list shows examples for each link type.
813 @example
814 http://www.astro.uva.nl/~dominik         @r{on the web}
815 file:/home/dominik/images/jupiter.jpg    @r{file, absolute path}
816 file:papers/last.pdf                     @r{file, relative path}
817 file:~/code/main.c:255                   @r{file, with line number}
818 news:comp.emacs                          @r{Usenet link}
819 mailto:adent@@galaxy.net                  @r{Mail link}
820 vm:folder                                @r{VM folder link}
821 vm:folder#id                             @r{VM message link}
822 vm://myself@@some.where.org/folder#id     @r{VM on remote machine}
823 wl:folder                                @r{WANDERLUST folder link}
824 wl:folder#id                             @r{WANDERLUST message link}
825 rmail:folder                             @r{RMAIL folder link}
826 rmail:folder#id                          @r{RMAIL message link}
827 gnus:group                               @r{GNUS group link}
828 gnus:group#id                            @r{GNUS article link}
829 bbdb:Richard Stallman                    @r{BBDB link}
830 shell:ls *.org                           @r{A shell command}
831 @end example
833 A link may contain space characters and is terminated by the end of
834 the line or, in tables, by the end of the table field.  Therefore,
835 outside of tables there can be only one link per line (but see the
836 variable @code{org-allow-space-in-links}).
838 @cindex storing links
839 @table @kbd
840 @kindex C-c l
841 @item C-c l
842 Store a link to the current location.  This is a @emph{global} command
843 which can be used in any buffer to create a link.  The link will be
844 stored for later insertion into an Org-mode buffer (see below).  For VM,
845 RMAIL, WANDERLUST, GNUS and BBDB buffers, the link will point to the
846 current article/entry.  For W3 and W3M buffer, the link goes to the
847 current URL.  For any other files, the link will just point to the file.
848 The key binding @kbd{C-c l} is only a suggestion - see
849 @ref{Installation and Activation}.
851 @kindex C-c C-l
852 @item C-c C-l
853 Insert a link.  This prompts for a link to be inserted into the
854 buffer.  You can just type a link, using one of the link type prefixes
855 mentioned in the examples above.  Through completion, all links stored
856 during the current session can be accessed.  When called with prefix
857 arg, you can use file name completion to enter a file link.  Note that
858 you don't have to use this command to insert a link.  Links in
859 Org-mode are plain text, and you can type or paste them straight into
860 the buffer.
862 @cindex inserting links
863 @kindex C-c C-o
864 @item C-c C-o
865 Open link at point.  This will launch a web browser for URLs (using
866 @command{browse-url-at-point}), run vm/gnus/bbdb for the corresponding
867 links, execute the command in a shell link, visit text files with
868 Emacs and select a suitable application for non-text files.
869 Classification of files is based on file extension only.  See option
870 @code{org-file-apps}.  If there is no link at point, the current
871 subtree will be searched for one.  If you want to override the default
872 application and visit the file with Emacs, use a @kbd{C-u} prefix.
873 If the cursor is on a time stamp, compiles the agenda for that date.
875 @strong{IMPORTANT}: Be careful not to use any dangerous commands in a
876 shell link.
878 @kindex mouse-2
879 @item mouse-2
880 On links, @kbd{mouse-2} will open the link just like @kbd{C-c C-o} would.
882 @kindex mouse-3
883 @item mouse-3
884 Like @kbd{mouse-2}, but force file links to be opened with Emacs.
885 @end table
887 @node Remember,  , Links, Hyperlinks
888 @section Remember
889 @cindex @file{remember.el}
891 Another way to create org entries with links to other files is through
892 the @emph{Remember} package by John Wiegley.  @emph{Remember} lets you
893 store quick notes with little interruption of your work flow.  See
894 @uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
895 information.  The notes produced by @emph{Remember} can be stored in
896 different ways, and Org-mode files are a good target.
897 Org-mode allows to file away notes either to a default file, or
898 directly to the correct location in your Org-mode outline tree.  The
899 following customization will tell @emph{Remember} to use org files as
900 target, and to create annotations compatible with Org-mode links.
902 @c FIXME: The autoload will not be necessary when Org-mode is part of Emacs
903 @example
904 (autoload 'org-remember-annotation "org")
905 (autoload 'org-remember-handler "org")
906 (setq org-directory "~/path/to/my/orgfiles/")
907 (setq org-default-notes-file "~/.notes")
908 (setq remember-annotation-functions '(org-remember-annotation))
909 (setq remember-handler-functions '(org-remember-handler))
910 @end example
912 When you compose a note with remember, you have to press @kbd{C-c C-c}
913 to exit remember-mode and to file away the note.  The handler first
914 prompts for a target file - if you press @key{RET}, the value of
915 @code{org-default-notes-file} is used.  Then the command offers the
916 headings tree of the selected file.  You can either immediately press
917 @key{RET} to get the note appended to the file.  Or you can use
918 vertical cursor motion (@key{up} and @key{down}) and visibility
919 cycling (@key{TAB}) to find a better place.  Pressing @key{RET} or
920 @key{left} or @key{right} leads to the following result.
922 @multitable @columnfractions 0.2 0.1 0.7
923 @item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted}
924 @item buffer-start @tab @key{RET} @tab as level 2 heading at end of file
925 @item on headline @tab @key{RET} @tab as sublevel of the heading at cursor
926 @item             @tab @key{left}  @tab as same level, before current heading
927 @item             @tab @key{right} @tab as same level, after current heading
928 @item not on headline @tab @key{RET} 
929       @tab at cursor position, level taken from context.
930            Or use prefix arg to specify level manually.
931 @end multitable
933 So the fastest way to store the note is to press @kbd{C-c C-c @key{RET}
934 @key{RET}} to append it to the default file.  But with little extra
935 effort, you can push it directly to the correct location.
937 Before inserting the text into a tree, the function ensures that the
938 text has a headline, i.e. a first line that starts with a @samp{*}.
939 If not, a headline is constructed from the current date and some
940 additional data.  If the variable @code{org-adapt-indentation} is
941 non-nil, the entire text is also indented so that it starts in the
942 same column as the headline (after the asterisks).
944 @node TODO items, Timestamps, Hyperlinks, Top
945 @chapter TODO items
946 @cindex TODO items
948 Org-mode does not maintain TODO lists as a separate document.  TODO
949 items are an integral part of the notes file, because TODO items
950 usually come up while taking notes!  With Org-mode, you simply mark
951 any entry in a tree as being a TODO item.  In this way, the
952 information is not duplicated, and the entire context from which the
953 item emerged is always present when you check.
955 Of course, this technique causes TODO items to be scattered throughout
956 your file.  Org-mode provides methods to give you an overview over all
957 things you have to do.
959 @menu
960 * TODO basics::                 Marking and displaying TODO entries
961 * TODO extensions::             Workflow and assignments
962 * Priorities::                  Some things are more important than others
963 @end menu
965 @node TODO basics, TODO extensions, TODO items, TODO items
966 @section Basic TODO functionality
968 Any headline can become a TODO item by starting it with the word TODO,
969 for example
971 @example
972 *** TODO Write letter to Sam Fortune
973 @end example
975 @noindent
976 The most important commands to work with TODO entries are:
978 @table @kbd
979 @kindex C-c C-t
980 @item C-c C-t
981 Rotate the TODO state of the current item between
982 @example
983 ,-> (unmarked) -> TODO -> DONE --.
984 '--------------------------------'
985 @end example
986 The same rotation can also be done ``remotely'' from the timeline and
987 agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}).
988 @kindex C-c C-v
989 @cindex sparse tree, for TODO
990 @item C-c C-v
991 View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}).  Folds
992 the entire buffer, but shows all TODO items and the headings hierarchy
993 above them.  With prefix arg, show also the DONE entries.
994 @item C-u C-c a
995 A @kbd{C-u} argument to the @code{org-agenda command} (@pxref{Agenda})
996 collects all unfinished TODO items into a single place.
997 @end table
999 @node TODO extensions, Priorities, TODO basics, TODO items
1000 @section Extended use of TODO keywords
1001 @cindex extended TODO keywords
1003 The default implementation of TODO entries is just two states:  TODO
1004 and DONE.  You can, however, use the TODO feature for more
1005 complicated things by configuring the variables
1006 @code{org-todo-keywords} and @code{org-todo-interpretation}.  Using
1007 special setup, you can even use TODO keywords in different ways in
1008 different org files.
1010 @menu
1011 * Workflow states::             From TODO to DONE in steps
1012 * TODO types::                  I do this, Fred the rest
1013 * Per file keywords::           Different files, different requirements
1014 @end menu
1016 @node Workflow states, TODO types, TODO extensions, TODO extensions
1017 @subsection TODO keywords as workflow states
1018 @cindex TODO workflow
1019 @cindex workflow states as TODO keywords
1021 You can use TODO keywords to indicate different states in the process
1022 of working on an item, for example
1024 @lisp
1025 (setq org-todo-keywords '("TODO" "FEEDBACK" "VERIFY" "DONE")
1026       org-todo-interpretation 'sequence)
1027 @end lisp
1029 With this setup, the command @kbd{C-c C-t} will cycle an entry from
1030 TODO to FEEDBACK, then to VERIFY, and finally too DONE.  You may also
1031 use a prefix argument to quickly select a specific state.  For example
1032 @kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
1033 If you define many keywords, you can use in-buffer completion (see
1034 @ref{Completion}) to insert these words into the buffer.
1036 @node TODO types, Per file keywords, Workflow states, TODO extensions
1037 @subsection TODO keywords as types
1038 @cindex TODO types
1039 @cindex names as TODO keywords
1040 @cindex types as TODO keywords
1042 The second possibility is to use TODO keywords to indicate different
1043 types of action items.  For example, you might want to indicate that
1044 items are for ``work'' or ``home''.  Or, when you work with several
1045 people on a single project, you might want to assign action items
1046 directly to persons, by using their names as TODO keywords.  This
1047 would be set up like this:
1049 @lisp
1050 (setq org-todo-keywords '("Fred" "Sara" "Lucy" "Mike" "DONE")
1051       org-todo-interpretation 'type)
1052 @end lisp
1054 In this case, different keywords do not indicate a sequence, but
1055 rather different types.  So it is normally not useful to change from
1056 one type to another.  Therefore, in this case the the behavior of the
1057 command @kbd{C-c C-t} is changed slightly@footnote{This is also true
1058 for the @kbd{t} command in the timeline and agenda buffers}.  When
1059 used several times in succession, it will still cycle through all
1060 names.  But when when you return to the item after some time and
1061 execute @kbd{C-c C-t} again, it will switch from each name directly to
1062 DONE.  Use prefix arguments or completion to quickly select a specific
1063 name.
1065 @node Per file keywords,  , TODO types, TODO extensions
1066 @subsection Setting up TODO keywords for individual files
1067 @cindex keyword options
1068 @cindex per file keywords
1070 It can be very useful to use different aspects of the TODO mechanism
1071 in different files, which is not possible with the global settings
1072 described above.  For file-local settings, you need to add special
1073 lines to the file which set the keywords and interpretation for that
1074 file only.  For example, to set one of the two examples discussed
1075 above, you need one of the following lines, starting in column zero
1076 anywhere in the file:
1078 @example
1079 #+SEQ_TODO: TODO FEEDBACK VERIFY DONE
1080 #+TYP_TODO: Fred Sara Lucy Mike DONE
1081 @end example
1083 @cindex Completing option keywords
1084 @kindex M-@key{TAB}
1085 @noindent To make sure you are using the correct keyword, type
1086 @samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion.
1088 @cindex DONE, final TODO keyword
1089 Remember that the last keyword must always mean that the item is DONE
1090 (you may use a different word, though).  Also note that in each file,
1091 only one of the two aspects of TODO keywords can be used.  After
1092 changing one of these lines, use @kbd{C-c C-c} with the cursor still
1093 in the line to make the changes known to Org-mode@footnote{Org-mode
1094 parses these lines only when Org-mode is activated after visiting a
1095 file.  @kbd{C-c C-c} with the cursor in a line starting with @samp{#-}
1096 is simply restarting Org-mode, making sure that these changes will be
1097 respected.}. 
1099 If you want to use very many keywords, for example when working with a
1100 large group of people, you may split the names over several lines:
1102 @example
1103 #+TYP_TODO: Fred Sara Lucy Mike
1104 #+TYP_TODO: Luis George Jules Jessica
1105 #+TYP_TODO: Kim Arnold Peter
1106 #+TYP_TODO: DONE
1107 @end example
1109 @node Priorities,  , TODO extensions, TODO items
1110 @section Priorities
1111 @cindex priorities
1113 If you use Org-mode extensively to organize your work, you may end up
1114 with a number of TODO entries so large that you'd like to prioritize
1115 them.  This can be done by placing a @emph{priority cookie} into the
1116 headline, like this
1118 @example
1119 *** TODO [#A] Write letter to Sam Fortune
1120 @end example
1122 @noindent
1123 With its standard setup, Org-mode supports priorities @samp{A},
1124 @samp{B}, and @samp{C}.  @samp{A} is the highest priority.  An entry
1125 without a cookie is treated as priority @samp{B}.  Priorities make a
1126 difference only in the agenda (@pxref{Agenda}).
1128 @table @kbd
1129 @kindex @kbd{C-c ,}
1130 @item @kbd{C-c ,}
1131 Set the priority of the current item.  The command prompts for a
1132 priority character @samp{A}, @samp{B} or @samp{C}.  When you press
1133 @key{SPC} instead, the priority cookie is removed from the headline.
1134 The priorities can also be changed ``remotely'' from the timeline and
1135 agenda buffer with the @kbd{,} command (@pxref{Agenda commands}).
1137 @kindex S-@key{up}
1138 @kindex S-@key{down}
1139 @item S-@key{up}
1140 @itemx S-@key{down}
1141 Increase/decrease priority of current item.  Note that these keys are
1142 also used to modify time stamps (@pxref{Creating timestamps}).
1143 @end table
1147 @node Timestamps, Timeline and Agenda, TODO items, Top
1148 @chapter Timestamps
1150 Items can be labeled with timestamps to make them useful for project
1151 planning.
1153 @menu
1154 * Time stamps::                 Assigning a time to a tree entry
1155 * Creating timestamps::         Commands which insert timestamps
1156 @end menu
1159 @node Time stamps, Creating timestamps, Timestamps, Timestamps
1160 @section Time stamps, deadlines and scheduling
1161 @cindex time stamps
1162 @cindex deadlines
1163 @cindex scheduling
1165 A time stamp is a specification of a date (possibly with time) in a
1166 special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16
1167 Tue 09:39>}.  A time stamp can appear anywhere in the headline or body
1168 of an org-tree entry.  Its presence allows to show entries on specific
1169 dates in the agenda (@pxref{Agenda}).  We distinguish:
1171 @table @var
1172 @cindex timestamp
1173 @item TIMESTAMP
1174 A simple time stamp just assigns a date/time to an item.  In the
1175 timeline and agenda displays, the headline of the entry will be shown
1176 exactly on that date.
1178 @item TIMERANGE
1179 @cindex timerange
1180 Two time stamps connected by @samp{--} denote a time range.  The
1181 headline will be shown on the first and last day of the range, and on
1182 any dates that are displayed and fall in the range.  Here is an
1183 example:
1185 @example
1186 ** Meeting in Amsterdam
1187    <2004-08-23 Mon>--<2004-08-26 Thu>
1188 @end example
1190 @item DEADLINE
1191 @cindex deadline
1192 If a time stamp is preceded by the word @samp{DEADLINE:}, the task
1193 (most likely a TODO item) is supposed to be finished on that date, and
1194 it will be listed then.  In addition, the compilation for the
1195 @emph{current day} will carry a warning about the approaching or
1196 missed deadline, starting @code{org-deadline-warning-days} before the
1197 due date, and continuing until the entry is marked DONE.  An example:
1199 @example
1200 *** TODO write article about the Earth for the Guide
1201     The editor in charge is bbdb:Ford Prefect
1202     DEADLINE: <2004-02-29 Sun>
1203 @end example
1205 @item SCHEDULED
1206 @cindex scheduled
1207 If a time stamp is preceded by the word @samp{SCHEDULED:}, it means
1208 you are planning to start working on that task on the given date.  The
1209 headline will be listed under the given date.  In addition, a reminder
1210 that the scheduled date has passed will be present in the compilation
1211 for the @emph{current day}, until the entry is marked DONE.  I.e., the
1212 task will automatically be forwarded.
1213 @end table
1215 @node Creating timestamps,  , Time stamps, Timestamps
1216 @section Creating timestamps
1217 @cindex creating timestamps
1219 For Org-mode to recognize time stamps, they need to be in the specific
1220 format.  All commands listed below produce time stamps in the correct
1221 format.
1223 @table @kbd
1224 @kindex C-c .
1225 @item C-c .
1226 Prompt for a date and insert a corresponding time stamp.  When the
1227 cursor is at a previously used time stamp, it is updated to NOW.  When
1228 this command is used twice in succession, a time range is inserted.
1230 @kindex C-u C-c .
1231 @item C-u C-c .
1232 Like @kbd{C-c .}, but use the alternative format which contains date
1233 and time.
1235 @kindex C-c <
1236 @item C-c <
1237 Insert a time stamp corresponding to the cursor date in the Calendar.
1239 @kindex C-c >
1240 @item C-c >
1241 Access the Emacs calendar for the current date.  If there is a
1242 timestamp in the current line, goto the corresponding date
1243 instead.
1245 @kindex C-c C-o
1246 @item C-c C-o
1247 Access the agenda for the date given by the time stamp at point
1248 (@pxref{Agenda}).
1250 @kindex C-c C-d
1251 @item C-c C-d
1252 Insert @samp{DEADLINE} keyword along with a stamp.
1253 @kindex C-c C-w
1254 @cindex sparse tree, for deadlines
1255 @item C-c C-w
1256 Create a sparse tree with all deadlines that are either past-due, or
1257 which will become due within @code{org-deadline-warning-days}.
1258 With @kbd{C-u} prefix, show all deadlines in the file.  With a numeric
1259 prefix, check that many days.  For example, @kbd{C-1 C-c C-w} shows
1260 all deadlines due tomorrow.
1262 @kindex C-c C-s
1263 @item C-c C-s
1264 Insert @samp{SCHEDULED} keyword along with a stamp.
1266 @kindex S-@key{left}
1267 @kindex S-@key{right}
1268 @item S-@key{left}
1269 @itemx S-@key{right}
1270 Change date at cursor by one day.
1272 @kindex S-@key{up}
1273 @kindex S-@key{down}
1274 @item S-@key{up}
1275 @itemx S-@key{down}
1276 Change the item under the cursor in a timestamp.  The cursor can be on
1277 a year, month, day, hour or minute.  Note that if the cursor is not at
1278 a time stamp, these same keys modify the priority of an item
1279 (@pxref{Priorities}).
1281 @kindex C-c C-y
1282 @cindex evaluate time range
1283 @item C-c C-y
1284 Evaluate a time range by computing the difference between start and
1285 end.  With prefix arg, insert result after the time range (in a table:
1286 into the following column).
1287 @end table
1289 @cindex date, reading in minibuffer
1290 @cindex time, reading in minibuffer
1291 @cindex calendar, for selecting date
1292 When org prompts for a date/time, the function reading your input will
1293 replace anything you choose not to specify with the current date and
1294 time.  For details, see the documentation string of
1295 @command{org-read-date}.  Also, a calender will pop up to allow
1296 selecting a date.  The calendar can be fully controlled from the
1297 minibuffer, and a date can be selected with the following commands:
1299 @table @kbd
1300 @kindex <
1301 @item <
1302 Scroll calendar backwards by one month.
1303 @kindex >
1304 @item >
1305 Scroll calendar forwards by one month.
1306 @kindex mouse-1
1307 @item mouse-1
1308 Select date by clicking on it.
1309 @kindex S-@key{right}
1310 @item S-@key{right}
1311 One day forward.
1312 @kindex S-@key{left}
1313 @item S-@key{left}
1314 One day back.
1315 @kindex S-@key{down}
1316 @item S-@key{down}
1317 One week forward.
1318 @kindex S-@key{up}
1319 @item S-@key{up}
1320 One week back.
1321 @kindex M-S-@key{right}
1322 @item M-S-@key{right}
1323 One month forward.
1324 @kindex M-S-@key{left}
1325 @item M-S-@key{left}
1326 One month back.
1327 @kindex @key{RET}
1328 @item @key{RET}
1329 Choose date in calendar (only if nothing typed into minibuffer).
1330 @end table
1332 @node Timeline and Agenda, Exporting, Timestamps, Top
1333 @chapter Timeline and Agenda
1334 @cindex agenda
1336 We have already described three commands to filter important
1337 information in an org file into a sparse tree (@pxref{Sparse trees}):
1339 @cindex sparse trees
1340 @itemize @bullet
1341 @item
1342 The TODO tree, (@kbd{C-c C-v}), see @ref{TODO items}.
1343 @item
1344 The occur tree @kbd{C-c /}, see @ref{TODO items}.
1345 @item
1346 Checking upcoming deadlines with @kbd{C-c C-w}, see @ref{Creating
1347 timestamps}.
1348 @end itemize
1349 @noindent
1351 Instead of using the sparse trees, Org-mode can also collect and
1352 time-sort the important items into a separate buffer, which we call
1353 the @emph{timeline} of the org file.  It can also collect information
1354 from a @emph{list of files} and in this way provide an @emph{agenda}
1355 which covers all of your current projects, action items and
1356 appointments.
1358 @menu
1359 * Timeline::                    Time-sorted view for single file
1360 * Agenda::                      Your weekly planner
1361 * Agenda commands::             Remote editing of org trees
1362 * Calendar/Diary integration::  Integrating Anniversaries and more
1363 @end menu
1365 @node Timeline, Agenda, Timeline and Agenda, Timeline and Agenda
1366 @section Timeline for a single file
1367 @cindex single file summary
1368 @cindex agenda, for single file
1369 @cindex timeline, single file
1370 @cindex time-sorted view
1372 The timeline shows all time-stamped items in a single Org-mode file,
1373 in @emph{time-sorted view}.  The main purpose of this command is to
1374 give an overview over events in a project.
1376 @table @kbd
1377 @kindex C-c C-r
1378 @item C-c C-r
1379 Show a time-sorted view of the org file, with all time-stamped items
1380 of today or later.  When called with a @kbd{C-u} prefix, past dates
1381 will be included as well.  When called with two @kbd{C-u C-u}
1382 prefixes, all unfinished TODO entries (scheduled or not) are also
1383 listed under the current date.
1384 @end table
1385 @noindent
1387 The timeline is shown in a temporary buffer @file{*Org Agenda*}.  The
1388 commands available in the Agenda buffer are listed in @ref{Agenda
1389 commands}.
1391 @node Agenda, Agenda commands, Timeline, Timeline and Agenda
1392 @section Agenda
1393 @cindex agenda
1395 An agenda can be compiled from one or more org files.  The main
1396 purpose of this command is to act like a paper agenda, showing you all
1397 the tasks for the current day or week.
1399 The Org-mode files to be processed in order to generate the agenda are
1400 listed in the variable @code{org-agenda-files}.  You can customize
1401 this variable, but the easiest way to maintain it is through the
1402 following commands
1404 @cindex files, adding to agenda list
1405 @table @kbd
1406 @kindex C-c [
1407 @item C-c [
1408 Add current file to the list of agenda files
1409 @kindex C-c ]
1410 @item C-c ]
1411 Remove current file from the list of agenda files.
1412 @end table
1413 @noindent
1414 The Org menu contains the list of all files and can be used to quickly
1415 visit any of them.
1417 The global command @command{org-agenda} compiles the agenda from all
1418 listed files.
1420 @table @kbd
1421 @cindex org-agenda, command
1422 @kindex C-c a
1423 @item C-c a
1424 Compile an agenda for the current week from a list of org files.  The
1425 agenda shows the entries for each day.  With a @kbd{C-u} prefix (or
1426 when the variable @code{org-agenda-include-all-todo} is @code{t}), all
1427 unfinished TODO items (also those without a date) are also listed at
1428 the beginning of the buffer, before the first date.@*
1429 The key binding @kbd{C-c a} is only a suggestion - see
1430 @ref{Installation and Activation}.
1431 @end table
1433 The commands available in the Agenda buffer are listed in
1434 @ref{Agenda commands}.
1436 @subsection Categories
1438 @cindex category
1439 In the agenda buffer, each entry is preceded by a @emph{category},
1440 which is derived from the file name.  The category can also be set
1441 with a special line anywhere in the buffer, looking like this:
1442 @example
1443 #+CATEGORY: Thesis
1444 @end example
1445 @noindent
1446 After changing this line, press @kbd{C-c C-c} with the cursor still in
1447 the line, to make the changes known to org-mode.  Otherwise, the
1448 change will only be active the next time you visit this file with
1449 Emacs.
1451 The display in the agenda buffer looks best if the category is not
1452 longer than 10 characters.
1454 @subsection Time Specifications
1456 Org-mode checks each agenda item for a time specification.  The time
1457 can be part of the time stamp that triggered inclusion into the agenda,
1458 for example as in @w{@samp{<2005-05-10 Tue 19:00>}}.  Time ranges can
1459 be specified with two time stamps, like
1461 @w{@samp{<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>}}.
1463 In the headline of the entry itself, a time(range) may also appear as
1464 plain text (like @samp{12:45} or a @samp{8:30-1pm}.  If the agenda
1465 integrates the Emacs diary (@pxref{Calendar/Diary integration}), time
1466 specifications in diary entries are recognized as well.
1468 For agenda display, Org-mode extracts the time and displays it in a
1469 standard 24 hour format as part of the prefix.  The example times in
1470 the previous paragraphs would end up in the agenda like this:
1472 @example
1473     8:30-13:00 Arthur Dent lies in front of the bulldozer
1474    12:45...... Ford Prefect arrives and takes Arthur to the pub
1475    19:00...... The Vogon reads his poem
1476    20:30-22:15 Marwin escorts the Hitchhikers to the bridge
1477 @end example
1479 If the agenda is in single-day mode, or for the display of today, the
1480 timed entries are embedded in a time grid, like
1482 @example
1483     8:00...... ------------------
1484     8:30-13:00 Arthur Dent lies in front of the bulldozer
1485    10:00...... ------------------
1486    12:00...... ------------------
1487    12:45...... Ford Prefect arrives and takes Arthur to the pub
1488    14:00...... ------------------
1489    16:00...... ------------------
1490    18:00...... ------------------
1491    19:00...... The Vogon reads his poem
1492    20:00...... ------------------
1493    20:30-22:15 Marwin escorts the Hitchhikers to the bridge
1494 @end example
1496 The time grid can be turned on and off with the variable
1497 @code{org-agenda-use-time-grid}, and can be configured with
1498 @code{org-agenda-time-grid}.
1501 @subsection Sorting of agenda items
1502 @cindex sorting, of agenda items
1503 @cindex priorities, of agenda items
1504 The entries for each day are sorted.  The default order is to first
1505 collect all items containing an explicit time-of-day specification.
1506 These entries will be shown at the beginning of the list, as a
1507 @emph{schedule} for the day.  After that, items remain grouped in
1508 categories, in the sequence given by @code{org-agenda-files}.  Within
1509 each category, items are sorted by priority (@pxref{Priorities}).
1511 The priority is a numerical quantity composed of the base priority
1512 (2000 for priority @samp{A}, 1000 for @samp{B}, and 0 for @samp{C}),
1513 plus additional increments for overdue scheduled or deadline items.
1515 Sorting can be customized using the variable
1516 @code{org-agenda-sorting-strategy}.
1518 @node Agenda commands, Calendar/Diary integration, Agenda, Timeline and Agenda
1519 @section Commands in the agenda buffer
1521 Entries in the agenda buffer are linked back to the org file or diary
1522 file where they originate.  You are not allowed to edit the agenda
1523 buffer itself, but commands are provided to show and jump to the
1524 original entry location, and to edit the org-files ``remotely'' from
1525 the agenda buffer.  In this way, all information is stored only once,
1526 and you don't risk that your agenda and note files diverge.
1528 Some commands can be executed with mouse clicks on agenda lines.  For
1529 the other commands, the cursor needs to be in the desired line.  Most
1530 commands are available for both timelines and the agenda.  The
1531 exceptions are marked.
1533 @table @kbd
1534 @tsubheading{Motion}
1535 @kindex n
1536 @item n
1537 Next line (same as @key{up}).
1538 @kindex p
1539 @item p
1540 Previous line (same as @key{down}).
1541 @tsubheading{View/GoTo org file}
1542 @kindex mouse-3
1543 @kindex @key{SPC}
1544 @item mouse-3
1545 @itemx @key{SPC} 
1546 Display the original location of the item in another window.
1548 @kindex l
1549 @item l
1550 Display original location and recenter that window.
1552 @kindex mouse-2
1553 @kindex @key{TAB}
1554 @item mouse-2
1555 @itemx @key{TAB}
1556 Go to the original location of the item in another window.
1558 @kindex @key{RET}
1559 @itemx @key{RET}
1560 Go to the original location of the item and delete other windows.
1562 @kindex f
1563 @item f
1564 Toggle follow mode.  In follow mode, as you move the cursor through
1565 the agenda buffer, the other window always shows the corresponding
1566 location in the org file.
1568 @tsubheading{Change display}
1569 @kindex o
1570 @item o
1571 Delete other windows.
1573 @kindex w
1574 @item w
1575 Toggle between weekly and daily view.
1577 @kindex d
1578 @item d
1579 Toggle the inclusion of diary entries.  See @ref{Calendar/Diary integration}.
1581 @kindex g
1582 @item g
1583 Toggle the time grid on and off.  See also the variables
1584 @code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}.
1586 @kindex r
1587 @item r
1588 Recreate the agenda buffer, for example to reflect the changes
1589 after modification of the time stamps of items with S-@key{left} and
1590 S-@key{right}.
1592 @kindex @key{right}
1593 @item @key{right}
1594 Display the following @code{org-agenda-ndays} days.  For example, if
1595 the display covers a week, switch to the following week.  With prefix
1596 arg, go forward that many times @code{org-agenda-ndays} days.  Not
1597 available in timelines.
1599 @kindex @key{left}
1600 @item @key{left}
1601 Display the previous dates.  Not available in timelines.
1603 @kindex .
1604 @item .
1605 Goto today.
1607 @tsubheading{Remote editing}
1609 @item 0-9
1610 Digit argument.
1612 @kindex t
1613 @item t
1614 Change the TODO state of the item, both in the agenda and in the
1615 original org file.
1617 @kindex ,
1618 @item ,
1619 Set the priority for the current item.  Org-mode prompts for the
1620 priority character. If you reply with @key{SPC}, the priority cookie
1621 is removed from the entry.
1623 @kindex P
1624 @item p
1625 Display weighted priority of current item.
1627 @kindex +
1628 @kindex S-@key{up}
1629 @item +
1630 @item S-@key{up}
1631 Increase the priority of the current item.  The priority is changed in
1632 the original buffer, but the agenda is not resorted.  Use the @kbd{r}
1633 key for this.
1635 @kindex -
1636 @kindex S-@key{down}
1637 @item -
1638 @item S-@key{down}
1639 Decrease the priority of the current item.
1641 @kindex S-@key{right}
1642 @item S-@key{right}
1643 Change the time stamp associated with the current line by one day into
1644 the future.  With prefix argument, change it by that many days.  For
1645 example, @kbd{3 6 5 S-@key{right}} will change it by a year.  The
1646 stamp is changed in the original org file, but the change is not
1647 directly reflected in the agenda buffer.  Use the 
1648 @kbd{r} key to update the buffer.
1650 @kindex S-@key{left}
1651 @item S-@key{left}
1652 Change the time stamp associated with the current line by one day
1653 into the past.
1655 @kindex >
1656 @item >
1657 Change the time stamp associated with the current line to today.
1658 The key @kbd{>} has been chosen, because it is the same as @kbd{S-.}
1659 on my keyboard.
1661 @cindex diary entries, creating from agenda
1662 @kindex i
1663 @item i
1664 Insert a new entry into the diary.  Prompts for the type of entry
1665 (day, weekly, monthly, yearly, anniversary, cyclic) and creates a new
1666 entry in the diary, just like @kbd{i d} etc. would do in the calendar.
1667 The date is taken from the cursor position.
1669 @tsubheading{Calendar commands}
1670 @kindex c
1671 @item c
1672 Open the Emacs calendar and move to the date at the agenda cursor.
1674 @item c
1675 When in the calendar, compute and show the Org-mode agenda for the
1676 date at the cursor.
1678 @kindex M
1679 @item M
1680 Show the phases of the moon for three month around current date.
1682 @kindex S
1683 @item S
1684 Show sunrise and sunset times.  The geographical location must be set
1685 with calendar variables, see documentation of the Emacs calendar.
1687 @kindex C
1688 @item C
1689 Convert the date at cursor into many other cultural and historic
1690 calendars.
1692 @kindex H
1693 @item H
1694 Show holidays for three month around the cursor date.
1696 @tsubheading{Quit and Exit}
1697 @kindex q
1698 @item q
1699 Quit Agenda, remove the agenda buffer.
1701 @kindex x
1702 @cindex agenda files, removing buffers
1703 @item x
1704 Exit agenda, remove the agenda buffer and all buffers loaded by Emacs
1705 for the compilation of the agenda.  Buffers created by the user to
1706 visit org files will not be removed.
1708 @end table
1710 @node Calendar/Diary integration,  , Agenda commands, Timeline and Agenda
1711 @section Calendar/Diary integration
1712 @cindex calendar integration
1713 @cindex diary integration
1715 Emacs contains the calendar and diary by Edward M. Reingold.  The
1716 calendar displays a three-month calendar with holidays from different
1717 countries and cultures.  The diary allows to keep track of
1718 anniversaries, lunar phases, sunrise/set, recurrent appointments
1719 (weekly, monthly) and more.  In this way, it is quite complementary to
1720 Org-mode.  It can be very useful to combine output from Org-mode with
1721 the diary.
1723 The interaction between Org-mode and diary works both ways: You can
1724 list entries from the diary in the Org-mode agenda, from which many
1725 calendar and diary commands are directly accessible.  Or you can
1726 display entries from the org agenda in the Emacs diary.
1728 @menu
1729 * Diary to agenda::             Agenda incorporates the diary
1730 * Agenda to diary::             Diary incorporates the agenda
1731 @end menu
1733 @node Diary to agenda, Agenda to diary, Calendar/Diary integration, Calendar/Diary integration
1734 @subsection Including the diary into the agenda
1735 @cindex diary to agenda
1737 In order to include entries from the Emacs diary into Org-mode's
1738 agenda, you only need to customize the variable
1740 @lisp
1741 (setq org-agenda-include-diary t)
1742 @end lisp
1743 @noindent
1745 @noindent After that, everything will happen automatically.  All diary
1746 entries including holidays, anniversaries etc will be included in the
1747 agenda buffer created by Org-mode.  @key{SPC}, @key{TAB}, and
1748 @key{RET} can be used from the agenda buffer to jump to the diary
1749 file, in order to edit existing diary entries.  Also the @kbd{i}
1750 command to insert new entries for the current date works in the agenda
1751 buffer, as well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to
1752 display Sunrise/Sunset times, show lunar phases and to convert to
1753 other calendars, respectively.  @kbd{c} can be used to switch back and
1754 forth between calendar and agenda.
1756 @node Agenda to diary,  , Diary to agenda, Calendar/Diary integration
1757 @subsection Including the agenda into the diary
1759 If you prefer to use the Emacs diary as your main instrument and if
1760 you wish to include the Org-mode agenda into it, the following steps
1761 are necessary: Autoload the function @command{org-diary} as shown
1762 above under @ref{Installation and Activation}.  You also need to use
1763 @emph{fancy diary display} by setting in @file{.emacs}:
1765 @lisp
1766 (add-hook 'diary-display-hook 'fancy-diary-display)
1767 @end lisp
1769 Then include the following line into your @file{~/diary} file, in
1770 order to get the entries from all files listed in the variable
1771 @code{org-agenda-files}:
1773 @example
1774 &%%(org-diary)
1775 @end example
1776 @noindent
1777 You may also select specific files with
1779 @example
1780 &%%(org-diary) ~/path/to/some/org-file.org
1781 &%%(org-diary) ~/path/to/another/org-file.org
1782 @end example
1784 If you now launch the calendar and press @kbd{d} to display a diary,
1785 the headlines of entries containing a timestamp, date range, schedule,
1786 or deadline referring to the selected date will be listed.  Just like
1787 in Org-mode's agenda view, the diary for @emph{today} contains
1788 additional entries for overdue deadlines and scheduled items.  See
1789 also the documentation of the @command{org-diary} function.
1791 @node Exporting, Miscellaneous, Timeline and Agenda, Top
1792 @chapter Exporting
1793 @cindex exporting
1794 @cindex ASCII file
1795 @cindex HTML
1798 @cindex headline levels, for exporting
1799 For printing and sharing of notes, an Org-mode document can be
1800 exported as an ASCII file, or as HTML.  In the exported version, the
1801 first 3 outline levels will become headlines, defining a general
1802 document structure.  Additional levels will be exported as itemize
1803 lists.  If you want that transition to occur at a different level,
1804 specify it with a prefix argument.  For example,
1806 @example
1807 @kbd{M-1 M-x org-export-as-html}
1808 @end example
1809 @noindent
1810 creates only top level headlines and does the rest as items.
1812 @menu
1813 * Export commands::             Commands which export and display
1814 * HTML formatting::             Interpretation of the buffer content
1815 * Export options::              How to influence exports
1816 * Comment lines::               Lines which will not be exported
1817 @end menu
1819 @node Export commands, HTML formatting, Exporting, Exporting
1820 @section Export commands
1822 @cindex region, active
1823 @cindex active region
1824 @cindex transient-mark-mode
1825 @table @kbd
1826 @kindex C-c C-x a    
1827 @item C-c C-x a
1828 Export as ASCII file.  If there is an active region, only the region
1829 will be exported.  For an org file @file{myfile.org}, the ASCII file
1830 will be @file{myfile.txt}.  The file will be overwritten without
1831 warning.
1832 @kindex C-c C-x h    
1833 @item C-c C-x h
1834 Export as HTML file @file{myfile.html}.
1835 @kindex C-c C-x C-h  
1836 @item C-c C-x C-h
1837 Export as HTML file and open it with a browser.
1838 @kindex C-c C-x t
1839 @item C-c C-x t
1840 Insert template with export options, see below.
1841 @kindex C-c :
1842 @item C-c :
1843 Toggle fixed-width for line or region, see below.
1844 @end table
1846 @node HTML formatting, Export options, Export commands, Exporting
1847 @section HTML formatting
1849 Not all text is transferred literally to the exported HTML file.  The
1850 exporter implements the following interpretation:
1852 @itemize @bullet
1853 @cindex underlined text
1854 @cindex bold text
1855 @cindex italic text
1856 @item
1857 You can make words @b{*bold*}, @i{/italic/}, and _underlined_
1859 @cindex @TeX{} interpretation
1860 @item
1861 Simple @TeX{}-like math constructs are interpreted:
1863 @itemize @minus
1864 @item
1865 @samp{10^22} and @samp{J_n} are super- and subscripts.  You can quote
1866 @samp{^} and @samp{_} with a backslash: @samp{\_} and @samp{\^}
1867 @item
1868 @samp{\alpha} indicates a Greek letter, @samp{\to} an arrow.  You can
1869 use completion for these macros, just type @samp{\} and maybe a few
1870 letters, and press @kbd{M-@key{TAB}} to see possible completions.
1871 @end itemize
1873 @cindex tables, export to HTML
1874 @item
1875 Tables are transformed into HTML tables.
1877 @cindex fixed width
1878 @item
1879 Lines starting with @samp{:} are typeset in a fixed-width font, to
1880 allow quoting of computer code etc. 
1882 @cindex HTML tags
1883 @item
1884 If you want to include HTML tags which should be interpreted as such,
1885 mark them with a @samp{@@} like in @samp{@@<b>bold text@@</b>}.
1886 Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and
1887 @samp{&gt;} in HTML export.
1888 @end itemize
1890 If these conversions conflict with your habits of typing ASCII text,
1891 they can all be turned off with corresponding variables.
1893 @node Export options, Comment lines, HTML formatting, Exporting
1894 @section Export options
1895 @cindex options, for export
1897 The exporter recognizes special lines in the buffer which provide
1898 additional information.  These lines may be put anywhere in the file.
1899 The whole set of lines can be inserted into the buffer with @kbd{C-c
1900 C-x t}.  For individual lines, a good way to make sure the keyword is
1901 correct it to type @samp{#+} and then use @kbd{M-@key{TAB}} completion
1902 (@pxref{Completion}). 
1904 @example
1905 #+TITLE:     the title to be shown (default is the buffer name)
1906 #+AUTHOR:    the author (default taken from @code{user-full-name})
1907 #+EMAIL:     his/her email address (default from @code{user-mail-address})
1908 #+LANGUAGE:  language for HTML, e.g. @samp{en} (@code{org-export-default-language})
1909 #+TEXT:      Some descriptive text to be inserted at the beginning.
1910 #+TEXT:      Several lines may be given.
1911 #+OPTIONS:   H:2  num:t  toc:t  \n:nil  @:t  ::t  |:t  ^:t  *:nil  TeX:t
1912 @end example
1913 @noindent
1914 The OPTIONS line is a compact form to specify export settings.  Here
1915 you can
1916 @cindex headline levels
1917 @cindex section-numbers
1918 @cindex table of contents
1919 @cindex linebreak-preservation
1920 @cindex quoted html tags
1921 @cindex fixed-width sections
1922 @cindex tables
1923 @cindex @TeX{}-like syntax for sub- and superscripts
1924 @cindex emphasized text
1925 @cindex @TeX{} macros
1926 @example
1927 H:      @r{set the number of headline levels for export}
1928 num:    @r{turn on/off section-numbers}
1929 toc:    @r{turn on/off table of contents}
1930 \n:     @r{turn on/off linebreak-preservation}
1931 @@:      @r{turn on/off quoted html tags}
1932 ::      @r{turn on/off fixed-width sections}
1933 |:      @r{turn on/off tables}
1934 ^:      @r{turn on/off @TeX{}-like syntax for sub- and superscripts.}
1935 *:      @r{turn on/off emphasized text (bold, italic, underlined)}
1936 TeX:    @r{turn on/off @TeX{} macros}
1937 @end example
1939 @node Comment lines,  , Export options, Exporting
1940 @section Comment lines
1941 @cindex comment lines
1942 @cindex exporting, not
1944 Lines starting with @samp{#} in column zero are treated as comments
1945 and will never be exported.  Also entire subtrees starting with the
1946 word @samp{COMMENT} will never be exported.  Finally, any text before
1947 the first headline will not be exported either.
1949 @table @kbd
1950 @kindex C-c ;
1951 @item C-c ;
1952 Toggle the COMMENT keyword at the beginning of an entry.
1953 @end table
1955 @node Miscellaneous, Index, Exporting, Top
1956 @chapter Miscellaneous
1958 @menu
1959 * Completion::                  M-TAB knows what you need
1960 * Customization::               Adapting Org-mode to your taste
1961 * FAQ::                         Frequently asked questions
1962 * Interaction::                 Other Emacs packages
1963 * Acknowledgments::             These people provided feedback and more
1964 * Bugs::                        Things which do not work perfectly
1965 @end menu
1967 @node Completion, Customization, Miscellaneous, Miscellaneous
1968 @section Completion
1969 @cindex complete @TeX{} symbols
1970 @cindex complete TODO keywords
1971 @cindex complete dictionary words
1972 @cindex complete option keywords
1974 Org-mode supports in-buffer completion.  This type of completion does
1975 not make use of the minibuffer.  You simply type a few letters into
1976 the buffer and use the key to complete text right there.
1978 @table @kbd
1979 @kindex M-@key{TAB}
1980 @item M-@key{TAB}
1981 Complete word at point
1982 @itemize @bullet
1983 @item
1984 At the beginning of a headline, complete TODO keywords.
1985 @item
1986 After @samp{\}, complete @TeX{} symbols supported by the exporter.
1987 @item
1988 After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
1989 @samp{OPTIONS} which set file-specific options for Org-mode.  When the
1990 option keyword is already complete, pressing @kbd{M-@key{TAB}} again
1991 will insert example settings for this keyword.
1992 @item
1993 Elsewhere, complete dictionary words using ispell.
1994 @end itemize
1995 @end table
1997 @node Customization, FAQ, Completion, Miscellaneous
1998 @section Customization
1999 @cindex customization
2000 @cindex options, for customization
2001 @cindex variables, for customization
2003 There is a large number of variables which can be used to customize
2004 Org-mode.  For the sake of compactness of the manual, we are not
2005 describing the variables here.  For an overview of customization
2006 variables, use @kbd{M-x org-customize}.  Or select @code{Browse Org
2007 Group} from the @code{Org->Customization} menu.
2009 @node FAQ, Interaction, Customization, Miscellaneous
2010 @section Frequently asked questions
2012 @enumerate
2013 @item @b{Org-mode seems to be useful default mode for the various
2014 @file{README} files I have scattered through my directories.  How do I
2015 turn it on for all @file{README} files?}
2016 @example
2017 (add-to-list 'auto-mode-alist '("README$" . org-mode))
2018 @end example
2020 @item @b{I would like to have two windows on the same Org-mode
2021 file, but with different outline visibility.  Is that possible?}@*
2022 @cindex @code{make-indirect-buffer}
2023 @cindex indirect buffers
2024 In GNU Emacs, you may use @emph{indirect buffers} which do exactly
2025 this.  See the documentation on the command
2026 @code{make-indirect-buffer}.  In XEmacs, this is currently not
2027 possible because of the different outline implementation., which visit
2028 the same file, but have separate settings, also for outline
2029 visibility.
2031 @item @b{Is there an easy way to insert links to web locations?}@*
2032 @cindex URL, paste into buffer
2033 Sure, just paste them into the buffer.  A plain-text URL-like string
2034 is directly interpreted as a link.
2036 @item @b{When I export my TODO list, every TODO item becomes a
2037 separate section.  How do I enforce these items to be exported as an
2038 itemized list?}@*
2039 If you plan to use ASCII or HTML export, make sure things you want to
2040 be exported as item lists are level 4 at least, even if that does mean
2041 there is a level jump.  For example
2043 @example
2044 * Todays top priorities
2045 **** TODO write a letter to xyz
2046 **** TODO Finish the paper
2047 **** Pick up kids at the school
2048 @end example
2050 Alternatively, if you need a specific value for the heading/item
2051 transition in a particular file, use the @samp{+OPTIONS} line to
2052 configure the @samp{H} switch.
2054 @example
2055 +OPTIONS:   H:2; ...
2056 @end example
2058 @item @b{I would like to export only a subtree of my file to HTML.  How?}@*
2059 @cindex exporting a subtree
2060 If you want to export a subtree, mark the subtree as region and then
2061 export.  Marking can be done with @kbd{C-c @@ C-x C-x}, for example.
2063 @item @b{Is there an easy way to insert an empty table template with a
2064 default number of rows and columns?}@*
2065 @cindex table, empty template
2066 To insert an empty table template, just type @samp{|-} and use
2067 @key{TAB}.  The default size can be changed with the variable
2068 @code{org-table-default-size}. 
2070 @item @b{When I am in the last column of a table and just above a
2071 horizontal line in the table, pressing TAB creates a new table line
2072 @i{before} the horizontal line.  How can I quickly move to the line
2073 @i{below} the horizontal line instead?}@*
2074 Press @key{down} (to get on the separator line) and then @key{TAB}.
2076 @item @b{How can I change the indentation of an entire table without
2077 fixing every line by hand?}@*
2078 @cindex indentation, of tables
2079 The indentation of a table is set by the first line.  So just fix the
2080 indentation of the first line and realign with @key{TAB}.
2082 @end enumerate
2085 @node Interaction, Acknowledgments, FAQ, Miscellaneous
2086 @section Interaction with other packages
2087 @cindex packages, interaction with other
2088 @cindex @file{planner.el}
2089 @cindex @file{remember.el}
2090 @cindex @file{table.el}
2091 @file{Org.el} can cooperate with the following packages:
2093 @table @asis
2094 @cindex @file{remember.el}
2095 @item @file{remember.el} by John Wiegley
2096 Org mode cooperates with remember, see @ref{Remember}.
2097 @cindex @file{plannner.el}
2098 @item @file{planner.el} by John Wiegley
2099 Planner is another tool to plan work and keep track of tasks.  Planner
2100 uses a multi-file approach with project pages and day pages.  Is based
2101 on Emacs-Wiki.  It can be useful to display the agenda entries
2102 resulting from org files in day-pages of the planner.  This can be
2103 done through the diary of the calendar: Integrate org files into the
2104 diary as described above, and then turn on the diary support of
2105 planner.
2106 @cindex @file{table.el}
2107 @item @file{table.el} by Takaaki Ota
2108 Org mode cooperates with table.el, see @ref{table.el}.
2109 @end table
2111 @page  @c FIXME
2113 @node Acknowledgments, Bugs, Interaction, Miscellaneous
2114 @section Acknowledgments
2115 @cindex acknowledgments
2117 Org-mode was written by Carsten Dominik, who still maintains it at the
2118 Org-mode homepage @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
2119 The following people have helped the development along with ideas,
2120 suggestions and patches.
2122 @itemize @bullet
2123 @item
2124 Matthias Rempe (Oelde) provided ideas and suggestions, a patch
2125 introducing Windows NT/2000 support, and quality control.
2126 @item
2127 Kevin Rogers contributed code to access VM files on remote hosts.
2128 @item
2129 Juergen Vollmer contributed code generating the table of contents
2130 in HTML output, and other export improvements.
2131 @item
2132 Christian Egli converted the documentation into TeXInfo format.  He
2133 also showed me his plans for a multifile summary for Org-mode. Some of
2134 his ideas have found their way into the agenda.
2135 @item
2136 Philip Rooke created the Org-mode reference card.  He also helped with
2137 beta testing and contributed a number of very useful ideas.
2138 @item
2139 Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
2140 @file{organizer-mode.el}.
2141 @item
2142 Scheduling TODO items was inspired by John Wiegley's @file{planner.el}.
2143 @item
2144 Sacha Chua, the current maintainer of Planner suggested to take some
2145 linking code from Planner, which I did (for RMAIL and Wanderlust).
2146 @item
2147 Oliver Oppitz sent several useful suggestions.
2148 @item
2149 Carsten Wimmer suggested some changes and helped fix a bug in linking
2150 to GNUS.
2151 @item
2152 Pavel Chalmoviansky reported bugs and suggested improvements related
2153 to the agenda treatment of items with specifed time.
2154 @item
2155 Stefan Monnier provided a patch with lots of little fixes to keep the
2156 Emacs-Lisp compiler happy.
2157 @end itemize
2159 @node Bugs,  , Acknowledgments, Miscellaneous
2160 @section Bugs
2161 @cindex bugs
2163 Here is a list of things which should work differently, but which I
2164 have found too hard to fix.
2166 @itemize @bullet
2167 @item 
2168 When the application called by @kbd{C-c C-o} to open a file link fails
2169 (for example because the application does not exits or refuses to open
2170 the file), it does so silently.  No error message is displayed.
2171 @item 
2172 Under XEmacs, if Org-mode entries are included into the diary, it is
2173 not possible to jump back from the diary to the org file.  Apparently,
2174 the text properties are lost when the fancy-diary-display is used.
2175 However, from Org-mode's timeline and agenda buffers (created with
2176 @kbd{C-c C-r} and @kbd{C-c a}), things do work correctly.
2177 @item 
2178 Linux should also have a default viewer application, using mailcap.
2179 Maybe we can use GNUS or VM mime code?  Or dired's guessing commands?
2180 Any hints (or even patches) are appreciated.
2181 @item 
2182 When you write @samp{x = a /b/ c}, b will be exported in italics.
2183 @item 
2184 The exporters work well, but could be made more efficient.
2185 @end itemize
2187 @node Index, Key Index, Miscellaneous, Top
2188 @chapter Index
2190 @printindex cp
2192 @node Key Index,  , Index, Top
2193 @chapter Key Index
2195 @printindex ky
2197 @bye
2200 @ignore
2201    arch-tag: 7893d1fe-cc57-4d13-b5e5-f494a1bcc7ac
2202 @end ignore