Mercurial > emacs
changeset 69929:beebc22085fe
(Link format): New section, emphasis on bracket links.
(External links): Document bracket links.
(FAQ): Expanded to cover shell links and the new link format.
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Tue, 11 Apr 2006 08:36:35 +0000 |
parents | 56d8e0539545 |
children | 2f524fd75dec |
files | man/org.texi |
diffstat | 1 files changed, 692 insertions(+), 402 deletions(-) [+] |
line wrap: on
line diff
--- a/man/org.texi Tue Apr 11 07:13:33 2006 +0000 +++ b/man/org.texi Tue Apr 11 08:36:35 2006 +0000 @@ -4,8 +4,8 @@ @setfilename ../info/org @settitle Org Mode Manual -@set VERSION 4.10 -@set DATE March 2006 +@set VERSION 4.21 +@set DATE April 2006 @dircategory Emacs @direntry @@ -82,6 +82,7 @@ * Hyperlinks:: Notes in context * TODO items:: Every tree branch can be a TODO item * Timestamps:: Assign date and time to items +* Tags:: Tagging headlines and matching sets of tags * Agenda Views:: Collecting information into views * Exporting:: Sharing and publishing of notes * Miscellaneous:: All the rest which did not fit elsewhere @@ -94,7 +95,7 @@ Introduction * Summary:: Brief summary of what Org-mode does -* Installation and Activation:: How to install Org-mode +* Installation and activation:: How to install Org-mode * Feedback:: Bug reports, ideas, patches etc. Document Structure @@ -106,12 +107,12 @@ * Structure editing:: Changing sequence and level of headlines * Archiving:: Move done task trees to a different place * Sparse trees:: Matches embedded in context -* Tags:: Tagging headlines and matching sets of tags * Plain Lists:: Editing hand-formatted lists Tables * Built-in table editor:: Simple tables +* Narrow columns:: Stop wasting space in tables * Table calculations:: Compute a field from other fields * orgtbl-mode:: The table editor as minor mode * table.el:: Complex tables @@ -127,13 +128,14 @@ Hyperlinks -* Internal Links:: Links to other places in the current file -* External Links:: URL-like links to the world +* Link format:: How links in Org-mode are formatted +* Internal links:: Links to other places in the current file +* External links:: URL-like links to the world * Managing links:: Creating, inserting and following * Search Options:: Linking to a specific location * Remember:: Org-trees store quick notes -Internal Links +Internal links * Radio targets:: Make targets trigger links in plain text. * CamelCase links:: Activating CamelCase words as links @@ -141,7 +143,7 @@ TODO items * TODO basics:: Marking and displaying TODO entries -* Progress Logging:: Document your productivity +* Progress logging:: Document your productivity * TODO extensions:: Workflow and assignments * Priorities:: Some things are more important than others @@ -156,6 +158,12 @@ * Time stamps:: Assigning a time to a tree entry * Creating timestamps:: Commands which insert timestamps +Tags + +* Tag inheritance:: Tags use the tree structure of the outline +* Setting tags:: How to assign tags to a headline +* Tag searches:: Searching for combinations of tags + Agenda Views * Agenda files:: Files being searched for agenda information @@ -189,6 +197,7 @@ * Completion:: M-TAB knows what you need * Customization:: Adapting Org-mode to your taste +* Updating settings:: How to tell Org-mode that settings have changed * Clean view:: Getting rid of leading stars in the outline * TTY keys:: Using Org-mode on a tty * FAQ:: Frequently asked questions @@ -205,11 +214,11 @@ @menu * Summary:: Brief summary of what Org-mode does -* Installation and Activation:: How to install Org-mode +* Installation and activation:: How to install Org-mode * Feedback:: Bug reports, ideas, patches etc. @end menu -@node Summary, Installation and Activation, Introduction, Introduction +@node Summary, Installation and activation, Introduction, Introduction @section Summary @cindex summary @@ -234,7 +243,7 @@ feel like a simple but easy to use outliner. Complexity is not imposed, but a large amount of functionality is available when you need it. Org-mode can be used on different levels and in different -ways, for example +ways, for example: @example @r{@bullet{} as an outline extension with visibility cycling and structure editing} @@ -255,7 +264,7 @@ @page -@node Installation and Activation, Feedback, Summary, Introduction +@node Installation and activation, Feedback, Summary, Introduction @section Installation and Activation @cindex installation @cindex autoload @@ -301,9 +310,9 @@ @noindent which will select Org-mode for this buffer no matter what the file's name is. See also the variable -@code{org-insert-mode-line-in-empty-file'}. - -@node Feedback, , Installation and Activation, Introduction +@code{org-insert-mode-line-in-empty-file}. + +@node Feedback, , Installation and activation, Introduction @section Feedback @cindex feedback @cindex bug reports @@ -316,16 +325,17 @@ For bug reports, please provide as much information as possible, including the version information of Emacs (@kbd{C-h v emacs-version -@key{RET}}) and Org-mode (@kbd{M-x org-version}), as well as the -Org-mode related setup in @file{.emacs}. If an error occurs, a +@key{RET}}) and Org-mode (@kbd{C-h v org-version @key{RET}}), as well as +the Org-mode related setup in @file{.emacs}. If an error occurs, a traceback can be very useful. Often a small example file helps, along with clear information about: + @enumerate @item What exactly did you do? @item What did you expect to happen? @item What happened instead? @end enumerate -@noindent Thanks for helping to improve this mode. +@noindent Thank you for helping to improve this mode. @node Document Structure, Tables, Introduction, Top @chapter Document Structure @@ -343,7 +353,6 @@ * Structure editing:: Changing sequence and level of headlines * Archiving:: Move done task trees to a different place * Sparse trees:: Matches embedded in context -* Tags:: Tagging headlines and matching sets of tags * Plain Lists:: Editing hand-formatted lists @end menu @@ -367,9 +376,9 @@ @cindex headlines @cindex outline tree -Headlines define the structure of an outline tree. The Headlines in +Headlines define the structure of an outline tree. The headlines in Org-mode start with one or more stars, on the left margin. For -example +example: @example * Top level headline @@ -380,6 +389,7 @@ more text * Another top level headline @end example + @noindent Some people find the many stars too noisy and would prefer an outline that has whitespace followed by a single star as headline starters. @ref{Clean view} describes a setup to realize this. @@ -404,10 +414,12 @@ @kindex @key{TAB} @item @key{TAB} Rotate current subtree between the states + @example ,-> FOLDED -> CHILDREN -> SUBTREE --. '-----------------------------------' @end example + At the beginning of the buffer (or when called with @kbd{C-u}), this does the same as the command @kbd{S-@key{TAB}} below. @@ -418,10 +430,12 @@ @kindex S-@key{TAB} @item S-@key{TAB} Rotate the entire buffer between the states + @example ,-> OVERVIEW -> CONTENTS -> SHOW ALL --. '--------------------------------------' @end example + Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field. @cindex show all, command @@ -499,23 +513,23 @@ Insert new TODO entry with same level as current heading. @kindex M-@key{left} @item M-@key{left} -Promote current heading by one level +Promote current heading by one level. @kindex M-@key{right} @item M-@key{right} -Demote current heading by one level +Demote current heading by one level. @kindex M-S-@key{left} @item M-S-@key{left} -Promote the current subtree by one level +Promote the current subtree by one level. @kindex M-S-@key{right} @item M-S-@key{right} -Demote the current subtree by one level +Demote the current subtree by one level. @kindex M-S-@key{up} @item M-S-@key{up} Move subtree up (swap with previous subtree of same -level) +level). @kindex M-S-@key{down} @item M-S-@key{down} -Move subtree down (swap with next subtree of same level) +Move subtree down (swap with next subtree of same level). @kindex C-c C-x C-w @kindex C-c C-x C-k @item C-c C-x C-w @@ -567,7 +581,7 @@ agenda, archiving to a different file is a good way to keep archived trees from contributing agenda items. -@node Sparse trees, Tags, Archiving, Document Structure +@node Sparse trees, Plain Lists, Archiving, Document Structure @section Sparse trees @cindex sparse trees @cindex trees, sparse @@ -602,11 +616,13 @@ use the variable @code{org-agenda-custom-commands} to define fast keyboard access to specific sparse trees. These commands will then be accessible through the agenda dispatcher (@pxref{Agenda dispatcher}). -For example +For example: + @lisp (setq org-agenda-custom-commands '(("f" occur-tree "FIXME"))) @end lisp + @noindent will define the key @kbd{C-c a f} as a shortcut for creating a sparse tree matching the string @samp{FIXME}. @@ -621,97 +637,20 @@ of the document @footnote{This does not work under XEmacs, because XEmacs uses selective display for outlining, not text properties}. Or you can use the command @kbd{C-c C-x v} to copy the visible part of -the document to another file (extension @file{.txt}) which then can be +the document to another file (extension @file{.txt}) which can then be printed in any desired way. -@node Tags, Plain Lists, Sparse trees, Document Structure -@section Tags -@cindex tags -@cindex headline tagging -@cindex matching, tags -@cindex sparse tree, tag based - -If you wish to implement a tag system to cross-correlate information, -this can be done as well in Org-mode. Every headline can contain a -list of tags, at the end of the headline. Tags are normal words -containing letters, numbers, @samp{_}, and @samp{@@}. Tags must be -preceded and followed by a single colon; like @samp{:WORK:}. Several -tags can be specified like @samp{:WORK:URGENT:}. - -@cindex inheritance, of tags -Tags make use of the hierarchical structure of outline trees. If a -heading has a certain tag, all subheadings will inherit the tag as -well. For example, in the list - -@example -* Meeting with the French group :WORK: -** Summary by Frank :BOSS:NOTES: -*** TODO Prepare slides for him :ACTION: -@end example -@noindent -the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:}, -@samp{:NOTES:}, and @samp{:ACTION:}. When executing tag searches and -Org-mode finds that a certain headline matches the search criterion, -it will not check any sublevel headline, assuming that these likely -also match, and that the list of matches can become very long. You -can influence inheritance and searching using the variables -@code{org-use-tag-inheritance} and -@code{org-tags-match-list-sublevels}. - -@kindex M-@key{TAB} -Tags can simply be typed into the buffer. After a colon, -@kbd{M-@key{TAB}} offers completion on all tags being used in the -current buffer. There are also special commands for inserting tags, -and for executing searches based on tags. - -@table @kbd -@kindex C-c C-c -@item C-c C-c -@cindex completion, of tags -Enter new tags for the current headline. The minibuffer will prompt -for a list of tags and offer completion with respect to all other tags -used in the current buffer. Several tags, separated by colons, may be -specified at the prompt. After pressing @key{RET}, the tags will -be inserted and aligned to @code{org-tags-column}. When called with a -@kbd{C-u} prefix, align all tags in the current buffer to that column, -just to make things look nice. TAGS are automatically realigned after -promotion, demotion, and TODO state changes (@pxref{TODO basics}). -@kindex C-c \ -@item C-c \ -Create a sparse tree with all headlines matching a tags search. -@kindex C-c a m -@item C-c a m -Create a global list of tag matches from all agenda files. -@xref{Matching headline tags}. -@kindex C-c a M -@item C-c a M -Create a global list of tag matches from all agenda files, but check -only TODO items and force checking subitems (see variable -@code{org-tags-match-list-sublevels}). -@end table - -A tags search string can use Boolean operators @samp{&} for AND and -@samp{|} for OR. @samp{&} binds more strongly than -@samp{|}. Parenthesis are currently no implemented. A tag may also be -preceded by @samp{-}, to select against it, and @samp{+} is syntactic -sugar for positive selection. The AND operator @samp{&} is optional -when @samp{+} or @samp{-} is present. For example, @samp{+WORK-BOSS} -would select all headlines that are tagged @samp{:WORK:}, but discard -those also tagged @samp{:BOSS:}. The search string @samp{WORK|LAPTOP} -selects all lines tagged @samp{:WORK:} or @samp{:LAPTOP:}. The string -@samp{WORK|LAPTOP&NIGHT} requires that the @samp{:LAPTOP:} lines are -also tagged @samp{NIGHT}. - -@node Plain Lists, , Tags, Document Structure + +@node Plain Lists, , Sparse trees, Document Structure @section Plain Lists @cindex plain lists @cindex lists, plain @cindex lists, ordered @cindex ordered lists -Headlines define the structure of the Org-mode file, and also lists -(for example TODO items (@pxref{TODO items}) should be created using -headline levels. However, when taking notes, the plain text is +Headlines define both the structure of the Org-mode file, and also lists +(for example, TODO items (@pxref{TODO items}) should be created using +headline levels). However, when taking notes, the plain text is sometimes easier to read with hand-formatted lists. Org-mode supports editing such lists, and the HTML exporter (@pxref{Exporting}) does parse and format them. @@ -721,11 +660,11 @@ bullet, lines must be indented or they will be seen as top-level headlines. Also, when you are hiding leading stars to get a clean outline view, plain list items starting with a star are visually -indistinguishable from true headlines. In short: Even though @samp{*} +indistinguishable from true headlines. In short: even though @samp{*} is supported, it may be better to not use it for plain list items} as bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items belonging to the same list must have the same indentation on the first -line. In particular, if an ordered list reaches number @samp{10.}, also +line. In particular, if an ordered list reaches number @samp{10.}, then the 2--digit numbers must be written left-aligned with the other numbers in the list. Indentation also determines the end of a list item. It ends before the next line that is indented like the bullet/number, or @@ -792,12 +731,13 @@ @menu * Built-in table editor:: Simple tables +* Narrow columns:: Stop wasting space in tables * Table calculations:: Compute a field from other fields * orgtbl-mode:: The table editor as minor mode * table.el:: Complex tables @end menu -@node Built-in table editor, Table calculations, Tables, Tables +@node Built-in table editor, Narrow columns, Tables, Tables @section The built-in table editor @cindex table editor, builtin @@ -826,6 +766,7 @@ |Name|Phone|Age |- @end example + @noindent and then press @key{TAB} to align the table and start filling in fields. @@ -840,18 +781,16 @@ @table @kbd @tsubheading{Creation and conversion} -@item M-x org-table-create -Creates an empty Org-mode table. However, it is much easier to just -start typing, like @kbd{|Name|Phone|Age @key{RET} |- @key{TAB}} - -@kindex C-c C-c -@item C-c C-c -Convert region to table. Works when the cursor is not in an existing -table, and when there is a region defined. If every line contains at -least one TAB character, the function assumes that the material is tab -separated. If not, lines are split at whitespace into fields. You -can use a prefix argument to indicate how many consecutive spaces are -at least required to indicate a field separator (default: just one). +@kindex C-c | +@item C-c | +Convert the active region to table. If every line contains at least one +TAB character, the function assumes that the material is tab separated. +If not, lines are split at whitespace into fields. You can use a prefix +argument to indicate the minimum number of consequtive spaces required +to indentify a field separator (default: just one).@* +If there is no active region, this command creates an empty Org-mode +table. However, it's easier to just start typing, like +@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}. @tsubheading{Re-aligning and field motion} @kindex C-c C-c @@ -878,7 +817,7 @@ @kindex M-@key{right} @item M-@key{left} @itemx M-@key{right} -Move the current column left/right +Move the current column left/right. @kindex M-S-@key{left} @item M-S-@key{left} @@ -892,7 +831,7 @@ @kindex M-@key{down} @item M-@key{up} @itemx M-@key{down} -Move the current row up/down +Move the current row up/down. @kindex M-S-@key{up} @item M-S-@key{up} @@ -940,7 +879,7 @@ is no region, the current field is split at the cursor position and the text fragment to the right of the cursor is prepended to the field one line down. If there is no region, but you specify a prefix ARG, the -current field gets blank, and the content is appended to the field +current field is made blank, and the content is appended to the field above. @tsubheading{Calculations} @@ -1000,36 +939,87 @@ (@pxref{Interaction}). @tsubheading{Miscellaneous} -@kindex C-c | -@item C-c | -Toggle the visibility of vertical lines in tables. The lines are -still there, only made invisible with a text property. Any @samp{|} -added by hand will become invisible on the next align. +@kindex C-c ` +@item C-c ` +Edit the current field in a separate window. This is useful for fields +that are not fully visible (@pxref{Narrow columns}). When called with a +@kbd{C-u} prefix, just make the full field visible, so that it can be +edited in place. + +@kindex C-c @key{TAB} +@item C-c @key{TAB} +This is an alias for @kbd{C-u C-c `} to make the current field fully +visible. @item M-x org-table-import Import a file as a table. The table should be TAB- or whitespace -separated. Useful for example to import an Excel table or data from a +separated. Useful, for example, to import an Excel table or data from a database, because these programs generally can write TAB-separated text files. This command works by inserting the file into the buffer and then converting the region to a table. Any prefix argument is passed on to the converter, which uses it to determine the separator. @item M-x org-table-export -Export the table as a TAB-separated file. Useful for data exchange with -for example Excel or database programs. +Export the table as a TAB-separated file. Useful for data exchange with, +for example, Excel or database programs. @end table -If you don't like the automatic table editor because it gets into your -way in lines which you would like to start with @samp{|}, you can turn +If you don't like the automatic table editor because it gets in your +way on lines which you would like to start with @samp{|}, you can turn it off with + @lisp (setq org-enable-table-editor nil) @end lisp + @noindent The only table command which then still works is @kbd{C-c C-c} to do a manual re-align. -@node Table calculations, orgtbl-mode, Built-in table editor, Tables +@node Narrow columns, Table calculations, Built-in table editor, Tables +@section Narrow columns +@cindex narrow columns in tables + +The width of columns is automatically determined by the table editor. +Sometimes a single field or a few fields need to carry more text, +leading to unconveniently wide columns. To limit@footnote{This feature +does not work on XEmacs.} the width of a column, one field anywhere in +the column must carry the string @samp{<N>} where @samp{N} is an integer +specifying the width of the column in characters. The next re-align +will then set the width of this column to no more than this value. + +@example +|---+------------------------------| |---+--------| +| | | | | <6> | +| 1 | one | | 1 | one | +| 2 | two | ----\ | 2 | two | +| 3 | This is a long chunk of text | ----/ | 3 | This=> | +| 4 | four | | 4 | four | +|---+------------------------------| |---+--------| +@end example + +@noindent +Fields that are wider become clipped and end in the string @samp{=>}. +Note that the full text is still in the buffer, it is only invisible. +To see the full text, hold the mouse over the field - a tooltip window +will show the full content. To edit such a field, use the command +@kbd{C-c `} (that is @kbd{C-c} followed by the backquote). This will +open a new window with the full field. Edit it and finish with @kbd{C-c +C-c}. + +When visiting a file containing a table with narrowed columns, the +necessary character hiding has not yet happened, and the table needs to +be aligned before it looks nice. Setting the option +@code{org-startup-align-all-tables} will realign all tables in a file +upon visiting, but also slow down startup. You can also set this option +on a per-file basis with: + +@example +#+STARTUP: align +#+STARTUP: noalign +@end example + +@node Table calculations, orgtbl-mode, Narrow columns, Tables @section Calculations in tables @cindex calculations, in tables @cindex spreadsheet capabilities @@ -1062,9 +1052,9 @@ A formula can be any algebraic expression understood by the Emacs @file{calc} package. Note that @file{calc} has the slightly -non-standard conversion that @samp{/} has lower precedence than +non-standard convention that @samp{/} has lower precedence than @samp{*}, so that @samp{a/b*c} is interpreted as @samp{a/(b*c)}. Before -evaluation by @code{calc-eval} (@pxref{Calling Calc from Your +evaluation by @code{calc-eval} (@pxref{Calling Calc from Your Lisp Programs,calc-eval,Calling calc from Your Lisp Programs,calc,GNU Emacs Calc Manual}), variable substitution takes place: @@ -1091,7 +1081,7 @@ @code{org-table-formula-constants}. If you have the @file{constants.el} package, it will also be used to resolve constants, including natural constants like @samp{$h} for Planck's -constant, units like @samp{$km} for kilometers. Column names and +constant, and units like @samp{$km} for kilometers. Column names and parameters can be specified in special table lines. These are described below, see @ref{Advanced features}. @@ -1106,10 +1096,11 @@ @code{org-calc-default-modes}.} during execution, e.g. @samp{p20} to switch the internal precision to 20 digits, @samp{n3}, @samp{s3}, @samp{e2} or @samp{f4} to switch to normal, scientific, engineering, -or fix display format, respectively, and @samp{D}, @samp{R}, @samp{F}, +or fixed display format, respectively, and @samp{D}, @samp{R}, @samp{F}, and @samp{S} to turn on degrees, radians, fraction and symbolic modes, respectively. In addition, you may provide a @code{printf} format specifier to reformat the final result. A few examples: + @example $1+$2 @r{Sum of first and second field} $1+$2;%.2f @r{Same, format result to two decimals} @@ -1120,7 +1111,7 @@ tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1} sin($1);Dp3%.1e @r{Same, but use printf specifier for display} vmean($2..$7) @r{Compute column range mean, using vector function} - vsum(&III) @r{Sum numbers from 3rd hline above to here} + vsum(&III) @r{Sum numbers from 3rd hline above, up to here} taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} @end example @@ -1164,12 +1155,13 @@ @node Advanced features, Named-field formulas, Column formulas, Table calculations @subsection Advanced features -If you want want the recalculation of fields to happen automatically, +If you want the recalculation of fields to happen automatically, or if you want to be able to assign a formula to an individual field (instead of an entire column) you need to reserve the first column of the table for special marking characters. Here is an example of a table that collects exam results of students and makes use of these features: + @example @group |---+---------+--------+--------+--------+-------+------| @@ -1192,7 +1184,7 @@ @end example @noindent @b{Important}: Please note that for these special tables, -recalculating the table with @kbd{C-u C-c *} does only affect rows +recalculating the table with @kbd{C-u C-c *} will only affect rows which are marked @samp{#} or @samp{*}, and named fields. The column formulas are not applied in rows with empty first field. @@ -1209,7 +1201,7 @@ associated with them. @item _ Similar to @samp{^}, but defines names for the fields in the row -@emph{below}. +@emph{below}. @item $ Fields in this row can define @emph{parameters} for formulas. For example, if a field in a @samp{$} row contains @samp{max=50}, then @@ -1226,8 +1218,8 @@ Selects this line for global recalculation with @kbd{C-u C-c *}, but not for automatic recalculation. Use this when automatic recalculation slows down editing too much. -@item -Unmarked lines are exempted from recalculation with @kbd{C-u C-c *}. +@item +Unmarked lines are exempt from recalculation with @kbd{C-u C-c *}. All lines that should be recalculated should be marked with @samp{#} or @samp{*}. @end table @@ -1240,7 +1232,7 @@ A named field can have its own formula associated with it. In the example above, this is used for the @samp{at} field that contains the average result of the students. To enter a formula for a named -field, just type it onto the buffer, preceded by @samp{:=}. Or use +field, just type it into the buffer, preceded by @samp{:=}. Or use @kbd{C-u C-c =}. This equation will be stored below the table like @samp{$name=...}. Any recalculation in the table (even if only requested for the current line) will also update all named field @@ -1251,9 +1243,9 @@ @cindex formula editing @cindex editing, of table formulas -To edit a column or field formula, you can use the commands @kbd{C-c +To edit a column or field formula, use the commands @kbd{C-c =} and @kbd{C-u C-c =}, respectively. The currently active expression -is then presented as default in the minibuffer, were it may be edited. +is then presented as default in the minibuffer, where it may be edited. Note that making a table field blank does not remove the formula associated with the field - during the next recalculation the field @@ -1264,7 +1256,7 @@ @kindex C-c C-c You may edit the @samp{#+TBLFM} directly and re-apply the changed equations with @kbd{C-c C-c} in that line, or with the -normal recalculation commands in the table. +normal recalculation commands in the table. @kindex C-c ' @kindex C-c C-c @@ -1283,8 +1275,8 @@ When the evaluation of a formula leads to an error, the field content becomes the string @samp{#ERROR}. If you would like see what is going on during variable substitution and calculation in order to find a -bug, turn on formula debugging in the menu and repeat the calculation -by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field. +bug, turn on formula debugging in the menu and repeat the calculation, +for example by pressing @kbd{C-c = @key{RET}} in a field. Detailed information will be displayed. @node Appetizer, , Editing/debugging formulas, Table calculations @@ -1320,6 +1312,7 @@ The minor mode Orgtbl-mode makes this possible. You can always toggle the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for example in mail mode, use + @lisp (add-hook 'mail-mode-hook 'turn-on-orgtbl) @end lisp @@ -1362,46 +1355,81 @@ links to other files, Usenet articles, emails and much more. @menu -* Internal Links:: Links to other places in the current file -* External Links:: URL-like links to the world +* Link format:: How links in Org-mode are formatted +* Internal links:: Links to other places in the current file +* External links:: URL-like links to the world * Managing links:: Creating, inserting and following * Search Options:: Linking to a specific location * Remember:: Org-trees store quick notes @end menu -@node Internal Links, External Links, Hyperlinks, Hyperlinks -@section Internal Links +@node Link format, Internal links, Hyperlinks, Hyperlinks +@section Link format +@cindex link format +@cindex format, of links + +Org-mode will recognize plain URL-like links and activate them as +clickable links. However, the general link format looks like this: + +@example +[[link][description]] @r{or alternatively} [[link]] +@end example + +Once a link in the buffer is complete (all brackets present), Org-mode +will change the display so that @samp{description} is displayed instead +of @samp{[[link][description]]} and @samp{link} is displayed instead of +@samp{[[link]]}. Links will be highlighted in the face @code{org-link}, +which by default is an underlined face. You can directly edit the +visible part of a link. Note that this can be either the @samp{link} +part (if there is not description) or the @samp{description} part. To +edit also the invisible @samp{link} part, use @kbd{C-c C-l} with the +cursor on the link. + +If you place the cursor at the beginning or just behind the end of the +displayed text and press @key{BACKSPACE}, you will remove the +(invisible) bracket at that location. This makes the link incomplete +and the internals are again displayed as plain text. Inserting the +missing bracket does hide the link internals again. To show the +internal structure of all links, use the menu entry +@code{Org->Hyperlinks->Literal links}. + +@node Internal links, External links, Link format, Hyperlinks +@section Internal links @cindex internal links @cindex links, internal @cindex CamelCase links -Strings inside double brackets like @samp{[[My Target]]} are links -that lead to a text search in the current file. The link can be -followed with @kbd{C-c C-o} or with a mouse click (@pxref{Managing -links}). The preferred match for such a link is a dedicated target: -The same string in double angular brackets. Targets may be located -anywhere, often it is convenient to put them into a comment line, for -example +If the link text does not look like a URL, links are considered to be +internal in the current file. Links such as @samp{[[My Target]]} or +@samp{[[My Target][Find my target]]} lead to a text search in the +current file. The link can be followed with @kbd{C-c C-o} when the +cursor is on the link, or with a mouse click (@pxref{Managing links}). +The preferred match for such a link is a dedicated target: The same +string in double angular brackets. Targets may be located anywhere, +often it is convenient to put them into a comment line, for example + @example # <<My Target>> @end example -If no dedicated target exists, Org-mode will search for the words in -the link, in the above example for @samp{my target}. Links starting -with a star like @samp{*My Target} restrict the search to headlines. -When searching, Org-mode will first try an exact match, but then move -on to more and more lenient searches. For example, the link -@samp{[[*My Targets]]} will find any of the following +If no dedicated target exists, Org-mode will search for the words in the +link, often removing the need for a dedicated target. In the above +example the search would be for @samp{my target}. Links starting with a +star like @samp{*My Target} restrict the search to headlines. When +searching, Org-mode will first try an exact match, but then move on to +more and more lenient searches. For example, the link @samp{[[*My +Targets]]} will find any of the following: + @example ** My targets ** TODO my targets are bright ** my 20 targets are @end example -It is therefore often not necessary to set a dedicated target. To -insert a link targeting a headline, in-buffer completion can be used. -Just type a star followed by a few optional letters into the buffer -and press @kbd{M-@key{TAB}}. All headlines in the current buffer will -be offered as completions. @xref{Managing links}, for more commands + +To insert a link targeting a headline, in-buffer completion can be used. +Just type a star followed by a few optional letters into the buffer and +press @kbd{M-@key{TAB}}. All headlines in the current buffer will be +offered as completions. @xref{Managing links}, for more commands creating links. Following a link pushes a mark onto Org-mode's own mark ring. You can @@ -1414,7 +1442,7 @@ * CamelCase links:: Activating CamelCase words as links @end menu -@node Radio targets, CamelCase links, Internal Links, Internal Links +@node Radio targets, CamelCase links, Internal links, Internal links @subsection Radio targets You can configure Org-mode to link any occurrences of certain target @@ -1427,24 +1455,20 @@ loaded into Emacs. To update the target list during editing, press @kbd{C-c C-c} with the cursor on or at a target. -@node CamelCase links, , Radio targets, Internal Links +@node CamelCase links, , Radio targets, Internal links @subsection CamelCase words as links @cindex completion, of CamelCase links @cindex CamelCase links, completion of -As an alternative to @samp{[[...]]} links, Org-mode also supports -CamelCase words as links. This feature is not turned on by default -because of the occasional inconsistencies this system suffers from. -To activate CamelCase words as links, and to make headline completion -offer CamelCase version of headlines, the following customization is -needed: -@lisp -(setq org-activate-camels t - org-file-link-context-use-camel-case t) -@end lisp - -@node External Links, Managing links, Internal Links, Hyperlinks -@section External Links +Org-mode also supports CamelCase words as links. This feature is not +turned on by default because of the inconsistencies this system suffers +from. To activate CamelCase words as links, you need to customize +the option @code{org-activate-links}. A CamelCase word then leads to a +text search such that @samp{CamelCaseLink} is equivalent to +@samp{[[camel case link]]}. + +@node External links, Managing links, Internal links, Hyperlinks +@section External links @cindex links, external @cindex external links @cindex links, external @@ -1460,39 +1484,46 @@ @cindex SHELL links Org-mode supports links to files, websites, Usenet and email messages; -and BBDB database entries. Links are just plain-text URL-like -locators, optionally enclosed by angular brackets. The following list -shows examples for each link type. +and BBDB database entries. External links are URL-like locators. The +following list shows examples for each link type. @example -<http://www.astro.uva.nl/~dominik> @r{on the web} -<file:/home/dominik/images/jupiter.jpg> @r{file, absolute path} -<file:papers/last.pdf> @r{file, relative path} -<news:comp.emacs> @r{Usenet link} -<mailto:adent@@galaxy.net> @r{Mail link} -<vm:folder> @r{VM folder link} -<vm:folder#id> @r{VM message link} -<vm://myself@@some.where.org/folder#id> @r{VM on remote machine} -<wl:folder> @r{WANDERLUST folder link} -<wl:folder#id> @r{WANDERLUST message link} -<mhe:folder> @r{MH-E folder link} -<mhe:folder#id> @r{MH-E message link} -<rmail:folder> @r{RMAIL folder link} -<rmail:folder#id> @r{RMAIL message link} -<gnus:group> @r{GNUS group link} -<gnus:group#id> @r{GNUS article link} -<bbdb:Richard Stallman> @r{BBDB link} -<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} +http://www.astro.uva.nl/~dominik @r{on the web} +file:/home/dominik/images/jupiter.jpg @r{file, absolute path} +file:papers/last.pdf @r{file, relative path} +news:comp.emacs @r{Usenet link} +mailto:adent@@galaxy.net @r{Mail link} +vm:folder @r{VM folder link} +vm:folder#id @r{VM message link} +vm://myself@@some.where.org/folder#id @r{VM on remote machine} +wl:folder @r{WANDERLUST folder link} +wl:folder#id @r{WANDERLUST message link} +mhe:folder @r{MH-E folder link} +mhe:folder#id @r{MH-E message link} +rmail:folder @r{RMAIL folder link} +rmail:folder#id @r{RMAIL message link} +gnus:group @r{GNUS group link} +gnus:group#id @r{GNUS article link} +bbdb:Richard Stallman @r{BBDB link} +shell:ls *.org @r{A shell command} @end example -A link may contain space characters and is terminated by @samp{>} or by -the end of a line. In tables, the end of a table field also terminates -a link. Angle brackets around a link are not required, but are -recommended to avoid problems with punctuation and other text following -the link. See also the variable @code{org-allow-space-in-links}. - - -@node Managing links, Search Options, External Links, Hyperlinks +A link should be enclosed in double brackets and may contain a +descriptive text to be displayed instead of the url (@pxref{Link +format}), for example: + +@example +[[http://www.gnu.org/software/emacs/][GNU Emacs]] +@end example + +@cindex angular brackets, around links +@cindex plain text external links +Org-mode also finds external links in the normal text and activates them +as links. If spaces must be part of the link (for example in +@samp{bbdb:Richard Stallman}) or to remove ambiguities about the end of +the link, enclose them in angular brackets. + +@node Managing links, Search Options, External links, Hyperlinks @section Managing links Org-mode provides methods to create a link in the correct syntax, to @@ -1504,53 +1535,63 @@ @item C-c l Store a link to the current location. This is a @emph{global} command which can be used in any buffer to create a link. The link will be -stored for later insertion into an Org-mode buffer (see below). For -VM, RMAIL, WANDERLUST, GNUS and BBDB buffers, the link will point to -the current article/entry. For W3 and W3M buffer, the link goes to -the current URL. For Org-mode files, the current headline is -targeted. For any other files, the link will point to the file, with -a search string (@pxref{Search Options}) pointing to the -contents of the current line. If there is an active region, the -selected words will form the basis of the search string. The key -binding @kbd{C-c l} is only a suggestion - see @ref{Installation and -Activation}. +stored for later insertion into an Org-mode buffer (see below). For VM, +RMAIL, WANDERLUST, MH-E, GNUS and BBDB buffers, the link will point to +the current article/entry. For W3 and W3M buffers, the link goes to the +current URL. For Org-mode files, the current headline is targeted. For +any other files, the link will point to the file, with a search string +(@pxref{Search Options}) pointing to the contents of the current line. +If there is an active region, the selected words will form the basis of +the search string. The key binding @kbd{C-c l} is only a suggestion - +see @ref{Installation and activation}. @kindex C-c C-l @cindex link completion -@cindex file name completion @cindex completion, of links -@cindex completion, of file names @cindex inserting links @item C-c C-l -Insert a link. This prompts for a link to be inserted into the -buffer. You can just type a link, using one of the link type prefixes -mentioned in the examples above. Through completion, all links stored -during the current session can be accessed. When called with prefix -arg, you can use file name completion to enter a file link. The link +Insert a link. This prompts for a link to be inserted into the buffer. +You can just type a link, using text for an internal link, or one of the +link type prefixes mentioned in the examples above. Through completion, +all links stored during the current session can be accessed. The link will be formatted as given in the variable @code{org-link-format} and -inserted into the buffer. Note that you don't have to use this -command to insert a link. Links in Org-mode are plain text, and you -can type or paste them straight into the buffer. +inserted into the buffer, along with a descriptive text. Note that you +don't have to use this command to insert a link. Links in Org-mode are +plain text, and you can type or paste them straight into the buffer. +By using this command, the links are automatically enclosed in double +brackets, and you will be asked for the optional descriptive text. + +@kindex C-u C-c C-l +@cindex file name completion +@cindex completion, of file names +@item C-u C-c C-l +When @kbd{C-c C-l} is called with a @kbd{C-u} prefix argument, a link to +a file will be inserted and you may use file name completion to select +the name of the file. The path to the file is inserted relative to the +directory of the current org file, if the linked file is in the current +directory or in a subdirectory of it. Otherwise an absolute path, if +possible with @samp{~/} for your home directory is used. You can force +an absolute path with two @kbd{C-u} prefixes. + +@item C-c C-l @r{with cursor on existing link} +When the cursor is on an existing link, @kbd{C-c C-l} allows to edit the +link and description parts of the link. @cindex following links @kindex C-c C-o @item C-c C-o Open link at point. This will launch a web browser for URLs (using -@command{browse-url-at-point}), run vm/gnus/bbdb for the corresponding -links, and execute the command in a shell link. When the cursor is on -a CamelCase link, this commands runs the corresponding search. When -the cursor is on a TAGS list in a headline, it creates the -corresponding TAGS view. Furthermore, it will visit text files in -@samp{file:} links with Emacs and select a suitable application for -non-text files. Classification of files is based on file extension -only. See option @code{org-file-apps}. If there is no link at point, -the current subtree will be searched for one. If you want to override -the default application and visit the file with Emacs, use a @kbd{C-u} -prefix. If the cursor is on a time stamp, compiles the agenda for -that date. - -@strong{IMPORTANT}: Be careful not to use any dangerous commands in a -shell link. +@command{browse-url-at-point}), run vm/mh-e/wanderlust/rmail/gnus/bbdb +for the corresponding links, and execute the command in a shell link. +When the cursor is on an internal link, this commands runs the +corresponding search. When the cursor is on a TAGS list in a headline, +it creates the corresponding TAGS view. If the cursor is on a time +stamp, it compiles the agenda for that date. Furthermore, it will visit +text files in @samp{file:} links with Emacs and select a suitable +application for non-text files. Classification of files is based on +file extension only. See option @code{org-file-apps}. If you want to +override the default application and visit the file with Emacs, use a +@kbd{C-u} prefix. @kindex mouse-2 @kindex mouse-1 @@ -1589,12 +1630,14 @@ line number or a search option after a double@footnote{For backward compatibility, line numbers can also follow a single colon.} colon. For example: + @example -<file:~/code/main.c::255> -<file:~/xx.org::My Target> -<file:~/xx.org::*My Target> -<file:~/xx.org::/regexp/> +[[file:~/code/main.c::255]] +[[file:~/xx.org::My Target]] +[[file:~/xx.org::*My Target]] +[[file:~/xx.org::/regexp/]] @end example + @noindent Here is what these options do. @table @code @@ -1603,7 +1646,7 @@ @item My Target Search for a link target @samp{<<My Target>>}, or do a text search for @samp{my target}, similar to the search in internal links, see -@ref{Internal Links}. +@ref{Internal links}. @item *My Target In an Org-mode file, restrict search to headlines. @item /regexp/ @@ -1632,29 +1675,65 @@ different ways, and Org-mode files are a good target. Org-mode allows to file away notes either to a default file, or directly to the correct location in your Org-mode outline tree. The following -customization@footnote{The two autoload forms are only necessary if +customization@footnote{The three autoload forms are only necessary if @file{org.el} is not part of the Emacs distribution or an XEmacs package.} will tell @emph{Remember} to use org files as target, and to create annotations compatible with Org-mode links. @example -(autoload 'org-remember-annotation "org") -(autoload 'org-remember-handler "org") (setq org-directory "~/path/to/my/orgfiles/") (setq org-default-notes-file "~/.notes") +(autoload 'org-remember-annotation "org") +(autoload 'org-remember-apply-template "org") +(autoload 'org-remember-handler "org") (setq remember-annotation-functions '(org-remember-annotation)) (setq remember-handler-functions '(org-remember-handler)) +(add-hook 'remember-mode-hook 'org-remember-apply-template) @end example -When you compose a note with remember, you have to press @kbd{C-c C-c} -to exit remember-mode and to file away the note. The handler first -prompts for a target file - if you press @key{RET}, the value of +@cindex templates, for remember +In combination with Org-mode, you can use templates to generate +different types of remember notes. For example, if you would like to +use one template to create general TODO entries, and another one for +journal entries, you could use: + +@example +(setq org-remember-templates + '((?t "* TODO %?\n %i\n %a" "~/org/TODO.org") + (?j "* %U %?\n\n %i\n %a" "~/org/JOURNAL.org"))) +@end example + +@noindent In these entries, the character specifies how to select the +template, the first string specifies the template, and the (optional) +second string specifies a default file (overruling +@code{org-default-notes-file}) as a target for this note. + +When you call @kbd{M-x remember} to remember something, org will prompt +for a key to select the template and then prepare the buffer like +@example +* TODO + <file:link to where you called remember> +@end example + +@noindent or + +@example +* [2006-03-21 Tue 15:37] + + <file:link to where you called remember> +@end example + +@noindent See the variable @code{org-remember-templates} for more details. + +When you are finished composing a note with remember, you have to press +@kbd{C-c C-c} to file the note away. The handler first prompts for a +target file - if you press @key{RET}, the value of @code{org-default-notes-file} is used. Then the command offers the headings tree of the selected file. You can either immediately press -@key{RET} to get the note appended to the file. Or you can use -vertical cursor motion (@key{up} and @key{down}) and visibility -cycling (@key{TAB}) to find a better place. Pressing @key{RET} or -@key{left} or @key{right} leads to the following result. +@key{RET} to get the note appended to the file. Or you can use vertical +cursor motion (@key{up} and @key{down}) and visibility cycling +(@key{TAB}) to find a better place. Pressing @key{RET} or @key{left} or +@key{right} leads to the following result. @multitable @columnfractions 0.2 0.1 0.7 @item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted} @@ -1680,6 +1759,7 @@ non-nil, the entire text is also indented so that it starts in the same column as the headline (after the asterisks). + @node TODO items, Timestamps, Hyperlinks, Top @chapter TODO items @cindex TODO items @@ -1697,16 +1777,16 @@ @menu * TODO basics:: Marking and displaying TODO entries -* Progress Logging:: Document your productivity +* Progress logging:: Document your productivity * TODO extensions:: Workflow and assignments * Priorities:: Some things are more important than others @end menu -@node TODO basics, Progress Logging, TODO items, TODO items +@node TODO basics, Progress logging, TODO items, TODO items @section Basic TODO functionality Any headline can become a TODO item by starting it with the word TODO, -for example +for example: @example *** TODO Write letter to Sam Fortune @@ -1720,10 +1800,12 @@ @cindex cycling, of TODO states @item C-c C-t Rotate the TODO state of the current item between + @example ,-> (unmarked) -> TODO -> DONE --. '--------------------------------' @end example + The same rotation can also be done ``remotely'' from the timeline and agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}). @kindex C-c C-v @@ -1746,15 +1828,17 @@ agenda, customize the variable @code{org-agenda-include-all-todo}. @end table -@node Progress Logging, TODO extensions, TODO basics, TODO items +@node Progress logging, TODO extensions, TODO basics, TODO items @section Progress Logging @cindex progress logging @cindex logging, of progress If you want to keep track of @emph{when} a certain TODO item was finished, turn on logging with + @lisp (setq org-log-done t) @end lisp + @noindent Then each time you turn a TODO entry into DONE using either @kbd{C-c C-t} in the Org-mode buffer or @kbd{t} in the agenda buffer, a line @@ -1765,16 +1849,18 @@ you can then use the @kbd{L} key to display the TODO items closed on each day, giving you an overview of what has been done on a day. -@node TODO extensions, Priorities, Progress Logging, TODO items +@node TODO extensions, Priorities, Progress logging, TODO items @section Extended use of TODO keywords @cindex extended TODO keywords -The default implementation of TODO entries is just two states: TODO -and DONE. You can, however, use the TODO feature for more -complicated things by configuring the variables -@code{org-todo-keywords} and @code{org-todo-interpretation}. Using -special setup, you can even use TODO keywords in different ways in -different org files. +The default implementation of TODO entries is just two states: TODO and +DONE. You can, however, use the TODO feature for more complicated +things by configuring the variables @code{org-todo-keywords} and +@code{org-todo-interpretation}. Using special setup, you can even use +TODO keywords in different ways in different org files. + +Note that @i{tags} are another way to classify headlines in general and +TODO items in particular (@pxref{Tags}). @menu * Workflow states:: From TODO to DONE in steps @@ -1788,7 +1874,7 @@ @cindex workflow states as TODO keywords You can use TODO keywords to indicate different states in the process -of working on an item, for example +of working on an item, for example: @lisp (setq org-todo-keywords '("TODO" "FEEDBACK" "VERIFY" "DONE") @@ -1836,7 +1922,7 @@ You can also review the items of a specific TODO type in a sparse tree by using a numeric prefix to @kbd{C-c C-v}. For example, to see all things Lucy has to do, you would use @kbd{C-3 C-c C-v}. To collect -collect Lucy's items from all agenda files into a single buffer, you +Lucy's items from all agenda files into a single buffer, you would use the prefix arg as well when creating the global todo list: @kbd{C-3 C-c t}. @@ -1922,7 +2008,7 @@ (@pxref{Interaction}). @end table -@node Timestamps, Agenda Views, TODO items, Top +@node Timestamps, Tags, TODO items, Top @chapter Timestamps Items can be labeled with timestamps to make them useful for project @@ -1945,7 +2031,7 @@ A time stamp is a specification of a date (possibly with time) in a special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16 Tue 09:39>}. A time stamp can appear anywhere in the headline or body -of an org-tree entry. Its presence allows to show entries on specific +of an org-tree entry. Its presence allows entries to be shown on specific dates in the agenda (@pxref{Weekly/Daily Agenda}). We distinguish: @table @var @@ -2011,12 +2097,13 @@ @kindex C-u C-c . @item C-u C-c . Like @kbd{C-c .}, but use the alternative format which contains date -and time. +and time. The default time can be rounded to multiples of 5 minutes, +see the option @code{org-time-stamp-rounding-minutes}. @kindex C-c ! @item C-c ! Like @kbd{C-c .}, but insert an inactive time stamp not triggering the -agenda. +agenda. @kindex C-c < @item C-c < @@ -2118,18 +2205,123 @@ Choose date in calendar (only if nothing typed into minibuffer). @end table -@node Agenda Views, Exporting, Timestamps, Top +@node Tags, Agenda Views, Timestamps, Top +@chapter Tags +@cindex tags +@cindex headline tagging +@cindex matching, tags +@cindex sparse tree, tag based + +If you wish to implement a system to cross-correlate information, an +excellent way is to assign @i{tags} to headline. Org-mode has +extensive support for using tags. + +Every headline can contain a list of tags, at the end of the headline. +Tags are normal words containing letters, numbers, @samp{_}, and +@samp{@@}. Tags must be preceded and followed by a single colon; like +@samp{:WORK:}. Several tags can be specified like @samp{:WORK:URGENT:}. + +@menu +* Tag inheritance:: Tags use the tree structure of the outline +* Setting tags:: How to assign tags to a headline +* Tag searches:: Searching for combinations of tags +@end menu + +@node Tag inheritance, Setting tags, Tags, Tags +@section Tag inheritance +@cindex inheritance, of tags + +@i{Tags} make use of the hierarchical structure of outline trees. If a +heading has a certain tag, all subheadings will inherit the tag as +well. For example, in the list + +@example +* Meeting with the French group :WORK: +** Summary by Frank :BOSS:NOTES: +*** TODO Prepare slides for him :ACTION: +@end example + +@noindent +the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:}, +@samp{:NOTES:}, and @samp{:ACTION:}. When executing tag searches and +Org-mode finds that a certain headline matches the search criterion, it +will not check any sublevel headline, assuming that these likely also +match, and that the list of matches can become very long. However, this +may not be what you want, and you can influence inheritance and +searching using the variables @code{org-use-tag-inheritance} and +@code{org-tags-match-list-sublevels}. + +@node Setting tags, Tag searches, Tag inheritance, Tags +@section Setting tags +@cindex setting tags + +@kindex M-@key{TAB} +As Org-mode deals with plain text files, tags can simply be typed into +the buffer. After a colon, @kbd{M-@key{TAB}} offers completion on all +tags being used in the current buffer. There is also a special command +for inserting tags: + +@table @kbd +@kindex C-c C-c +@item C-c C-c +@cindex completion, of tags +Enter new tags for the current headline. The minibuffer will prompt for +a list of tags and offer completion with respect to all other tags used +in the current buffer. Several tags, separated by colons, may be +specified at the prompt. After pressing @key{RET}, the tags will be +inserted and aligned to @code{org-tags-column}. When called with a +@kbd{C-u} prefix, all tags in the current buffer will be aligned to that +column, just to make things look nice. TAGS are automatically realigned +after promotion, demotion, and TODO state changes (@pxref{TODO basics}). +@end table + +@node Tag searches, , Setting tags, Tags +@section Tag searches +@cindex tag searches + +Once a tags system has been set up, it can be used to collect related +information into special lists. + +@table @kbd +@kindex C-c \ +@item C-c \ +Create a sparse tree with all headlines matching a tags search. +@kindex C-c a m +@item C-c a m +Create a global list of tag matches from all agenda files. +@xref{Matching headline tags}. +@kindex C-c a M +@item C-c a M +Create a global list of tag matches from all agenda files, but check +only TODO items and force checking subitems (see variable +@code{org-tags-match-list-sublevels}). +@end table + +A @i{tags} search string can use Boolean operators @samp{&} for AND and +@samp{|} for OR. @samp{&} binds more strongly than @samp{|}. +Parenthesis are currently not implemented. A tag may also be preceded +by @samp{-}, to select against it, and @samp{+} is syntactic sugar for +positive selection. The AND operator @samp{&} is optional when @samp{+} +or @samp{-} is present. For example, @samp{+WORK-BOSS} would select all +headlines that are tagged @samp{:WORK:}, but discard those also tagged +@samp{:BOSS:}. The search string @samp{WORK|LAPTOP} selects all lines +tagged @samp{:WORK:} or @samp{:LAPTOP:}. The string +@samp{WORK|LAPTOP&NIGHT} requires that the @samp{:LAPTOP:} lines are +also tagged @samp{NIGHT}. + +@node Agenda Views, Exporting, Tags, Top @chapter Agenda Views @cindex agenda views -Due to the way Org-mode works, TODO items and time-stamped items can -be scattered throughout a file or even a number of files. To get an -overview over open action items, or over events that are important for -a particular date, this information must be collected, sorted and -displayed in an organized way. +Due to the way Org-mode works, TODO items, time-stamped items, and +tagged headlines can be scattered throughout a file or even a number of +files. To get an overview over open action items, or over events that +are important for a particular date, this information must be collected, +sorted and displayed in an organized way. Org-mode can select items based on various criteria, and display them in a separate buffer. Three different views are provided: + @itemize @bullet @item an @emph{agenda} that is like a calendar and shows information @@ -2141,6 +2333,7 @@ a @emph{tags view} that shows information based on the tags associated with headlines in the outline tree. @end itemize + @noindent The extracted information is displayed in a special @emph{agenda buffer}. This buffer is read-only, but provides commands to visit the @@ -2161,7 +2354,9 @@ @section Agenda files The information to be shown is collected from all @emph{agenda files}, -the files listed in the variable @code{org-agenda-files}. Thus even +the files listed in the variable @code{org-agenda-files}@footnote{If the +value of that variable is not a list, but a single file name, then the +list of agenda files will be maintained in that external file.}. Thus even if you only work with a single Org-mode file, this file should be put into that list@footnote{When using the dispatcher pressing @kbd{1} before selecting a command will actually limit the command to the @@ -2181,8 +2376,9 @@ Remove current file from the list of agenda files. @kindex C-, @item C-, -Cycle through agenda file list. +Cycle through agenda file list, visiting one file after the other. @end table + @noindent The Org menu contains the current list of files and can be used to visit any of them. @@ -2195,7 +2391,7 @@ @cindex agenda commands, custom The views are created through a dispatcher that should be bound to a global key, for example @kbd{C-c a} (@pxref{Installation and -Activation}). In the following we will assume that @kbd{C-c a} is +activation}). In the following we will assume that @kbd{C-c a} is indeed how the dispatcher is accessed and list keyboard access to commands accordingly. After pressing @kbd{C-c a}, an additional letter is required to execute a command. The dispatcher offers the @@ -2206,7 +2402,7 @@ @item t / T Create a list of all TODO items (@pxref{Global TODO list}). @item m / M -Create a list of headline matching a TAGS expression (@pxref{Matching +Create a list of headlines matching a TAGS expression (@pxref{Matching headline tags}). @end table @@ -2222,6 +2418,7 @@ @code{org-agenda-custom-commands}. You can customize this variable, for example by pressing @kbd{C-c a C}. You can also directly set it with Emacs Lisp in @file{.emacs}. For example: + @lisp (setq org-agenda-custom-commands '(("w" todo "WAITING") @@ -2229,8 +2426,9 @@ ("U" tags-tree "+BOSS-URGENT") ("f" occur-tree "\\<FIXME\\>"))) @end lisp + @noindent will define @kbd{C-c a w} as a global search for -TODO entries with @samp{WAITING} as todo keyword, @kbd{C-c a u} as a +TODO entries with @samp{WAITING} as the TODO keyword, @kbd{C-c a u} as a global tags search for headlines marked @samp{:BOSS:} but not @samp{:URGENT:}, @kbd{C-c a U} to do the same search but only in the current buffer and display the result as a sparse tree, and @kbd{C-c a @@ -2252,11 +2450,11 @@ Compile an agenda for the current week from a list of org files. The agenda shows the entries for each day. With a @kbd{C-u} prefix (or when the variable @code{org-agenda-include-all-todo} is @code{t}), all -unfinished TODO items (also those without a date) are also listed at +unfinished TODO items (including those without a date) are also listed at the beginning of the buffer, before the first date.@* @end table -Remote editing from the agenda buffer means for example that you can +Remote editing from the agenda buffer means, for example, that you can change the dates of deadlines and appointments from the agenda buffer. The commands available in the Agenda buffer are listed in @ref{Agenda commands}. @@ -2275,12 +2473,15 @@ In the agenda buffer, each entry is preceded by a @emph{category}, which is derived from the file name. The category can also be set with a special line anywhere in the buffer, looking like this: + @example #+CATEGORY: Thesis @end example + If there are several such lines in a file, each specifies the category -for the text below it. The display in the agenda buffer looks best if -the category is not longer than 10 characters. +for the text below it (but the first category also applies to any text +before the first CATEGORY line). The display in the agenda buffer looks +best if the category is not longer than 10 characters. @node Time-of-day specifications, Calendar/Diary integration, Categories, Weekly/Daily Agenda @subsection Time-of-Day Specifications @@ -2337,7 +2538,7 @@ Emacs contains the calendar and diary by Edward M. Reingold. The calendar displays a three-month calendar with holidays from different -countries and cultures. The diary allows to keep track of +countries and cultures. The diary allows you to keep track of anniversaries, lunar phases, sunrise/set, recurrent appointments (weekly, monthly) and more. In this way, it is quite complementary to Org-mode. It can be very useful to combine output from Org-mode with @@ -2349,13 +2550,12 @@ @lisp (setq org-agenda-include-diary t) @end lisp -@noindent @noindent After that, everything will happen automatically. All diary entries including holidays, anniversaries etc will be included in the agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and @key{RET} can be used from the agenda buffer to jump to the diary -file, in order to edit existing diary entries. The @kbd{i} command to +file in order to edit existing diary entries. The @kbd{i} command to insert new entries for the current date works in the agenda buffer, as well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to display Sunrise/Sunset times, show lunar phases and to convert to other @@ -2399,7 +2599,7 @@ @xref{Global TODO list}, for more information. @kindex C-c a T @item C-c a T -Like the above, but allow to select a specific TODO keyword. You can +Like the above, but allows selection of a specific TODO keyword. You can also do this by specifying a prefix argument to @kbd{C-c a t}. With a @kbd{C-u} prefix you are prompted for a keyword. With a numeric prefix, the Nth keyword in @code{org-todo-keywords} is selected. @@ -2452,7 +2652,7 @@ items from a single Org-mode file. But it also uses the agenda buffer and provides similar commands, so we discuss it here. The timeline shows all time-stamped items in a single Org-mode file (or the -selected part of it), in @emph{time-sorted view}. The main purpose of +selected part of it), in a @emph{time-sorted view}. The main purpose of this command is to give an overview over events in a project. @table @kbd @@ -2462,8 +2662,8 @@ When called with a @kbd{C-u} prefix, all unfinished TODO entries (scheduled or not) are also listed under the current date. @end table + @noindent - The commands available in the timeline buffer are listed in @ref{Agenda commands}. @@ -2476,7 +2676,7 @@ buffer itself, but commands are provided to show and jump to the original entry location, and to edit the org-files ``remotely'' from the agenda buffer. In this way, all information is stored only once, -and you don't risk that your agenda and note files diverge. +removing the risk that your agenda and note files may diverge. Some commands can be executed with mouse clicks on agenda lines. For the other commands, the cursor needs to be in the desired line. @@ -2507,7 +2707,7 @@ @itemx mouse-1 @itemx @key{TAB} Go to the original location of the item in another window. Under Emacs -22, also @kbd{mouse-1} will works for this. +22, @kbd{mouse-1} will also works for this. @kindex @key{RET} @itemx @key{RET} @@ -2531,11 +2731,11 @@ @kindex w @item w -Switch to weekly view (7 days displayed together) +Switch to weekly view (7 days displayed together). @kindex d @item d -Switch to daily view (just one day displayed) +Switch to daily view (just one day displayed). @kindex D @item D @@ -2580,7 +2780,7 @@ @kindex T @item T -Show all tags assiciated with the current item. Because of +Show all tags associated with the current item. Because of inheritance, this may be more than the tags listed in the line itself. @kindex : @@ -2650,7 +2850,7 @@ @kindex M @item M -Show the phases of the moon for three month around current date. +Show the phases of the moon for the three months around current date. @kindex S @item S @@ -2673,7 +2873,7 @@ @tsubheading{Quit and Exit} @kindex q @item q -Quit Agenda, remove the agenda buffer. +Quit agenda, remove the agenda buffer. @kindex x @cindex agenda files, removing buffers @@ -2718,11 +2918,13 @@ @cindex headline levels, for exporting In the exported version, the first 3 outline levels will become headlines, defining a general document structure. Additional levels -will be exported as itemize lists. If you want that transition to occur +will be exported as itemized lists. If you want that transition to occur at a different level, specify it with a prefix argument. For example, + @example @kbd{C-1 C-c C-x a org-export-as-ascii} @end example + @noindent creates only top level headlines and does the rest as items. Lines starting with @samp{#} and subtrees starting with the word @samp{COMMENT} @@ -2757,11 +2959,13 @@ @cindex headline levels, for exporting In the exported version, the first 3 outline levels will become headlines, defining a general document structure. Additional levels -will be exported as itemize lists. If you want that transition to occur +will be exported as itemized lists. If you want that transition to occur at a different level, specify it with a prefix argument. For example, + @example @kbd{C-2 C-c C-x b} @end example + @noindent creates two levels of headings and does the rest as items. @@ -2851,9 +3055,10 @@ #+TEXT: Several lines may be given. #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t *:nil TeX:t @end example + @noindent The OPTIONS line is a compact form to specify export settings. Here -you can +you can: @cindex headline levels @cindex section-numbers @cindex table of contents @@ -2886,7 +3091,7 @@ @example * COMMENT HTML style specifications -# Local Variables: +# Local Variables: # org-export-html-style: " <style type=\"text/css\"> p @{font-weight: normal; color: gray; @} h1 @{color: black; @} @@ -2895,7 +3100,9 @@ @end example Remember to execute @kbd{M-x normal-mode} after changing this to make -the new style visible to Emacs. +the new style visible to Emacs. This command reastarts org-mode for the +current buffer and forces Emacs to re-evaluate the loval variables +section in the buffer. @node Comment lines, , Export options, HTML export @subsection Comment lines @@ -2969,6 +3176,7 @@ @menu * Completion:: M-TAB knows what you need * Customization:: Adapting Org-mode to your taste +* Updating settings:: How to tell Org-mode that settings have changed * Clean view:: Getting rid of leading stars in the outline * TTY keys:: Using Org-mode on a tty * FAQ:: Frequently asked questions @@ -3021,7 +3229,7 @@ @end table -@node Customization, Clean view, Completion, Miscellaneous +@node Customization, Updating settings, Completion, Miscellaneous @section Customization @cindex customization @cindex options, for customization @@ -3033,14 +3241,48 @@ variables is available with @kbd{M-x org-customize}. Or select @code{Browse Org Group} from the @code{Org->Customization} menu. -@node Clean view, TTY keys, Customization, Miscellaneous +@node Updating settings, Clean view, Customization, Miscellaneous +@section Updating settings after changes +@cindex updating, after setting changes +@kindex C-c C-c + +Org-mode uses special lines in the buffer to set file-local values for a +number of user options. When such settings are changed, you need to +inform Org-mode that something has be modified and that it should +recheck the buffer for setting. This is done with the command @kbd{C-c +C-c} in the following situations: + +@itemize @bullet +@item +After changing any of the special buffer lines starting with @samp{#+}, +for example @samp{#+STARTUP}, @samp{#+CATEGORY}. Org-mode will then +read these settings and activate them (see @ref{Visibility cycling}, +@ref{Narrow columns}, @ref{Clean view}, @ref{Per file keywords}, +@ref{Categories}) +@item +After editing by hand a @samp{#+TBLFM} line containing formulas for a +table. When pressing @kbd{C-c C-c} in that line, all formulas are +re-applied to the entire table (@pxref{Editing/debugging formulas}). +@item +In a table, @kbd{C-c C-c} does force a re-align, even if the table +editor is turned off (@pxref{Built-in table editor}) +@item +In an ordered plain list, @kbd{C-c C-c} forces a renumbering of the list +(@pxref{Plain Lists}). +@item +After adding a new radio target @samp{<<<New target>>>}, @kbd{C-c C-c} +must be used with the cursor on that target to activate it throughout +the buffer. +@end itemize + +@node Clean view, TTY keys, Updating settings, Miscellaneous @section A cleaner outline view @cindex hiding leading stars @cindex clean outline view Some people find it noisy and distracting that the Org-mode headlines -are starting with a potentially large number of stars. For example in -the example tree from @ref{Headlines}: +are starting with a potentially large number of stars. For example +the tree from @ref{Headlines}: @example * Top level headline @@ -3071,9 +3313,10 @@ #+STARTUP: showstars #+STARTUP: hidestars @end example + @noindent Press @kbd{C-c C-c} with the cursor in a @samp{STARTUP} line to activate -the modifications. +the modifications. With stars hidden, the tree becomes: @@ -3129,7 +3372,7 @@ @end example You can convert an Org-mode file from single-star-per-level to -double-star-per-level convention with @kbd{M-x org-convert-to-odd-levels +the double-star-per-level convention with @kbd{M-x org-convert-to-odd-levels RET} in that file. There is no command for the back conversion because such a command might merge levels and in this way destroy the structure of the tree. @@ -3179,36 +3422,78 @@ @enumerate @item @b{Org-mode seems to be a useful default mode for the various @file{README} files I have scattered through my directories. How do I -turn it on for all @file{README} files?} +turn it on for all @file{README} files?}@* +@c @example (add-to-list 'auto-mode-alist '("README$" . org-mode)) @end example +@item @b{Some of my links stopped working after I upgraded to a version +4.20 or later. Why is this, and how can I fix it?}@* +@c +These must be links in plain text, containing white space, such as +@samp{bbdb:Richard Stallman}. You need to protect these links by +putting double brackets around them, like @samp{[[bbdb:Richard +Stallman]]}. + +@item @b{I see that Org-mode now creates links using the double bracket +convention that hides the link part and the brackets, only showing the +description part. How can I convert my old links to this new format?}@* +@c +Execute once in each Org-mode file: @kbd{M-x org-upgrade-old-links}. +The replaces angular brackets with the link format. + +@item @b{I don't care if you find the new bracket links great, I am +attached to the old style using angular brackets and no hiding of the +link text. Please give them back to me, don't tell me it is not +possible!}@* +@c +Would I let you down like that? If you must (even if I don't understand +why), you can do this +@lisp +(setq org-link-style 'plain + org-link-format "<%s>") +@end lisp + +@item @b{When I am executing shell links I always get a +confirmation prompt and need to type @kbd{yes @key{RET}}, thats 4 key +presses! Can I get rid of this?}@* +@c +@cindex shell links, confirmation +@cindex dangerous commands +The confirmation is there to protect you from unwantingly execute +potentially dangerous commands. For example, imagine a link +@samp{[[shell:rm -rf ~/*][Google Search]]}. In an Org-mode buffer, this +command would look like @samp{Google Search}, but really it would remove +your home directory. If you wish, you can make it easier to respond to +the query by setting @code{org-confirm-shell-links} to @code{y-or-n-p}. +Then a single @kbd{y} keypress will be enough to confirm shell links. +It is also possible to turn off this check entirely, but I do not +recommend to do this. Be warned. + @item @b{All these stars are driving me mad, I just find the Emacs outlines unreadable. Can't you just put white space and a single star as a starter for headlines?}@* +@c See @ref{Clean view}. @item @b{I would like to have two windows on the same Org-mode file, but with different outline visibility. Is that possible?}@* +@c @cindex @code{make-indirect-buffer} @cindex indirect buffers -In GNU Emacs, you may use @emph{indirect buffers} which do exactly -this. See the documentation on the command -@code{make-indirect-buffer}. In XEmacs, this is currently not -possible because of the different outline implementation. - -@item @b{Is there an easy way to insert links to web locations?}@* -@cindex URL, paste into buffer -Sure, just type or paste them into the buffer. A plain-text URL-like -string is directly interpreted as a link. +In GNU Emacs, you may use @emph{indirect buffers} which do exactly this. +See the documentation on the command @code{make-indirect-buffer}. In +XEmacs, this is currently not possible because of the different outline +implementation. @item @b{When I export my TODO list, every TODO item becomes a separate section. How do I enforce these items to be exported as an itemized list?}@* +@c If you plan to use ASCII or HTML export, make sure things you want to be exported as item lists are level 4 at least, even if that does mean -there is a level jump. For example +there is a level jump. For example: @example * Todays top priorities @@ -3225,27 +3510,22 @@ +OPTIONS: H:2; ... @end example -@item @b{I would like to export only a subtree of my file to HTML. How?}@* +@item @b{I would like to export only a subtree of my file to HTML. +How?}@* +@c @cindex exporting a subtree If you want to export a subtree, mark the subtree as region and then export. Marking can be done with @kbd{C-c @@ C-x C-x}, for example. @item @b{Org-mode takes over the S-cursor keys. I also want to use CUA-mode, is there a way to fix this conflict?}@* -Yes, see @ref{Interaction} - -@item @b{Is there an easy way to insert an empty table template with a -default number of rows and columns?}@* -@cindex table, empty template -To insert an empty table template, just type @samp{|-} and use -@key{TAB}. The default size can be changed with the variable -@code{org-table-default-size}. However, just starting to type the -first line is usually much easier. +Yes, see @ref{Interaction}. @item @b{One of my table columns has started to fill up with @samp{#ERROR}. What is going on?}@* +@c Org-mode tried to compute the column from other fields using a -formula stored in the @samp{#+TBLFMT:} line just below the table, and +formula stored in the @samp{#+TBLFM:} line just below the table, and the evaluation of the formula fails. Fix the fields used in the formula, or fix the formula, or remove it! @@ -3253,23 +3533,26 @@ horizontal line in the table, pressing TAB creates a new table line @i{before} the horizontal line. How can I quickly move to the line @i{below} the horizontal line instead?}@* +@c Press @key{down} (to get on the separator line) and then @key{TAB}. Or configure the variable @code{org-table-tab-jumps-over-hlines}. @item @b{How can I change the indentation of an entire table without fixing every line by hand?}@* +@c @cindex indentation, of tables The indentation of a table is set by the first line. So just fix the indentation of the first line and realign with @key{TAB}. @item @b{Is it possible to include entries from org-mode files into my -emacs diary?}@* +emacs diary?}@* +@c Since the org-mode agenda is much more powerful and can contain the diary (@pxref{Calendar/Diary integration}), you should think twice -before deciding to do this. Inegrating org-mode information into the +before deciding to do this. Integrating Org-mode information into the diary is, however, possible. The following steps are necessary: Autoload the function @command{org-diary} as shown above under -@ref{Installation and Activation}. You also need to use @emph{fancy +@ref{Installation and activation}. You also need to use @emph{fancy diary display} by setting in @file{.emacs}: @lisp @@ -3310,10 +3593,10 @@ @cindex @file{org-mouse.el} @item @file{org-mouse.el} by Piotr Zielinski This package implements extended mouse functionality for Org-mode. It -allows to cycle visibility and to edit the document structure with the -mouse. It also provides a context-sensitive menu that changes depending -on the context of a mouse-click. Use a search engine to find this -package on the web. +allows you to cycle visibility and to edit the document structure with +the mouse. It also provides a context-sensitive menu that changes +depending on the context of a mouse-click. Use a search engine to find +this package on the web. @cindex @file{table.el} @item @file{table.el} by Takaaki Ota Org mode cooperates with table.el, see @ref{table.el}. @file{table.el} @@ -3331,7 +3614,7 @@ @cindex @file{constants.el} @item @file{constants.el} by Carsten Dominik In a table formula (@pxref{Table calculations}), it is possible to use -names for natural constants or units. Instead of defining you own +names for natural constants or units. Instead of defining your own constants in the variable @code{org-table-formula-constants}, install the @file{constants} package which defines a large number of constants and units, and lets you use unit prefixes like @samp{M} for @@ -3350,38 +3633,40 @@ @code{org-CUA-compatible}. When set, Org-mode will move the following keybindings in org-mode files, and in the agenda buffer (but not during date selection). + @example S-UP -> M-p S-DOWN -> M-n S-LEFT -> M-- S-RIGHT -> M-+ S-RET -> C-S-RET @end example + Yes, these are unfortunately more difficult to remember. If you want to have other replacement keys, look at the variable @code{org-disputed-keys}. @item @file{remember.el} by John Wiegley Org mode cooperates with remember, see @ref{Remember}. @file{Remember.el} is not part of Emacs, find it on the web. -@cindex @file{planner.el} -@item @file{planner.el} by John Wiegley -Planner is another tool to plan work and keep track of tasks. Planner -uses a multi-file approach with project pages and day pages. Is based -on Emacs-Wiki. If Planner is your primary tool, it can be useful to -display the agenda entries resulting from org files in day-pages of -the planner. This can be done through the diary of the calendar: -Integrate org files into the diary as described above, and then turn -on the diary support of planner. Planner is not part of Emacs, find it -on the web. @end table @node Bugs, Acknowledgments, Interaction, Miscellaneous @section Bugs @cindex bugs -Here is a list of things which should work differently, but which I +Here is a list of things that should work differently, but which I have found too hard to fix. @itemize @bullet @item +If a table field starts with a link, and if the corresponding table +column is narrowed (@pxref{Narrow columns}) to a width too small to +display the link, the field would look entirely empty even though it is +not. To prevent this, Org-mode throws an error. The work-around is to +make the column wide enough to fit the link, or to add some text (at +least 2 characters) before the link in the same field. +@item +Narrowing table columns does not work on XEmacs, because the +@code{format} function does not transport text properties. +@item Text in an entry protected with the @samp{QUOTE} keyword should not autowrap. @item @@ -3415,8 +3700,6 @@ The exporters work well, but could be made more efficient. @end itemize -@page - @node Acknowledgments, , Bugs, Miscellaneous @section Acknowledgments @cindex acknowledgments @@ -3432,37 +3715,41 @@ @item Thomas Baumann contributed the code for links to the MH-E email system. @item -Pavel Chalmoviansky reported bugs and suggested improvements -related to the agenda treatment of items with specified time. +Alex Bochannek provided a patch for rounding time stamps. @item -Sacha Chua, the current maintainer of Planner, suggested to copy -linking code from Planner (I took code for RMAIL and Wanderlust). +Charles Caves' suggestion sparked the implementation of templates for +Remember. +@item +Pavel Chalmoviansky influenced the agenda treatment of items with +specified time. @item -Christian Egli converted the documentation into TeXInfo format and -patched basic CSS formatting support into the HTML exporter. He also -inspired the agenda by showing me his plans for a multifile summary. +Sacha Chua suggested to copy some linking code from Planner. +@item +Christian Egli converted the documentation into TeXInfo format, patched +CSS formatting into the HTML exporter, and inspired the agenda. @item -Kai Grossjohann pointed out that a number of key bindings in Org-mode -conflict with other packages. +Nic Ferrier contributed mailcap and XML support. @item -Stefan Monnier provided a patch with lots of little fixes to keep the -Emacs-Lisp compiler happy. +Kai Grossjohann pointed out key-binding conflicts caused by Org-mode. +@item +Stefan Monnier provided a patch to keep the Emacs-Lisp compiler happy. @item Tim O'Callaghan suggested in-file links, search options for general file links, and TAGS. @item Oliver Oppitz suggested multi-state TODO items. @item -Pete Phillips helped the development of the TAGS feature with beta -testing and suggestions. +Scott Otterson sparked the introduction of descriptive text for links, +among other things. @item -Matthias Rempe (Oelde) provided ideas, a patch introducing Windows -NT/2000 support, and quality control. +Pete Phillips helped the development of the TAGS feature. +@item +Matthias Rempe (Oelde) provided ideas, Windows support, and quality +control. @item Kevin Rogers contributed code to access VM files on remote hosts. @item -Philip Rooke created the Org-mode reference card. He also helped with -beta testing and contributed a number of very useful ideas. +Philip Rooke created the Org-mode reference card and provided lots of feedback. @item Christian Schlauer proposed angular brackets around links, among other things. @@ -3470,28 +3757,31 @@ Linking to VM/BBDB/GNUS was inspired by Tom Shannon's @file{organizer-mode.el}. @item -Juergen Vollmer contributed code generating the table of contents -in HTML output, and other export improvements. +J@"urgen Vollmer contributed code generating the table of contents +in HTML output. @item Chris Wallace provided a patch implementing the @samp{QUOTE} keyword. @item -David Wainberg suggested the archiving mechanism and shaped the -internal link system with many suggestions and ideas. +David Wainberg suggested archiving, and improvements to the linking +system. @item -Scheduling TODO items was inspired by John Wiegley's @file{planner.el}. +John Wiegley wrote @file{emacs-wiki.el} and @file{planner.el}. The +development of Org-mode was fully independent, and both systems are +really different beasts in their basic ideas and implementation details. +However, I have later looked at John's code and learned from his +implementation of (i) links where the link itself is hidden and only a +description is shown, and (ii) popping up a calendar to select a date. @item Carsten Wimmer suggested some changes and helped fix a bug in linking to GNUS. -@item -Roland Winkler pointed out that additional keybindings are needed to -use Org-mode on a tty. +@item +Roland Winkler requested additional keybindings to make Org-mode +work on a tty. @item -Piotr Zielinski wrote @file{org-mouse.el} and pointed out to me that -Emacs 22 can be made to follow links using mouse-1 clicks. -@c @item -@c Nic Ferrier and Christian Egli implemented XML export. +Piotr Zielinski wrote @file{org-mouse.el} and showed how to follow links +with mouse-1. @end itemize - + @node Index, Key Index, Miscellaneous, Top @chapter Index