changeset 67613:eab2494a32d7

*** empty log message ***
author Carsten Dominik <dominik@science.uva.nl>
date Fri, 16 Dec 2005 14:32:16 +0000
parents 58d7532b2ef1
children d77c3edcebd3
files lisp/ChangeLog man/ChangeLog man/org.texi
diffstat 3 files changed, 318 insertions(+), 125 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Dec 16 14:31:22 2005 +0000
+++ b/lisp/ChangeLog	Fri Dec 16 14:32:16 2005 +0000
@@ -1,7 +1,6 @@
 2005-12-16  Carsten Dominik  <dominik@science.uva.nl>
 
-	* textmodes/org.el: 
-	* org.el (org-tags-match-list-sublevels): New option.
+	* textmodes/org.el: (org-tags-match-list-sublevels): New option.
 	(org-open-at-point): implement tag searches as links
 	(org-fit-agenda-window, org-get-buffer-tags, org-get-tags)
 	(org-make-tags-matcher, org-scan-tags, org-activate-tags): New
@@ -13,8 +12,8 @@
 	(org-tags): New customize group.
 	(org-start-icalendar-file): Get local time zone.
 	(org-tags-completion-function): New function.
-	(org-set-font-lock-defaults): make sure links will also
-	be highlighted inside headlines.
+	(org-set-font-lock-defaults): make sure links will also be
+	highlighted inside headlines.
 
 2005-12-16  Mark Plaksin  <happy@usg.edu>  (tiny change)
 
