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