Commit cfbc5709 authored by Carsten Dominik's avatar Carsten Dominik
Browse files

*** empty log message ***

parent 4da1a99d
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)
 
......
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'
......
......@@ -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 @@ Software Foundation raise funds for GNU development.''
* 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 @@ Document Structure
* 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 @@ Timestamps
* Time stamps:: Assigning a time to a tree entry
* Creating timestamps:: Commands which insert timestamps
Timeline and Agenda
Agenda Views
* Timeline:: Time-sorted view for single file
* 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
......@@ -251,16 +255,15 @@ and example files. This page is located at
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 @@ Lisp lines above, you also need to add the following lines to
(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 @@ edit the structure of the document.
* 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 @@ example
@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 @@ buffer:
@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 @@ visible.
@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 @@ functionality.
@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 @@ this, see the documentation string of the variable
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 @@ 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
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 @@ with the bullet or number).
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 @@ Insert new item at current level. With prefix arg, for a new heading.
@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 @@ Renumber the ordered list at the cursor.
@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 @@ it off with
@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 @@ recalculation can be automated.
@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 @@ substitution takes place:
$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 @@ constant, 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}.
@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 @@ specifier to reformat the final result. A few examples:
@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 @@ from the @samp{#+TBLFM:} line) and applies it to the current field. A
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 @@ recalculating the table with @kbd{C-u C-c *} does only affect rows
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 @@ or @samp{*}.
@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 @@ formulas.
@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 @@ a comment line. For example
# <<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 @@ creating links.
@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 @@ 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
......@@ -1356,18 +1445,24 @@ 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.
@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 @@ Like @kbd{mouse-2}, but force file links to be opened with Emacs.
@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 @@ The most important commands to work with TODO entries are:
@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 @@ the entire buffer, but shows all TODO items and the headings hierarchy
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 @@ finished, turn on logging with
@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 @@ Furthermore, these keys are also used by CUA-mode
(@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 @@ planning.
@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 @@ task will automatically be forwarded.
@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 @@ One month back.
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 @@ Checking upcoming deadlines with @kbd{C-c C-w}, see @ref{Creating
timestamps}.
@end itemize
@noindent
@end ignore
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
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 @@ Remove current file from the list of agenda files.
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 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 global command @command{org-agenda} compiles the agenda from all
listed files.
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 @@ plus additional increments for overdue scheduled or deadline items.
Sorting can be customized using the variable
@code{org-agenda-sorting-strategy}.