--- a/man/ChangeLog	Fri Dec 16 14:31:22 2005 +0000
+++ b/man/ChangeLog	Fri Dec 16 14:32:16 2005 +0000
@@ -1,3 +1,8 @@
+2005-12-16  Carsten Dominik  <dominik@science.uva.nl>
+
+	* org.texi: (Tags): New section.
+	(Agenda Views): Chapter reorganized.
+
 2005-12-16  Ralf Angeli  <angeli@iwi.uni-sb.de>
 
 	* killing.texi (Killing by Lines): Document `kill-whole-line'
--- a/man/org.texi	Fri Dec 16 14:31:22 2005 +0000
+++ b/man/org.texi	Fri Dec 16 14:32:16 2005 +0000
@@ -4,12 +4,13 @@
 @setfilename ../info/org
 @settitle Org Mode Manual
 
-@set VERSION 3.24
+@set VERSION 4.00
 @set DATE December 2005
 
 @dircategory Emacs
 @direntry
-* Org Mode: (org).	Outline-based notes management and organizer
+* Org Mode: (org).	outline-based notes management and organizer
+
 @end direntry
 
 @c Version and Contact Info
@@ -81,7 +82,7 @@
 * Hyperlinks::                  Notes in context
 * TODO items::                  Every tree branch can be a TODO item
 * Timestamps::                  Assign date and time to items
-* Timeline and Agenda::         Use time-stamped items to produce an agenda
+* Agenda Views::                Collecting information into views
 * Exporting::                   Sharing and publishing of notes
 * Miscellaneous::               All the rest which did not fit elsewhere
 * Index::                       The fast road to specific information
@@ -105,6 +106,7 @@
 * Structure editing::           Changing sequence and level of headlines
 * Archiving::                   Move done task trees to a different place
 * Sparse trees::                Matches embedded in context
+* Tags::                        
 * Plain Lists::                 Editing hand-formatted lists
 
 Tables
@@ -149,10 +151,12 @@
 * Time stamps::                 Assigning a time to a tree entry
 * Creating timestamps::         Commands which insert timestamps
 
-Timeline and Agenda
-
+Agenda Views
+
+* Agenda::                      Your weekly planner
+* Global TODO list::            Overview over all things to do
+* Matching headline tags::      Select information based on tags
 * Timeline::                    Time-sorted view for single file
-* Agenda::                      Your weekly planner
 * Agenda commands::             Remote editing of org trees
 * Calendar/Diary integration::  Integrating Anniversaries and more
 
@@ -251,16 +255,15 @@
 
 If Org-mode is part of the Emacs distribution or an XEmacs package,
 you only need to copy the following lines to your @file{.emacs} file.
-The last three lines define @emph{global} keys for the commands
-@command{org-store-link}, @command{org-agenda}, and
-@code{org-todo-list} - please choose suitable keys yourself.
+The last two lines define @emph{global} keys for the commands
+@command{org-store-link} and @command{org-agenda} - please
+choose suitable keys yourself.
 
 @lisp
 ;; The following lines are always needed.  Choose your own keys.
 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
 (define-key global-map "\C-cl" 'org-store-link)
 (define-key global-map "\C-ca" 'org-agenda)
-(define-key global-map "\C-ct" 'org-todo-list)
 @end lisp
 
 If you have downloaded Org-mode from the Web, you must byte-compile
@@ -273,7 +276,6 @@
 (autoload 'org-mode "org" "Org mode" t)
 (autoload 'org-diary "org" "Diary entries from Org mode")
 (autoload 'org-agenda "org" "Multi-file agenda from Org mode" t)
-(autoload 'org-todo-list "org" "Global TODO list from Org mode" t)
 (autoload 'org-store-link "org" "Store a link to the current location" t)
 (autoload 'orgtbl-mode "org" "Org tables as a minor mode" t)
 (autoload 'turn-on-orgtbl "org" "Org tables as a minor mode")
@@ -332,6 +334,7 @@
 * Structure editing::           Changing sequence and level of headlines
 * Archiving::                   Move done task trees to a different place
 * Sparse trees::                Matches embedded in context
+* Tags::                        
 * Plain Lists::                 Editing hand-formatted lists
 @end menu
 
@@ -371,8 +374,11 @@
 
 @node Visibility cycling, Motion, Headlines, Document Structure
 @section Visibility cycling
+@cindex cycling, visibility
 @cindex visibility cycling
 @cindex trees, visibility
+@cindex show hidden text
+@cindex hide text
 
 Outlines make it possible to hide parts of the text in the buffer.
 Org-mode uses a single command bound to the @key{TAB} key to change
@@ -428,6 +434,7 @@
 @section Motion
 @cindex motion, between headlines
 @cindex jumping, to headlines
+@cindex headline navigation
 The following commands jump to other headlines in the buffer.
 
 @table @kbd
@@ -466,6 +473,7 @@
 @cindex pasting, of subtrees
 @cindex cutting, of subtrees
 @cindex copying, of subtrees
+@cindex subtrees, cut and paste
 
 @table @kbd
 @kindex M-@key{RET}
@@ -524,6 +532,7 @@
 @node Archiving, Sparse trees, Structure editing, Document Structure
 @section Archiving
 @cindex archiving
+@cindex filing subtries
 
 When a project represented by a (sub)tree is finished, you may want
 to move the tree to an archive place, either in the same file under a
@@ -544,7 +553,7 @@
 agenda, archiving to a different file is a good way to keep archived
 trees from contributing agenda items.
 
-@node Sparse trees, Plain Lists, Archiving, Document Structure
+@node Sparse trees, Tags, Archiving, Document Structure
 @section Sparse trees
 @cindex sparse trees
 @cindex trees, sparse
@@ -588,10 +597,69 @@
 the document to another file (extension @file{.txt}) which then can be
 printed in any desired way.
 
-@node Plain Lists,  , Sparse trees, Document Structure
+@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 and @samp{_}, but no numbers.  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:
+*** TODO Prepare slides for him      :ACTION:
+@end example
+@noindent
+the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:}, and
+@samp{:ACTION:}.
+
+@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.  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 can also be just typed into the
+buffer, with @kbd{M-@key{TAB}} support.
+@cindex M-@key{TAB}
+@item M-@key{TAB}
+Tags can also be typed directly into the buffer, using
+@kbd{M-@key{TAB}} completion.
+@kindex C-c \
+@item C-c \
+Create a sparse tree with all headlines matching a given set of tags.
+The command prompts for the tags to match.  The criterion is just a
+list of tags separated by @samp{+} or @samp{-} for positive and
+negative selection.  For example, @samp{+WORK-BOSS} would select all
+headlines that are tagged @samp{:WORK:}, but discard those also tagged
+@samp{:BOSS:}.
+@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}.
+@end table
+
+@node Plain Lists,  , Tags, 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
@@ -634,7 +702,7 @@
 Items can be folded just like headline levels if you set the variable
 @code{org-cycle-include-plain-lists}.  The level of an item is then
 given by the indentation of the bullet/number.  However, items are
-always subortinate to real headlines, the hierarchies remain
+always subordinate to real headlines, the hierarchies remain
 completely separated.
 @kindex M-@key{RET}
 @item M-@key{RET}
@@ -644,7 +712,7 @@
 @item M-S-@key{up}
 @itemx M-S-@key{down}
 Move the item including subitems up/down (swap with previous/next item
-of same intentation).  If the list is ordered, renumbering is
+of same indentation).  If the list is ordered, renumbering is
 automatic.
 @kindex M-S-@key{left}
 @kindex M-S-@key{right}
@@ -664,6 +732,7 @@
 @node Tables, Hyperlinks, Document Structure, Top
 @chapter Tables
 @cindex tables
+@cindex editing tables
 
 Org-mode has a very fast and intuitive table editor built-in.
 Spreadsheet-like calculations are supported in connection with the
@@ -911,6 +980,8 @@
 @node Table calculations, orgtbl-mode, Built-in table editor, Tables
 @section Calculations in tables
 @cindex calculations, in tables
+@cindex spreadsheet capabilities
+@cindex @file{calc} package
 
 The table editor makes use of the Emacs @file{calc} package to
 implement spreadsheet-like capabilities.  Org-mode has two levels of
@@ -934,6 +1005,8 @@
 
 @node Formula syntax, Column formulas, Table calculations, Table calculations
 @subsection Formula syntax
+@cindex formula syntax
+@cindex syntax, of formulas
 
 A formula can be any algebraic expression understood by the Emacs
 @file{calc} package.  Before evaluation by @code{calc-eval}
@@ -953,9 +1026,12 @@
   $name    @r{a named field, parameter or constant}
 @end example
 
+@cindex vectors, in table calculations
 The range vectors can be directly fed into the calc vector functions
 like @samp{vmean} and @samp{vsum}.
 
+@cindex name, of column or field
+@cindex constants, in calculations
 @samp{$name} is interpreted as the name of a column, parameter or
 constant.  Constants are defined globally through the variable
 @code{org-table-formula-constants}.  If you have the
@@ -965,6 +1041,8 @@
 parameters can be specified in special table lines.  These are
 described below, see @ref{Advanced features}.
 
+@cindex format specifier
+@cindex mode, for @file{calc}
 A formula can contain an optional mode string after a semicolon.  This
 string consists of flags to influence calc's modes@footnote{By
 default, Org-mode uses the standard calc modes (precision 12, angular
@@ -994,6 +1072,8 @@
 
 @node Column formulas, Advanced features, Formula syntax, Table calculations
 @subsection Column formulas
+@cindex column formula
+@cindex formula, for table column
 
 To apply a formula to a field, type it directly into the field,
 preceded by an equal sign, like @samp{=$1+$2}.  When you press
@@ -1017,6 +1097,7 @@
 numerical prefix (e.g. @kbd{C-5 C-c =}) will apply it to that many
 subsequent fields in the current column.
 
+@cindex recomputing table fields
 To recompute all the fields in a line, use the command @kbd{C-c *}.
 It re-applies all stored equations to the current row, from left to
 right.  With a @kbd{C-u} prefix, this will be done to every line in
@@ -1061,6 +1142,7 @@
 which are marked @samp{#} or @samp{*}, and named fields.  The column
 formulas are not applied in rows with empty first field.
 
+@cindex marking characters, tables
 The marking characters have the following meaning:
 @table @samp
 @item !
@@ -1098,6 +1180,8 @@
 
 @node Named-field formulas, Editing/debugging formulas, Advanced features, Table calculations
 @subsection Named-field formulas
+@cindex named field formula
+@cindex formula, for named table field
 
 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
@@ -1110,6 +1194,8 @@
 
 @node Editing/debugging formulas, Appetizer, Named-field formulas, Table calculations
 @subsection Editing and debugging formulas
+@cindex formula editing
+@cindex editing, of table formulas
 
 To edit a column or field formula, you can use the commands @kbd{C-c
 =} and @kbd{C-u C-c =}, respectively.  The currently active expression
@@ -1245,7 +1331,7 @@
 # <<MyTarget>>
 @end example
 
-Each occurence of @samp{MyTarget} in the file is an active link that
+Each occurrence of @samp{MyTarget} in the file is an active link that
 can be followed with @kbd{C-c C-o} or with a mouse click
 (@pxref{Managing links}).  If no dedicated target exists, org-mode will
 search for the words in the link separated by white space, in the
@@ -1275,7 +1361,7 @@
 
 @node External Links, Managing links, Internal Links, Hyperlinks
 @section External Links
-@cindex links
+@cindex links, external
 @cindex external links
 @cindex links, external
 @cindex GNUS links
@@ -1343,8 +1429,11 @@
 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
@@ -1356,18 +1445,24 @@
 command to insert a link.  Links in Org-mode are plain text, and you
 can type or paste them straight into the buffer.
 
-@cindex inserting links
+@cindex following links
 @kindex C-c C-o
+@kindex mouse-2
 @item C-c C-o
+@itemx mouse-2
 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, execute the command in a shell link, visit text files 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.
+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.
@@ -1384,6 +1479,8 @@
 
 @node Search Options, Remember, Managing links, Hyperlinks
 @section Search options in file links
+@cindex search option in file links
+@cindex file links, searching
 
 File links can contain additional information to make Emacs jump to a
 particular location in the file when following a link.  This can be a
@@ -1518,6 +1615,7 @@
 
 @table @kbd
 @kindex C-c C-t
+@cindex cycling, of TODO states
 @item C-c C-t
 Rotate the TODO state of the current item between
 @example
@@ -1534,27 +1632,16 @@
 above them.  With prefix arg, show also the DONE entries.  With
 numerical prefix N, show the tree for the Nth keyword in the variable
 @code{org-todo-keywords}.
-@kindex C-c t
-@item C-c t
+@kindex C-c a t
+@item C-c a t
 Show the global TODO list.  This collects the TODO items from all
 agenda files (@pxref{Agenda}) into a single buffer.  The buffer is in
 @code{agenda-mode}, so there are commands to examine and manipulate
 the TODO entries directly from that buffer (@pxref{Agenda commands}).
-A prefix argument can be used to collect only TODO entries of a
-particular type.  With a C-u prefix you are prompted for a keyword.
-With a numeric prefix, the Nth keyword in @code{org-todo-keywords} is
-selected.
-@kindex r
-The @kbd{r} key in the agenda buffer regenerates it, and you can give
-a prefix argument to this command to change the selected TODO keyword,
-for example @kbd{3 r}.  The key binding @kbd{C-c t} is only a
-suggestion - see @ref{Installation and Activation}.
-@kindex C-u C-c a
-@item C-u C-c a
-A @kbd{C-u} argument to the @code{org-agenda command} (@pxref{Agenda})
-includes all unfinished TODO items at the beginning of todays agenda.
-See also the variable @code{org-agenda-include-all-todo} to get this
-by default.
+@xref{Global TODO list}, for more information.
+@item @code{org-agenda-include-all-todo}
+If you would like to have all your TODO items listed as part of your
+agenda, customize the variable @code{org-agenda-include-all-todo}.
 @end table
 
 @node Progress Logging, TODO extensions, TODO basics, TODO items
@@ -1568,9 +1655,9 @@
 @end lisp
 @noindent
 Then each time you turn a TODO entry into DONE using either @kbd{C-c
-C-v} in the Org-mode buffer or @kbd{t} in the agenda buffer, a line
+C-t} in the Org-mode buffer or @kbd{t} in the agenda buffer, a line
 @samp{CLOSED: [timestamp]} will be inserted just after the headline.
-If you turn the entry back into a TODO item again thorugh further
+If you turn the entry back into a TODO item again through further
 state cycling, that line will be removed again.  In the timeline
 (@pxref{Timeline}) and in the agenda (@pxref{Agenda}), you can then
 use the @kbd{L} key to display the TODO items closed on each day,
@@ -1733,7 +1820,7 @@
 (@pxref{Interaction}).
 @end table
 
-@node Timestamps, Timeline and Agenda, TODO items, Top
+@node Timestamps, Agenda Views, TODO items, Top
 @chapter Timestamps
 
 Items can be labeled with timestamps to make them useful for project
@@ -1748,6 +1835,8 @@
 @node Time stamps, Creating timestamps, Timestamps, Timestamps
 @section Time stamps, deadlines and scheduling
 @cindex time stamps
+@cindex ranges, time
+@cindex date stamps
 @cindex deadlines
 @cindex scheduling
 
@@ -1804,6 +1893,7 @@
 @node Creating timestamps,  , Time stamps, Timestamps
 @section Creating timestamps
 @cindex creating timestamps
+@cindex timestamps, creating
 
 For Org-mode to recognize time stamps, they need to be in the specific
 format.  All commands listed below produce time stamps in the correct
@@ -1926,10 +2016,11 @@
 Choose date in calendar (only if nothing typed into minibuffer).
 @end table
 
-@node Timeline and Agenda, Exporting, Timestamps, Top
-@chapter Timeline and Agenda
-@cindex agenda
-
+@node Agenda Views, Exporting, Timestamps, Top
+@chapter Agenda Views
+@cindex agenda views
+
+@ignore
 We have already described three commands to filter important
 information in an org file into a sparse tree (@pxref{Sparse trees}):
 
@@ -1944,59 +2035,17 @@
 timestamps}.
 @end itemize
 @noindent
-
-Instead of using the sparse trees, Org-mode can also collect and
-time-sort the important items into a separate buffer, which we call
-the @emph{timeline} of the org file.  It can also collect information
-from a @emph{list of files} and in this way provide an @emph{agenda}
-which covers all of your current projects, action items and
-appointments.
-
-@menu
-* Timeline::                    Time-sorted view for single file
-* Agenda::                      Your weekly planner
-* Agenda commands::             Remote editing of org trees
-* Calendar/Diary integration::  Integrating Anniversaries and more
-@end menu
-
-@node Timeline, Agenda, Timeline and Agenda, Timeline and Agenda
-@section Timeline for a single file
-@cindex single file summary
-@cindex agenda, for single file
-@cindex timeline, single file
-@cindex time-sorted view
-
-The timeline shows all time-stamped items in a single Org-mode file,
-in @emph{time-sorted view}.  The main purpose of this command is to
-give an overview over events in a project.
-
-@table @kbd
-@kindex C-c C-r
-@item C-c C-r
-Show a time-sorted view of the org file, with all time-stamped items
-of today or later.  When called with a @kbd{C-u} prefix, past dates
-will be included as well.  When called with two @kbd{C-u C-u}
-prefixes, all unfinished TODO entries (scheduled or not) are also
-listed under the current date.
-@end table
-@noindent
-
-The timeline is shown in a temporary buffer @file{*Org Agenda*}.  The
-commands available in the Agenda buffer are listed in @ref{Agenda
-commands}.
-
-@node Agenda, Agenda commands, Timeline, Timeline and Agenda
-@section Agenda
-@cindex agenda
-
-An agenda can be compiled from one or more org files.  The main
-purpose of this command is to act like a paper agenda, showing you all
-the tasks for the current day or week.
-
-The Org-mode files to be processed in order to generate the agenda are
-listed in the variable @code{org-agenda-files}.  You can customize
-this variable, but the easiest way to maintain it is through the
-following commands
+@end ignore
+
+Org-mode can collect and sort selected items into a separate buffer.
+The information to be listed is collected from all @emph{agenda
+files}, the files listed in the variable @code{org-agenda-files}.
+Thus even if you only work with a single Org-mode file, this file must
+be put into that list@footnote{When using the dispatcher pressing
+@kbd{1} before selecting a command will actually limit the command to
+the current file, and ignore @code{org-agenda-files} until the next
+dispatcher command.}.  You can customize this variable, but the easiest
+way to maintain it is through the following commands
 
 @cindex files, adding to agenda list
 @table @kbd
@@ -2013,27 +2062,68 @@
 Cycle through agenda file list.
 @end table
 @noindent
-The Org menu contains the list of all files and can be used to quickly
-visit any of them.
-
-The global command @command{org-agenda} compiles the agenda from all
-listed files.
+The Org menu always contains the current list of files and can be used
+to quickly visit any of them.
+
+Org-mode provides three different views on the information in these
+files: 
+@itemize @bullet
+@item
+an @emph{agenda} that is like a calendar and shows information
+for specific dates
+@item
+a @emph{TODO list} that covers all unfinished
+action items, and
+@item
+a @emph{tags view} that show 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
+corresponding locations in the original Org-mode files, and even to
+edit these files remotely.
+
+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
+indeed how the dispatcher is accessed and list keyboard access to
+commands accordingly.
+
+@menu
+* Agenda::                      Your weekly planner
+* Global TODO list::            Overview over all things to do
+* Matching headline tags::      Select information based on tags
+* Timeline::                    Time-sorted view for single file
+* Agenda commands::             Remote editing of org trees
+* Calendar/Diary integration::  Integrating Anniversaries and more
+@end menu
+
+@node Agenda, Global TODO list, Agenda Views, Agenda Views
+@section Agenda
+@cindex agenda
+
+The purpose of the @emph{agenda} is to act like a week/day page of a
+paper agenda, showing you all the tasks for the current week or day.
 
 @table @kbd
 @cindex org-agenda, command
-@kindex C-c a
-@item C-c a
+@kindex C-c a a
+@item C-c a a
 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
 the beginning of the buffer, before the first date.@*
-The key binding @kbd{C-c a} is only a suggestion - see
+The key binding @kbd{C-c a a} is only a suggestion - see
 @ref{Installation and Activation}.
 @end table
 
-The commands available in the Agenda buffer are listed in
-@ref{Agenda commands}.
+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}.
+
 
 @subsection Categories
 
@@ -2112,8 +2202,92 @@
 Sorting can be customized using the variable
 @code{org-agenda-sorting-strategy}.
 
-@node Agenda commands, Calendar/Diary integration, Agenda, Timeline and Agenda
+@node Global TODO list, Matching headline tags, Agenda, Agenda Views
+@section The global TODO list
+@cindex global TODO list
+@cindex TODO list, global
+
+The global TODO list contains all unfinished TODO items, formatted and
+collected into a single place.
+
+@table @kbd
+@kindex C-c a t
+@item C-c a t
+Show the global TODO list.  This collects the TODO items from all
+agenda files (@pxref{Agenda}) into a single buffer.  The buffer is in
+@code{agenda-mode}, so there are commands to examine and manipulate
+the TODO entries directly from that buffer (@pxref{Agenda commands}).
+@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
+also do this by specifying a prefix argument.  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.
+@kindex r
+The @kbd{r} key in the agenda buffer regenerates it, and you can give
+a prefix argument to this command to change the selected TODO keyword,
+for example @kbd{3 r}.
+@end table
+
+Remote editing of TDOD items means that you can change the state of a
+TODO entry with a single key press.  The commands available in the
+TODO list are described in @ref{Agenda commands}.
+
+@node Matching headline tags, Timeline, Global TODO list, Agenda Views
+@section Matching headline tags
+@cindex matching, of tags
+@cindex tags view
+
+If headlines in the agenda files are marked with @emph{tags}
+(@pxref{Tags}), you can select headlines based on the tags that apply
+to them and collect them into an ageenda buffer.
+
+@table @kbd
+@kindex C-c a m
+@item C-c a m
+Produce a list of all headlines that match a given set of tags.  The
+command prompts for a selection criterion, which is a simple list of
+TAGS with positive and negative selection, like
+@samp{+WORK+URGENT-WITHBOSS}.
+@kindex C-c a M
+@item C-c a M
+Like @kbd{C-c a m}, but only select headlines that are also TODO
+items.
+@end table
+
+The commands available in the tags list are described in @ref{Agenda
+commands}.
+
+@node Timeline, Agenda commands, Matching headline tags, Agenda Views
+@section Timeline for a single file
+@cindex single file summary
+@cindex agenda, for single file
+@cindex timeline, single file
+@cindex time-sorted view
+
+The timeline is not really an agenda view, because it only summarizes
+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
+this command is to give an overview over events in a project.
+
+@table @kbd
+@kindex C-c C-r
+@item C-c C-r
+Show a time-sorted view of the org file, with all time-stamped items.
+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}.
+
+@node Agenda commands, Calendar/Diary integration, Timeline, Agenda Views
 @section Commands in the agenda buffer
+@cindex commands, in agenda buffer
 
 Entries in the agenda buffer are linked back to the org file or diary
 file where they originate.  You are not allowed to edit the agenda
@@ -2142,8 +2316,8 @@
 @itemx @key{SPC}
 Display the original location of the item in another window.
 
-@kindex l
-@item l
+@kindex L
+@item L
 Display original location and recenter that window.
 
 @kindex mouse-2
@@ -2162,8 +2336,8 @@
 the agenda buffer, the other window always shows the corresponding
 location in the org file.
 
-@kindex L
-@item L
+@kindex l
+@item l
 Toggle Logbook mode.  In Logbook mode, entries that where marked DONE while
 logging was on (variable @code{org-log-done}) are shown in the agenda.
 
@@ -2320,7 +2494,7 @@
 
 @end table
 
-@node Calendar/Diary integration,  , Agenda commands, Timeline and Agenda
+@node Calendar/Diary integration,  , Agenda commands, Agenda Views
 @section Calendar/Diary integration
 @cindex calendar integration
 @cindex diary integration
@@ -2368,6 +2542,7 @@
 
 @node Agenda to diary,  , Diary to agenda, Calendar/Diary integration
 @subsection Including the agenda into the diary
+@cindex agenda to diary
 
 If you prefer to use the Emacs diary as your main instrument and if
 you wish to include the Org-mode agenda into it, the following steps
@@ -2401,7 +2576,7 @@
 additional entries for overdue deadlines and scheduled items.  See
 also the documentation of the @command{org-diary} function.
 
-@node Exporting, Miscellaneous, Timeline and Agenda, Top
+@node Exporting, Miscellaneous, Agenda Views, Top
 @chapter Exporting
 @cindex exporting
 
@@ -2633,6 +2808,7 @@
 
 @node iCalendar export,  , HTML export, Exporting
 @section iCalendar export
+@cindex iCalendar export
 
 Some people like to use Org-mode for keeping track of projects, but
 still prefer a standard calendar application for anniversaries and
@@ -2669,6 +2845,7 @@
 to make iCal re-read the calendar files each time a new version of
 @file{OrgMode.ics} is produced.  Here is the setup needed for this:
 
+@cindex applescript, for calendar update
 @lisp
 (setq org-combined-agenda-icalendar-file
     "~/Library/Calendars/OrgMode.ics")
@@ -2698,6 +2875,13 @@
 @cindex completion, of dictionary words
 @cindex completion, of option keywords
 @cindex completion, of CamelCase links
+@cindex completion, of tags
+@cindex @TeX{} symbol completion
+@cindex TODO keywords completion
+@cindex dictionary word completion
+@cindex option keyword completion
+@cindex CamelCase link completion
+@cindex tag completion
 
 Org-mode supports in-buffer completion.  This type of completion does
 not make use of the minibuffer.  You simply type a few letters into
@@ -2716,6 +2900,8 @@
 After @samp{*}, complete CamelCase versions of all headlines in the
 buffer.
 @item
+After @samp{:}, complete tags used elswhere in the buffer.
+@item
 After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
 @samp{OPTIONS} which set file-specific options for Org-mode.  When the
 option keyword is already complete, pressing @kbd{M-@key{TAB}} again
@@ -2739,6 +2925,7 @@
 
 @node FAQ, Interaction, Customization, Miscellaneous
 @section Frequently asked questions
+@cindex FAQ
 
 @enumerate
 @item @b{Org-mode seems to be a useful default mode for the various
@@ -2888,6 +3075,7 @@
 
 @node TTY keys, Bugs, Interaction, Miscellaneous
 @section Using org-mode on a tty
+@cindex tty keybindings
 
 Org-mode uses a number of keys that are not accessible on a tty.  This
 applies to most special keys like cursor keys, @key{TAB} and
@@ -2975,6 +3163,7 @@
 @node Acknowledgments,  , Bugs, Miscellaneous
 @section Acknowledgments
 @cindex acknowledgments
+@cindex thanks
 
 Org-mode was written by Carsten Dominik, who still maintains it at the
 Org-mode homepage @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
@@ -3029,8 +3218,8 @@
 Roland Winkler pointed out that additional keybindings are needed to
 use Org-mode on a tty.
 @item
-Tim O'Callaghan suggested in-file links, and search options for
-general file links.
+Tim O'Callaghan suggested in-file links, search options for
+general file links, and TAGS.
 @c @item
 @c Nic Ferrier and Christian Egli implemented XML export.
 @end itemize