aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--man/org.texi1263
1 files changed, 932 insertions, 331 deletions
diff --git a/man/org.texi b/man/org.texi
index 0c3460b4178..acd55e895ce 100644
--- a/man/org.texi
+++ b/man/org.texi
@@ -3,20 +3,20 @@
3@setfilename ../info/org 3@setfilename ../info/org
4@settitle Org Mode Manual 4@settitle Org Mode Manual
5 5
6@set VERSION 4.44 6@set VERSION 4.54
7@set DATE August 2006 7@set DATE November 2006
8 8
9@dircategory Emacs 9@dircategory Emacs
10@direntry 10@direntry
11* Org Mode: (org). outline-based notes management and organizer 11* Org Mode: (org). outline-based notes management and organizer
12@end direntry 12@end direntry
13 13
14@c Version and Contact Info 14@c Version and Contact Info
15@set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage} 15@set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage}
16@set AUTHOR Carsten Dominik 16@set AUTHOR Carsten Dominik
17@set MAINTAINER Carsten Dominik 17@set MAINTAINER Carsten Dominik
18@set MAINTAINEREMAIL @email{dominik@@science.uva.nl} 18@set MAINTAINEREMAIL @email{dominik at science dot uva dot nl}
19@set MAINTAINERCONTACT @uref{mailto:dominik@@science.uva.nl,contact the maintainer} 19@set MAINTAINERCONTACT @uref{mailto:dominik at science dot uva dot nl,contact the maintainer}
20@c %**end of header 20@c %**end of header
21@finalout 21@finalout
22 22
@@ -111,8 +111,7 @@ Document Structure
111* Structure editing:: Changing sequence and level of headlines 111* Structure editing:: Changing sequence and level of headlines
112* Archiving:: Move done task trees to a different place 112* Archiving:: Move done task trees to a different place
113* Sparse trees:: Matches embedded in context 113* Sparse trees:: Matches embedded in context
114* Plain lists:: Editing hand-formatted lists 114* Plain lists:: Additional structure within an entry
115* Checkboxes:: Easily checking off things.
116 115
117Archiving 116Archiving
118 117
@@ -143,6 +142,7 @@ Hyperlinks
143* Internal links:: Links to other places in the current file 142* Internal links:: Links to other places in the current file
144* External links:: URL-like links to the world 143* External links:: URL-like links to the world
145* Handling links:: Creating, inserting and following 144* Handling links:: Creating, inserting and following
145* Link abbreviations:: Shortcuts for writing complex links
146* Search options:: Linking to a specific location 146* Search options:: Linking to a specific location
147* Custom searches:: When the default search is not enough 147* Custom searches:: When the default search is not enough
148* Remember:: Org-trees store quick notes 148* Remember:: Org-trees store quick notes
@@ -157,6 +157,8 @@ TODO items
157* TODO basics:: Marking and displaying TODO entries 157* TODO basics:: Marking and displaying TODO entries
158* TODO extensions:: Workflow and assignments 158* TODO extensions:: Workflow and assignments
159* Priorities:: Some things are more important than others 159* Priorities:: Some things are more important than others
160* Breaking down tasks:: Splitting a task into managable pieces
161* Checkboxes:: Tick-off lists
160 162
161Extended use of TODO keywords 163Extended use of TODO keywords
162 164
@@ -168,8 +170,13 @@ Timestamps
168 170
169* Time stamps:: Assigning a time to a tree entry 171* Time stamps:: Assigning a time to a tree entry
170* Creating timestamps:: Commands which insert timestamps 172* Creating timestamps:: Commands which insert timestamps
173* Custom time format:: If you cannot work with the ISO format
171* Progress logging:: Documenting when what work was done. 174* Progress logging:: Documenting when what work was done.
172 175
176Creating timestamps
177
178* The date/time prompt:: How org-mode helps you entring date and time
179
173Progress Logging 180Progress Logging
174 181
175* Closing items:: When was this entry marked DONE? 182* Closing items:: When was this entry marked DONE?
@@ -189,15 +196,27 @@ Agenda Views
189* Global TODO list:: All unfinished action items 196* Global TODO list:: All unfinished action items
190* Matching headline tags:: Structured information with fine-tuned search 197* Matching headline tags:: Structured information with fine-tuned search
191* Timeline:: Time-sorted view for single file 198* Timeline:: Time-sorted view for single file
199* Presentation and sorting:: How agenda items are prepared for display
192* Agenda commands:: Remote editing of org trees 200* Agenda commands:: Remote editing of org trees
201* Custom agenda views:: Defining special searches and views
193 202
194The weekly/daily agenda 203The weekly/daily agenda
195 204
205* Calendar/Diary integration:: Integrating Anniversaries and more
206
207Presentation and sorting
208
196* Categories:: Not all tasks are equal 209* Categories:: Not all tasks are equal
197* Time-of-day specifications:: How the agenda knows the time 210* Time-of-day specifications:: How the agenda knows the time
198* Calendar/Diary integration:: Integrating Anniversaries and more
199* Sorting of agenda items:: The order of things 211* Sorting of agenda items:: The order of things
200 212
213Custom agenda views
214
215* Storing searches:: Type once, use often
216* Block agenda:: All the stuff you need in a single buffer
217* Setting Options:: Changing the rules
218* Batch processing:: Agenda views from the command line
219
201Embedded LaTeX 220Embedded LaTeX
202 221
203* Math symbols:: TeX macros for symbols and Greek letters 222* Math symbols:: TeX macros for symbols and Greek letters
@@ -298,6 +317,15 @@ structured ASCII file, as HTML, or (todo and agenda items only) as an
298iCalendar file. It can also serve as a publishing tool for a set of 317iCalendar file. It can also serve as a publishing tool for a set of
299linked webpages. 318linked webpages.
300 319
320An important design aspect that distinguishes Org-mode from other
321packages like Planner/Muse is that it encougages to store every piece of
322information only once. In Planner, you have project pages, day pages
323and possibly other files, duplicating some information such as tasks.
324In Org-mode, you only have notes files. In your notes you mark entries
325as tasks, label them with tags and timestamps. All necessary lists like
326a schedule for the day, the agenda for a meeting, tasks lists selected
327by tags etc are created dynamically when you need them.
328
301Org-mode keeps simple things simple. When first fired up, it should 329Org-mode keeps simple things simple. When first fired up, it should
302feel like a straightforward, easy to use outliner. Complexity is not 330feel like a straightforward, easy to use outliner. Complexity is not
303imposed, but a large amount of functionality is available when you need 331imposed, but a large amount of functionality is available when you need
@@ -310,12 +338,13 @@ example:
310@r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities} 338@r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities}
311@r{@bullet{} as a TODO list editor} 339@r{@bullet{} as a TODO list editor}
312@r{@bullet{} as a full agenda and planner with deadlines and work scheduling} 340@r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
341@r{@bullet{} as an environment to implement David Allen's GTD system}
313@r{@bullet{} as a simple hypertext system, with HTML export} 342@r{@bullet{} as a simple hypertext system, with HTML export}
314@r{@bullet{} as a publishing tool to create a set of interlinked webpages} 343@r{@bullet{} as a publishing tool to create a set of interlinked webpages}
315@end example 344@end example
316 345
317The Org-mode table editor can be integrated into any major mode by 346Org-mode's automatic, context sensitive table editor can be integrated
318activating the minor Orgtbl-mode. 347into any major mode by activating the minor Orgtbl-mode.
319 348
320@cindex FAQ 349@cindex FAQ
321There is a website for Org-mode which provides links to the newest 350There is a website for Org-mode which provides links to the newest
@@ -432,8 +461,8 @@ For bug reports, please provide as much information as possible,
432including the version information of Emacs (@kbd{C-h v emacs-version 461including the version information of Emacs (@kbd{C-h v emacs-version
433@key{RET}}) and Org-mode (@kbd{C-h v org-version @key{RET}}), as well as 462@key{RET}}) and Org-mode (@kbd{C-h v org-version @key{RET}}), as well as
434the Org-mode related setup in @file{.emacs}. If an error occurs, a 463the Org-mode related setup in @file{.emacs}. If an error occurs, a
435traceback can be very useful. Often a small example file helps, along 464backtrace can be very useful (see below on how to create one). Often a
436with clear information about: 465small example file helps, along with clear information about:
437 466
438@enumerate 467@enumerate
439@item What exactly did you do? 468@item What exactly did you do?
@@ -442,6 +471,38 @@ with clear information about:
442@end enumerate 471@end enumerate
443@noindent Thank you for helping to improve this mode. 472@noindent Thank you for helping to improve this mode.
444 473
474@subsubheading How to create a useful backtrace
475
476@cindex backtrace of an error
477If working with Org-mode produces an error with a message you don't
478understand, you may have hit a bug. The best way to report this is by
479providing, in addition to what was mentioned above, a @emph{Backtrace}.
480This is information from the built-in debugger about where and how the
481error occurred. Here is how to produce a useful backtrace:
482
483@enumerate
484@item
485Start a fresh Emacs or XEmacs, and make sure that it will load the
486original Lisp code in @file{org.el} instead of the compiled version in
487@file{org.elc}. The backtrace contains much more information if it is
488produced with uncompiled code. To do this, either rename @file{org.elc}
489to something else before starting Emacs, or ask Emacs explicitly to load
490@file{org.el} by using the command line
491@example
492emacs -l /path/to/org.el
493@end example
494@item
495Go to the @code{Options} menu and select @code{Enter Debugger on Error}
496(XEmacs has this option in the @code{Troubleshooting} sub-menu).
497@item
498Do whatever you have to do to hit the error. Don't forget to to
499document the steps you take.
500@item
501When you hit the error, a @file{*Backtrace*} buffer will appear on the
502screen. Safe this buffer to a file (for example using @kbd{C-x C-w} and
503attach) it to your bug report.
504@end enumerate
505
445@node Document structure, Tables, Introduction, Top 506@node Document structure, Tables, Introduction, Top
446@chapter Document Structure 507@chapter Document Structure
447@cindex document structure 508@cindex document structure
@@ -458,8 +519,7 @@ edit the structure of the document.
458* Structure editing:: Changing sequence and level of headlines 519* Structure editing:: Changing sequence and level of headlines
459* Archiving:: Move done task trees to a different place 520* Archiving:: Move done task trees to a different place
460* Sparse trees:: Matches embedded in context 521* Sparse trees:: Matches embedded in context
461* Plain lists:: Editing hand-formatted lists 522* Plain lists:: Additional structure within an entry
462* Checkboxes:: Easily checking off things.
463@end menu 523@end menu
464 524
465@node Outlines, Headlines, Document structure, Document structure 525@node Outlines, Headlines, Document structure, Document structure
@@ -555,6 +615,12 @@ Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field.
555@kindex C-c C-a 615@kindex C-c C-a
556@item C-c C-a 616@item C-c C-a
557Show all. 617Show all.
618@kindex C-c C-r
619@item C-c C-r
620Reveal context around point, showing the current entry, the following
621heading and the hierarchy above. Useful for working near a location
622exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda
623command (@pxref{Agenda commands}).
558@end table 624@end table
559 625
560When Emacs first visits an Org-mode file, the global state is set to 626When Emacs first visits an Org-mode file, the global state is set to
@@ -625,7 +691,9 @@ the middle of a line, the line is split and the rest of the line becomes
625the new headline. If the command is used at the beginning of a 691the new headline. If the command is used at the beginning of a
626headline, the new headline is created before the current line. If at 692headline, the new headline is created before the current line. If at
627the beginning of any other line, the content of that line is made the 693the beginning of any other line, the content of that line is made the
628new heading. 694new heading. If the command is used at the end of a folded subtree
695(i.e. behind the ellipses at the end of a headline), then a headline
696like the current one will be inserted after the end of the subtree.
629@kindex M-S-@key{RET} 697@kindex M-S-@key{RET}
630@item M-S-@key{RET} 698@item M-S-@key{RET}
631Insert new TODO entry with same level as current heading. 699Insert new TODO entry with same level as current heading.
@@ -699,9 +767,10 @@ its location in the outline tree, but behaves in the following way:
699@itemize @minus 767@itemize @minus
700@item 768@item
701It does not open when you attempt to do so with a visibility cycling 769It does not open when you attempt to do so with a visibility cycling
702command (@pxref{Visibility cycling}). You can still open it with a 770command (@pxref{Visibility cycling}). You can force cycling archived
703normal outline command like @code{show-all}. Or you can modify the 771subtrees with @kbd{C-@key{TAB}}, or by setting the option
704option @code{org-cycle-open-archived-trees}. 772@code{org-cycle-open-archived-trees}. Also normal outline commands like
773@code{show-all} will open archived subtrees.
705@item 774@item
706During sparse tree construction (@pxref{Sparse trees}), matches in 775During sparse tree construction (@pxref{Sparse trees}), matches in
707archived subtrees are not exposed, unless you configure the option 776archived subtrees are not exposed, unless you configure the option
@@ -716,7 +785,7 @@ is. Configure the details using the variable
716@code{org-export-with-archived-trees}. 785@code{org-export-with-archived-trees}.
717@end itemize 786@end itemize
718 787
719The following commands allow to set or clear the ARCHIVE tag: 788The following commands help managing the ARCHIVE tag:
720 789
721@table @kbd 790@table @kbd
722@kindex C-c C-x C-a 791@kindex C-c C-x C-a
@@ -731,6 +800,9 @@ To do this, each subtree is checked for open TODO entries. If none are
731found, the command offers to set the ARCHIVE tag for the child. If the 800found, the command offers to set the ARCHIVE tag for the child. If the
732cursor is @emph{not} on a headline when this command is invoked, the 801cursor is @emph{not} on a headline when this command is invoked, the
733level 1 trees will be checked. 802level 1 trees will be checked.
803@kindex C-@kbd{TAB}
804@item C-@kbd{TAB}
805Cycle a tree even if it is tagged with ARCHIVE.
734@end table 806@end table
735 807
736@node Moving subtrees, , ARCHIVE tag, Archiving 808@node Moving subtrees, , ARCHIVE tag, Archiving
@@ -790,7 +862,9 @@ match is in the body of an entry, headline and body are made visible.
790In order to provide minimal context, also the full hierarchy of 862In order to provide minimal context, also the full hierarchy of
791headlines above the match is shown, as well as the headline following 863headlines above the match is shown, as well as the headline following
792the match. Each match is also highlighted; the highlights disappear 864the match. Each match is also highlighted; the highlights disappear
793when the buffer is changed with an editing command. 865when the bufer is changes an editing command, or by pressing @kbd{C-c
866C-c}. When called with a @kbd{C-u} prefix argument, previous highlights
867are kept, so several calls to this command can be stacked.
794@end table 868@end table
795@noindent 869@noindent
796For frequently used sparse trees of specific search strings, you can 870For frequently used sparse trees of specific search strings, you can
@@ -820,20 +894,17 @@ XEmacs uses selective display for outlining, not text properties.}.
820Or you can use the command @kbd{C-c C-e v} to export only the visible 894Or you can use the command @kbd{C-c C-e v} to export only the visible
821part of the document and print the resulting file. 895part of the document and print the resulting file.
822 896
823 897@node Plain lists, , Sparse trees, Document structure
824@node Plain lists, Checkboxes, Sparse trees, Document structure
825@section Plain lists 898@section Plain lists
826@cindex plain lists 899@cindex plain lists
827@cindex lists, plain 900@cindex lists, plain
828@cindex lists, ordered 901@cindex lists, ordered
829@cindex ordered lists 902@cindex ordered lists
830 903
831Headlines define both the structure of the Org-mode file, and also lists 904Within an entry of the outline tree, hand-formatted lists can provide
832(for example, TODO items (@pxref{TODO items}) should be created using 905additional structure. They also provide a way to create lists of
833headline levels). When taking notes, however, the plain text is 906checkboxes (@pxref{Checkboxes}). Org-mode supports editing such lists,
834sometimes easier to read with hand-formatted lists. Org-mode supports 907and the HTML exporter (@pxref{Exporting}) does parse and format them.
835editing such lists, and the HTML exporter (@pxref{Exporting}) does
836parse and format them.
837 908
838Org-mode knows ordered and unordered lists. Unordered list items start 909Org-mode knows ordered and unordered lists. Unordered list items start
839with @samp{-}, @samp{+}, or @samp{*}@footnote{When using @samp{*} as a 910with @samp{-}, @samp{+}, or @samp{*}@footnote{When using @samp{*} as a
@@ -853,15 +924,15 @@ less. For example:
853@example 924@example
854@group 925@group
855** Lord of the Rings 926** Lord of the Rings
856My favorite scenes are (in this order) 927 My favorite scenes are (in this order)
8571. Eowyns fight with the witch king 928 1. The attack of the Rohirrim
858 + this was already my favorite scene in the book 929 2. Eowyns fight with the witch king
859 + I really like Miranda Otto. 930 + this was already my favorite scene in the book
8602. The attack of the Rohirrim 931 + I really like Miranda Otto.
8613. Peter Jackson being shot by Legolas 932 3. Peter Jackson being shot by Legolas
862 - on DVD only 933 - on DVD only
863 He makes a really funny face when it happens. 934 He makes a really funny face when it happens.
864But in the end, not individual scenes matter but the film as a whole. 935 But in the end, not individual scenes matter but the film as a whole.
865@end group 936@end group
866@end example 937@end example
867 938
@@ -927,56 +998,6 @@ state of the checkbox. Otherwise, if this is an ordered list, renumber
927the ordered list at the cursor. 998the ordered list at the cursor.
928@end table 999@end table
929 1000
930@page
931@node Checkboxes, , Plain lists, Document structure
932@section Checkboxes
933@cindex checkboxes
934
935Every item in a plain list (ordered and unordered) can be made a
936checkbox by starting it with the string @samp{[ ]}. This feature is
937similar to TODO items (@pxref{TODO items}), but more lightweight.
938Checkboxes are not included into the global TODO list, so they are often
939great to split a task into a number of simple steps. Or you can use
940them in a shopping list to select the items you need to buy. To toggle
941a checkbox, use @kbd{C-c C-c}, or try Piotr Zielinski's
942@file{org-mouse.el}. Here is an example of a checkbox list.
943
944@example
945* Avoid stupid mistakes when distributing a new version
946 - [ ] update also Emacs CVS
947 - [X] forget to update index.html on the website
948 - [X] leaving a `(debug)' form in the code
949@end example
950
951@noindent The following commands work with checkboxes:
952
953@table @kbd
954@kindex C-c C-c
955@item C-c C-c
956Toggle checkbox at point.
957@kindex C-c C-x C-b
958@item C-c C-x C-b
959Toggle checkbox at point.
960@itemize @minus
961@item
962If there is an active region, toggle the first checkbox in the region
963and set all remaining boxes to the same status as the first. If you
964want to toggle all boxes in the region independently, use a prefix
965argument.
966@item
967If the cursor is in a headline, toggle checkboxes in the region between
968this headline and the next. This does @emph{not} act on the entire
969subtree, just the current entry.
970@item
971If no active region, just toggle the checkbox at point.
972@end itemize
973@kindex M-S-@key{RET}
974@item M-S-@key{RET}
975Insert a new item with a checkbox.
976This works only if the cursor is already in a plain list item
977(@pxref{Plain lists}).
978@end table
979
980@node Tables, Hyperlinks, Document structure, Top 1001@node Tables, Hyperlinks, Document structure, Top
981@chapter Tables 1002@chapter Tables
982@cindex tables 1003@cindex tables
@@ -1020,7 +1041,7 @@ expanded on the next re-align to span the whole table width. So, to
1020create the above table, you would only type 1041create the above table, you would only type
1021 1042
1022@example 1043@example
1023|Name|Phone|Age 1044|Name|Phone|Age|
1024|- 1045|-
1025@end example 1046@end example
1026 1047
@@ -1636,6 +1657,7 @@ links to other files, Usenet articles, emails, and much more.
1636* Internal links:: Links to other places in the current file 1657* Internal links:: Links to other places in the current file
1637* External links:: URL-like links to the world 1658* External links:: URL-like links to the world
1638* Handling links:: Creating, inserting and following 1659* Handling links:: Creating, inserting and following
1660* Link abbreviations:: Shortcuts for writing complex links
1639* Search options:: Linking to a specific location 1661* Search options:: Linking to a specific location
1640* Custom searches:: When the default search is not enough 1662* Custom searches:: When the default search is not enough
1641* Remember:: Org-trees store quick notes 1663* Remember:: Org-trees store quick notes
@@ -1676,6 +1698,7 @@ internal structure of all links, use the menu entry
1676@cindex internal links 1698@cindex internal links
1677@cindex links, internal 1699@cindex links, internal
1678@cindex CamelCase links 1700@cindex CamelCase links
1701@cindex targets, for links
1679 1702
1680If the link does not look like a URL, it is considered to be internal in 1703If the link does not look like a URL, it is considered to be internal in
1681the current file. Links such as @samp{[[My Target]]} or @samp{[[My 1704the current file. Links such as @samp{[[My Target]]} or @samp{[[My
@@ -1726,6 +1749,9 @@ earlier.
1726 1749
1727@node Radio targets, CamelCase links, Internal links, Internal links 1750@node Radio targets, CamelCase links, Internal links, Internal links
1728@subsection Radio targets 1751@subsection Radio targets
1752@cindex radio targets
1753@cindex targets, radio
1754@cindex links, radio targets
1729 1755
1730You can configure Org-mode to link any occurrences of certain target 1756You can configure Org-mode to link any occurrences of certain target
1731names in normal text. So without explicitly creating a link, the text 1757names in normal text. So without explicitly creating a link, the text
@@ -1744,10 +1770,11 @@ loaded into Emacs. To update the target list during editing, press
1744 1770
1745Org-mode also supports CamelCase words as links. This feature is not 1771Org-mode also supports CamelCase words as links. This feature is not
1746turned on by default because of the inconsistencies this system suffers 1772turned on by default because of the inconsistencies this system suffers
1747from. To activate CamelCase words as links, you need to customize 1773from. It is also possible that this feature will disappear entirely in
1748the option @code{org-activate-links}. A CamelCase word then leads to a 1774a future version of Org-mode. To activate CamelCase words as links, you
1749text search such that @samp{CamelCaseLink} is equivalent to 1775need to customize the option @code{org-activate-links}. A CamelCase
1750@samp{[[camel case link]]}. 1776word then leads to a text search such that @samp{CamelCaseLink} is
1777equivalent to @samp{[[camel case link]]}.
1751 1778
1752@node External links, Handling links, Internal links, Hyperlinks 1779@node External links, Handling links, Internal links, Hyperlinks
1753@section External links 1780@section External links
@@ -1810,8 +1837,9 @@ as links. If spaces must be part of the link (for example in
1810@samp{bbdb:Richard Stallman}), or you need to remove ambiguities about the end of 1837@samp{bbdb:Richard Stallman}), or you need to remove ambiguities about the end of
1811the link, enclose them in angular brackets. 1838the link, enclose them in angular brackets.
1812 1839
1813@node Handling links, Search options, External links, Hyperlinks 1840@node Handling links, Link abbreviations, External links, Hyperlinks
1814@section Handling links 1841@section Handling links
1842@cindex links, handling
1815 1843
1816Org-mode provides methods to create a link in the correct syntax, to 1844Org-mode provides methods to create a link in the correct syntax, to
1817insert it into an org-mode file, and to follow the link. 1845insert it into an org-mode file, and to follow the link.
@@ -1900,7 +1928,9 @@ would. Under Emacs 22, also @kbd{mouse-1} will follow a link.
1900 1928
1901@kindex mouse-3 1929@kindex mouse-3
1902@item mouse-3 1930@item mouse-3
1903Like @kbd{mouse-2}, but force file links to be opened with Emacs. 1931Like @kbd{mouse-2}, but force file links to be opened with Emacs, and
1932internal links to be displayed in another window@footnote{See the
1933variable @code{org-display-internal-link-with-indirect-buffer}}.
1904 1934
1905@cindex mark ring 1935@cindex mark ring
1906@kindex C-c % 1936@kindex C-c %
@@ -1917,8 +1947,57 @@ command several times in direct succession moves through a ring of
1917previously recorded positions. 1947previously recorded positions.
1918@end table 1948@end table
1919 1949
1950@node Link abbreviations, Search options, Handling links, Hyperlinks
1951@section Link abbreviatons
1952@cindex link abbreviations
1953@cindex abbreviation, links
1954
1955Long URLs can be cumbersome to type, and often many similar links are
1956needed in a document. For this you can use link abbreviations. An
1957abbreviated link looks like this
1958
1959@example
1960[[linkword::tag][description]]
1961@end example
1962
1963@noindent
1964where the tag is optional. Such abbreviations are resolved according to
1965the information in the variable @code{org-link-abbrev-alist} that
1966relates the linkwords to replacement text. Here is an example:
1967
1968@lisp
1969@group
1970(setq org-link-abbrev-alist
1971 '(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
1972 ("google" . "http://www.google.com/search?q=")
1973 ("ads" . "http://adsabs.harvard.edu/cgi-bin/
1974 nph-abs_connect?author=%s&db_key=AST")))
1975@end group
1976@end lisp
1977
1978If the replacement text contains the string @samp{%s}, it will be
1979replaced with the tag. Otherwise the tag will be appended to the string
1980in order to create the link. You may also specify a function that will
1981be called with the tag as the only argument to create the link.
1982
1983With the above setting, you could link to a specific bug with
1984@code{[[bugzilla::129]]}, search the web for OrgMode with
1985@code{[[google::OrgMode]]} and find out what the Org-mode author is
1986doing besides Emacs hacking with @code{[[ads::Dominik,C]]}.
1987
1988If you need special abbreviations just for a single Org-mode buffer, you
1989can define them in the file with
1990
1991@example
1992#+LINK: bugzilla http://10.1.2.9/bugzilla/show_bug.cgi?id=
1993#+LINK: google http://www.google.com/search?q=%s
1994@end example
1995
1996@noindent
1997In-buffer completion @pxref{Completion} can be used after @samp{[} to
1998complete link abbreviations.
1920 1999
1921@node Search options, Custom searches, Handling links, Hyperlinks 2000@node Search options, Custom searches, Link abbreviations, Hyperlinks
1922@section Search options in file links 2001@section Search options in file links
1923@cindex search option in file links 2002@cindex search option in file links
1924@cindex file links, searching 2003@cindex file links, searching
@@ -1970,6 +2049,7 @@ a search for @samp{find me} in the current file, just as
1970@node Custom searches, Remember, Search options, Hyperlinks 2049@node Custom searches, Remember, Search options, Hyperlinks
1971@section Custom Searches 2050@section Custom Searches
1972@cindex custom search strings 2051@cindex custom search strings
2052@cindex search strings, custom
1973 2053
1974The default mechanism for creating search strings and for doing the 2054The default mechanism for creating search strings and for doing the
1975actual search related to a file link may not work correctly in all 2055actual search related to a file link may not work correctly in all
@@ -2101,6 +2181,8 @@ things you have to do.
2101* TODO basics:: Marking and displaying TODO entries 2181* TODO basics:: Marking and displaying TODO entries
2102* TODO extensions:: Workflow and assignments 2182* TODO extensions:: Workflow and assignments
2103* Priorities:: Some things are more important than others 2183* Priorities:: Some things are more important than others
2184* Breaking down tasks:: Splitting a task into managable pieces
2185* Checkboxes:: Tick-off lists
2104@end menu 2186@end menu
2105 2187
2106@node TODO basics, TODO extensions, TODO items, TODO items 2188@node TODO basics, TODO extensions, TODO items, TODO items
@@ -2264,8 +2346,7 @@ changing one of these lines, use @kbd{C-c C-c} with the cursor still
2264in the line to make the changes known to Org-mode@footnote{Org-mode 2346in the line to make the changes known to Org-mode@footnote{Org-mode
2265parses these lines only when Org-mode is activated after visiting a 2347parses these lines only when Org-mode is activated after visiting a
2266file. @kbd{C-c C-c} with the cursor in a line starting with @samp{#+} 2348file. @kbd{C-c C-c} with the cursor in a line starting with @samp{#+}
2267is simply restarting Org-mode, making sure that these changes will be 2349is simply restarting Org-mode for the current buffer.}.
2268respected.}.
2269 2350
2270If you want to use very many keywords, for example when working with a 2351If you want to use very many keywords, for example when working with a
2271large group of people, you may split the names over several lines: 2352large group of people, you may split the names over several lines:
@@ -2277,7 +2358,7 @@ large group of people, you may split the names over several lines:
2277#+TYP_TODO: DONE 2358#+TYP_TODO: DONE
2278@end example 2359@end example
2279 2360
2280@node Priorities, , TODO extensions, TODO items 2361@node Priorities, Breaking down tasks, TODO extensions, TODO items
2281@section Priorities 2362@section Priorities
2282@cindex priorities 2363@cindex priorities
2283 2364
@@ -2314,8 +2395,96 @@ are also used to modify time stamps (@pxref{Creating timestamps}).
2314Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}). 2395Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}).
2315@end table 2396@end table
2316 2397
2398@node Breaking down tasks, Checkboxes, Priorities, TODO items
2399@section Breaking tasks down into subtasks
2400@cindex tasks, breaking down
2401
2402It is often advisable to break down large tasks into smaller, managable
2403subtasks. You can do this by creating an outline tree below a TODO
2404item, with detailed subtasks on the tree@footnote{To keep subtasks out
2405of the global TODO list, see the
2406@code{org-agenda-todo-list-sublevels}.}. Another possibility is the use
2407of checkboxes to ideantify (a hierarchy of) a large number of subtasks
2408(@pxref{Checkboxes}).
2409
2410
2411@node Checkboxes, , Breaking down tasks, TODO items
2412@section Checkboxes
2413@cindex checkboxes
2414
2415Every item in a plain list (@pxref{Plain lists}) can be made a checkbox
2416by starting it with the string @samp{[ ]}. This feature is similar to
2417TODO items (@pxref{TODO items}), but more lightweight. Checkboxes are
2418not included into the global TODO list, so they are often great to split
2419a task into a number of simple steps. Or you can use them in a shopping
2420list. To toggle a checkbox, use @kbd{C-c C-c}, or try Piotr Zielinski's
2421@file{org-mouse.el}. Here is an example of a checkbox list.
2422
2423@example
2424* TODO Organize party [3/6]
2425 - call people [1/3]
2426 - [ ] Peter
2427 - [X] Sarah
2428 - [ ] Sam
2429 - [X] order food
2430 - [ ] think about what music to play
2431 - [X] talk to the neighbors
2432@end example
2433
2434@cindex statistics, for checkboxes
2435@cindex checkbox statistics
2436The @samp{[3/6]} and @samp{[1/3]} in the first and second line are
2437cookies indicating how many checkboxes are present in this entry, and
2438how many of them have been checked off. This can give you an idea on
2439how many checkboxes remain, even without opening a folded entry. The
2440cookies can be placed into a headline or into (the first line of) a
2441plain list item. Each cookie covers all checkboxes structurally below
2442that headline/item. You have to insert the cookie yourself by typing
2443either @samp{[/]} or @samp{[%]}. In the first case you get an @samp{n
2444out of m} result, in the second case you get information about the
2445percentage of checkboxes checked (in the above example, this would be
2446@samp{[50%]} and @samp{[33%], respectively}).
2447
2448@noindent The following commands work with checkboxes:
2449
2450@table @kbd
2451@kindex C-c C-c
2452@item C-c C-c
2453Toggle checkbox at point.
2454@kindex C-c C-x C-b
2455@item C-c C-x C-b
2456Toggle checkbox at point.
2457@itemize @minus
2458@item
2459If there is an active region, toggle the first checkbox in the region
2460and set all remaining boxes to the same status as the first. If you
2461want to toggle all boxes in the region independently, use a prefix
2462argument.
2463@item
2464If the cursor is in a headline, toggle checkboxes in the region between
2465this headline and the next (so @emph{not} the entire subtree).
2466@item
2467If no active region, just toggle the checkbox at point.
2468@end itemize
2469@kindex M-S-@key{RET}
2470@item M-S-@key{RET}
2471Insert a new item with a checkbox.
2472This works only if the cursor is already in a plain list item
2473(@pxref{Plain lists}).
2474@kindex C-c #
2475@item C-c #
2476Update the checkbox statistics in the current outline entry. When
2477called with a @kbd{C-u} prefix, update the entire file. Checkbox
2478statistic cookies are updated automatically if you toggle checkboxes
2479with @kbd{C-c C-c} and make new ones with @kbd{M-S-@key{RET}}. If you
2480delete boxes or add/change them by hand, use this command to get things
2481back into synch. Or simply toggle any checkbox twice with @kbd{C-c C-c}.
2482@end table
2483
2317@node Timestamps, Tags, TODO items, Top 2484@node Timestamps, Tags, TODO items, Top
2318@chapter Timestamps 2485@chapter Timestamps
2486@cindex time stamps
2487@cindex date stamps
2319 2488
2320Items can be labeled with timestamps to make them useful for project 2489Items can be labeled with timestamps to make them useful for project
2321planning. 2490planning.
@@ -2323,6 +2492,7 @@ planning.
2323@menu 2492@menu
2324* Time stamps:: Assigning a time to a tree entry 2493* Time stamps:: Assigning a time to a tree entry
2325* Creating timestamps:: Commands which insert timestamps 2494* Creating timestamps:: Commands which insert timestamps
2495* Custom time format:: If you cannot work with the ISO format
2326* Progress logging:: Documenting when what work was done. 2496* Progress logging:: Documenting when what work was done.
2327@end menu 2497@end menu
2328 2498
@@ -2336,10 +2506,12 @@ planning.
2336@cindex scheduling 2506@cindex scheduling
2337 2507
2338A time stamp is a specification of a date (possibly with time) in a 2508A time stamp is a specification of a date (possibly with time) in a
2339special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16 2509special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16 Tue
2340Tue 09:39>}. A time stamp can appear anywhere in the headline or body 251009:39>}@footnote{This is the standard ISO date/time format. If you
2341of an org-tree entry. Its presence allows entries to be shown on specific 2511cannot get used to these, see @ref{Custom time format}}. A time stamp
2342dates in the agenda (@pxref{Weekly/Daily agenda}). We distinguish: 2512can appear anywhere in the headline or body of an org-tree entry. Its
2513presence allows entries to be shown on specific dates in the agenda
2514(@pxref{Weekly/Daily agenda}). We distinguish:
2343 2515
2344@table @var 2516@table @var
2345@item Plain time stamp 2517@item Plain time stamp
@@ -2350,6 +2522,21 @@ an event in a diary, when you want to take note of when something
2350happened. In the timeline and agenda displays, the headline of an entry 2522happened. In the timeline and agenda displays, the headline of an entry
2351associated with a plain time stamp will be shown exactly on that date. 2523associated with a plain time stamp will be shown exactly on that date.
2352 2524
2525@example
2526* Meet Peter at the movies <2006-11-01 Wed 19:15>
2527@end example
2528
2529@item Inactive time stamp
2530@cindex timestamp, inactive
2531@cindex inactive timestamp
2532Just like a plain time stamp, but with square brackets instead of
2533angular ones. These time stamps are inactive in the sense that thay do
2534@emph{not} trigger an entry to show up in the agenda.
2535
2536@example
2537* Gillian comes late for the fifth time [2006-11-01 Wed]
2538@end example
2539
2353@item Time stamp range 2540@item Time stamp range
2354@cindex timerange 2541@cindex timerange
2355Two time stamps connected by @samp{--} denote a time range. The 2542Two time stamps connected by @samp{--} denote a time range. The
@@ -2406,7 +2593,7 @@ automatically into the file. The time stamps are enclosed in square
2406brackets instead of angular brackets. @xref{Clocking work time}. 2593brackets instead of angular brackets. @xref{Clocking work time}.
2407@end table 2594@end table
2408 2595
2409@node Creating timestamps, Progress logging, Time stamps, Timestamps 2596@node Creating timestamps, Custom time format, Time stamps, Timestamps
2410@section Creating timestamps 2597@section Creating timestamps
2411@cindex creating timestamps 2598@cindex creating timestamps
2412@cindex timestamps, creating 2599@cindex timestamps, creating
@@ -2445,8 +2632,8 @@ instead.
2445 2632
2446@kindex C-c C-o 2633@kindex C-c C-o
2447@item C-c C-o 2634@item C-c C-o
2448Access the agenda for the date given by the time stamp at point 2635Access the agenda for the date given by the time stamp or -range at
2449(@pxref{Weekly/Daily agenda}). 2636point (@pxref{Weekly/Daily agenda}).
2450 2637
2451@kindex C-c C-d 2638@kindex C-c C-d
2452@item C-c C-d 2639@item C-c C-d
@@ -2480,11 +2667,11 @@ CUA-mode (@pxref{Conflicts}).
2480@kindex S-@key{down} 2667@kindex S-@key{down}
2481@item S-@key{up} 2668@item S-@key{up}
2482@itemx S-@key{down} 2669@itemx S-@key{down}
2483Change the item under the cursor in a timestamp. The cursor can be on 2670Change the item under the cursor in a timestamp. The cursor can be on a
2484a year, month, day, hour or minute. Note that if the cursor is not at 2671year, month, day, hour or minute. Note that if the cursor is in a
2485a time stamp, these same keys modify the priority of an item. 2672headline and not at a time stamp, these same keys modify the priority of
2486(@pxref{Priorities}). The key bindings also conflict with CUA-mode 2673an item. (@pxref{Priorities}). The key bindings also conflict with
2487(@pxref{Conflicts}). 2674CUA-mode (@pxref{Conflicts}).
2488 2675
2489 2676
2490@kindex C-c C-y 2677@kindex C-c C-y
@@ -2495,15 +2682,42 @@ end. With prefix arg, insert result after the time range (in a table:
2495into the following column). 2682into the following column).
2496@end table 2683@end table
2497 2684
2685
2686@menu
2687* The date/time prompt:: How org-mode helps you entring date and time
2688@end menu
2689
2690@node The date/time prompt, , Creating timestamps, Creating timestamps
2691@subsection The date/time prompt
2498@cindex date, reading in minibuffer 2692@cindex date, reading in minibuffer
2499@cindex time, reading in minibuffer 2693@cindex time, reading in minibuffer
2694
2695When Org-mode prompts for a date/time, the prompt suggests to enter an
2696ISO date. But it will in fact accept any string containing some date
2697and/or time information. You can, for example, use @kbd{C-y} to paste a
2698(possibly multi-line) string copied from an email message. Org-mode
2699will find whatever information is in there and will replace anything not
2700specified with the current date and time. For example:
2701
2702@example
2703 3-2-5 --> 2003-02-05
2704 feb 15 --> currentyear-02-15
2705 sep 12 9 --> 2009-09-12
2706 12:45 --> today 12:45
2707 22 sept 0:34 --> currentyear-09-22 0:34
2708 12 --> currentyear-currentmonth-12
2709 Fri --> nearest Friday (today or later)
2710@end example
2711
2712The function understands English month and weekday abbreviations. If
2713you want to use unabbreviated names and/or other languages, configure
2714the variables @code{parse-time-months} and @code{parse-time-weekdays}.
2715
2500@cindex calendar, for selecting date 2716@cindex calendar, for selecting date
2501When Org-mode prompts for a date/time, the function reading your input 2717Parallel to the minibuffer prompt, a calendar is popped up@footnote{If
2502will replace anything you choose not to specify with the current date 2718you don't need/want the calendar, configure the variable
2503and time. For details, see the documentation string of 2719@code{org-popup-calendar-for-date-prompt}.}. You can control the
2504@command{org-read-date}. Also, a calender will pop up to allow 2720calendar fully from the minibuffer:
2505selecting a date. The calendar can be fully controlled from the
2506minibuffer, and a date can be selected with the following commands:
2507 2721
2508@table @kbd 2722@table @kbd
2509@kindex < 2723@kindex <
@@ -2535,10 +2749,53 @@ One month forward.
2535One month back. 2749One month back.
2536@kindex @key{RET} 2750@kindex @key{RET}
2537@item @key{RET} 2751@item @key{RET}
2538Choose date in calendar (only if nothing typed into minibuffer). 2752Choose date in calendar (only if nothing was typed into minibuffer).
2539@end table 2753@end table
2540 2754
2541@node Progress logging, , Creating timestamps, Timestamps 2755@node Custom time format, Progress logging, Creating timestamps, Timestamps
2756@section Custom time format
2757@cindex custom date/time format
2758@cindex time format, custom
2759@cindex date format, custom
2760
2761Org-mode uses the standard ISO notation for dates and times as it is
2762defined in ISO 8601. If you cannot get used to this and require another
2763representation of date and time to keep you happy, you can get it by
2764customizing the variables @code{org-display-custom-times} and
2765@code{org-time-stamp-custom-formats}.
2766
2767@table @kbd
2768@kindex C-c C-x C-t
2769@item C-c C-x C-t
2770Toggle the display of custom formats for dates and times.
2771@end table
2772
2773@noindent
2774Org-mode needs the default format for scanning, so the custom date/time
2775format does not @emph{replace} the default format - instead it is put
2776@emph{over} the default format using text properties. This has the
2777following consequences:
2778@itemize @bullet
2779@item
2780You cannot place the cursor onto a time stamp anymore, only before or
2781after.
2782@item
2783The @kbd{S-@key{up}/@key{down}} keys can no longer be used to adjust
2784each component of a time stamp. If the cursor is at the beginning of
2785the stamp, @kbd{S-@key{up}/@key{down}} will change the stamp by one day,
2786just like @kbd{S-@key{left}/@key{right}}. At the end of the stamp, the
2787time will be changed by one minute.
2788@item
2789When you delete a time stamp character-by-character, it will only
2790disappear from the buffer after @emph{all} (invisible) characters
2791belonging to the ISO timestamp have been removed.
2792@item
2793If the custom time stamp format is longer than the default and you are
2794using dates in tables, table alignment will be messed up. If the custom
2795format is shorter, things do work as expected.
2796@end itemize
2797
2798@node Progress logging, , Custom time format, Timestamps
2542@section Progress Logging 2799@section Progress Logging
2543@cindex progress logging 2800@cindex progress logging
2544@cindex logging, of progress 2801@cindex logging, of progress
@@ -2572,6 +2829,8 @@ state cycling, that line will be removed again. In the timeline
2572(@pxref{Timeline}) and in the agenda (@pxref{Weekly/Daily agenda}), 2829(@pxref{Timeline}) and in the agenda (@pxref{Weekly/Daily agenda}),
2573you can then use the @kbd{l} key to display the TODO items closed on 2830you can then use the @kbd{l} key to display the TODO items closed on
2574each day, giving you an overview of what has been done on a day. 2831each day, giving you an overview of what has been done on a day.
2832See the variable @code{org-log-done} for the possibility to record an
2833additional note together with a timestamp.
2575 2834
2576@node Clocking work time, , Closing items, Progress logging 2835@node Clocking work time, , Closing items, Progress logging
2577@subsection Clocking work time 2836@subsection Clocking work time
@@ -2592,7 +2851,8 @@ keyword together with a timestamp.
2592Stop the clock (clock-out). The inserts another timestamp at the same 2851Stop the clock (clock-out). The inserts another timestamp at the same
2593location where the clock was last started. It also directly computes 2852location where the clock was last started. It also directly computes
2594the resulting time in inserts it after the time range as @samp{=> 2853the resulting time in inserts it after the time range as @samp{=>
2595HH:MM}. 2854HH:MM}. See the variable @code{org-log-done} for the possibility to
2855record an additional note together with a the clock-out time stamp.
2596@kindex C-c C-y 2856@kindex C-c C-y
2597@item C-c C-y 2857@item C-c C-y
2598Recompute the time interval after changing one of the time stamps. This 2858Recompute the time interval after changing one of the time stamps. This
@@ -2612,7 +2872,8 @@ Display time summaries for each subtree in the current buffer. This
2612puts overlays at the end of each headline, showing the total time 2872puts overlays at the end of each headline, showing the total time
2613recorded under that heading, including the time of any subheadings. You 2873recorded under that heading, including the time of any subheadings. You
2614can use visibility cycling to study the tree, but the overlays disappear 2874can use visibility cycling to study the tree, but the overlays disappear
2615automatically when the buffer is changed. 2875when you change the buffer (see variable
2876@code{org-remove-highlights-with-change}) or press @kbd{C-c C-c}.
2616@kindex C-c C-x C-r 2877@kindex C-c C-x C-r
2617@item C-c C-x C-r 2878@item C-c C-x C-r
2618Insert a dynamic block (@pxref{Dynamic blocks}) containing a clock 2879Insert a dynamic block (@pxref{Dynamic blocks}) containing a clock
@@ -2685,6 +2946,7 @@ Tags are normal words containing letters, numbers, @samp{_}, and
2685@node Tag inheritance, Setting tags, Tags, Tags 2946@node Tag inheritance, Setting tags, Tags, Tags
2686@section Tag inheritance 2947@section Tag inheritance
2687@cindex inheritance, of tags 2948@cindex inheritance, of tags
2949@cindex sublevels, inclusion into tags match
2688 2950
2689@i{Tags} make use of the hierarchical structure of outline trees. If a 2951@i{Tags} make use of the hierarchical structure of outline trees. If a
2690heading has a certain tag, all subheadings will inherit the tag as 2952heading has a certain tag, all subheadings will inherit the tag as
@@ -2709,6 +2971,7 @@ searching using the variables @code{org-use-tag-inheritance} and
2709@node Setting tags, Tag searches, Tag inheritance, Tags 2971@node Setting tags, Tag searches, Tag inheritance, Tags
2710@section Setting tags 2972@section Setting tags
2711@cindex setting tags 2973@cindex setting tags
2974@cindex tags, setting
2712 2975
2713@kindex M-@key{TAB} 2976@kindex M-@key{TAB}
2714Tags can simply be typed into the buffer at the end of a headline. 2977Tags can simply be typed into the buffer at the end of a headline.
@@ -2732,18 +2995,26 @@ Org will support tag insertion based on a @emph{list of tags}. By
2732default this list is constructed dynamically, containing all tags 2995default this list is constructed dynamically, containing all tags
2733currently used in the buffer. You may also globally specify a hard list 2996currently used in the buffer. You may also globally specify a hard list
2734of tags with the variable @code{org-tag-alist}. Finally you can set 2997of tags with the variable @code{org-tag-alist}. Finally you can set
2735the allowed tags for a given file with lines like 2998the default tags for a given file with lines like
2736 2999
2737@example 3000@example
2738#+TAGS: @@WORK @@HOME @@TENNISCLUB 3001#+TAGS: @@WORK @@HOME @@TENNISCLUB
2739#+TAGS: Laptop Car PC Sailboat 3002#+TAGS: Laptop Car PC Sailboat
2740@end example 3003@end example
2741 3004
2742The default support method is minibuffer completion. However, Org-mode 3005If you have globally defined your preferred set of tags using the
2743also implements a much better method: @emph{fast tag selection}. This 3006variable @code{org-tag-alist}, but would like to use a dynamic tag list
2744method allows to select and deselect tags with a single key per tag. To 3007in a specific file: Just add an empty TAGS option line to that file:
2745function efficiently, you should assign unique keys to all tags. This 3008
2746can be done globally with 3009@example
3010#+TAGS:
3011@end example
3012
3013The default support method for entering tags is minibuffer completion.
3014However, Org-mode also implements a much better method: @emph{fast tag
3015selection}. This method allows to select and deselect tags with a
3016single key per tag. To function efficiently, you should assign unique
3017keys to most tags. This can be done globally with
2747 3018
2748@lisp 3019@lisp
2749(setq org-tag-alist '(("@@WORK" . ?w) ("@@HOME" . ?h) ("Laptop" . ?l))) 3020(setq org-tag-alist '(("@@WORK" . ?w) ("@@HOME" . ?h) ("Laptop" . ?l)))
@@ -2774,32 +3045,57 @@ these lines to activate any changes.
2774If at least one tag has a selection key, pressing @kbd{C-c C-c} will 3045If at least one tag has a selection key, pressing @kbd{C-c C-c} will
2775automatically present you with a special interface, listing inherited 3046automatically present you with a special interface, listing inherited
2776tags, the tags of the current headline, and a list of all legal tags 3047tags, the tags of the current headline, and a list of all legal tags
2777with corresponding keys@footnote{Keys will automatically assigned to 3048with corresponding keys@footnote{Keys will automatically be assigned to
2778tags which have no configured keys.}. Pressing keys for the tags will 3049tags which have no configured keys.}. In this interface, you can use
2779add or remove them from the list of tags in the current line. Selecting 3050the following keys:
2780a tag in a group of mutually exclusive tags will turn off any other tags
2781from that group. @key{SPC} clears all tags for this line, @kbd{RET}
2782accepts the modified set, and @kbd{C-g} aborts without installing
2783changes. This method lets you assign tags to a headline with very few
2784keys. With the above setup, you could clear the current tags and set
2785@samp{@@HOME}, @samp{Laptop} and @samp{PC} tags with just the following
2786keys: @kbd{C-c C-c @key{SPC} h l p @key{RET}}. Switching from
2787@samp{@@HOME} to @samp{@@WORK} would be done with @kbd{C-c C-c w
2788@key{RET}}.
2789
2790What if you have globally defined your preferred set of tags using the
2791variable @code{org-tag-alist}, but would like to use a dynamic tag list
2792in a specific file? Just add an empty TAGS option line to that file:
2793
2794@example
2795#+TAGS:
2796@end example
2797 3051
3052@table @kbd
3053@item a-z...
3054Pressing keys assigned to tags will add or remove them from the list of
3055tags in the current line. Selecting a tag in a group of mutually
3056exclusive tags will turn off any other tags from that group.
3057@kindex @key{TAB}
3058@item @key{TAB}
3059Enter a tag in the minibuffer, even if the tag is not in the predefined
3060list. You will be able to complete on all tags present in the buffer.
3061@kindex @key{SPC}
3062@item @key{SPC}
3063Clear all tags for this line.
3064@kindex @key{RET}
3065@item @key{RET}
3066Accept the modified set.
3067@item C-g
3068Abort without installing changes.
3069@item q
3070If @kbd{q} is not assigned to a tag, it aborts like @kbd{C-g}.
3071@item !
3072Turn of groups of mutually exclusive tags. Use this to (as an
3073exception) assign several tags from such a group.
3074@item C-c
3075Toggle auto-exit after the next change (see below).
3076@end table
2798 3077
3078@noindent
3079This method lets you assign tags to a headline with very few keys. With
3080the above setup, you could clear the current tags and set @samp{@@HOME},
3081@samp{Laptop} and @samp{PC} tags with just the following keys: @kbd{C-c
3082C-c @key{SPC} h l p @key{RET}}. Switching from @samp{@@HOME} to
3083@samp{@@WORK} would be done with @kbd{C-c C-c w @key{RET}} or
3084alternatively with @kbd{C-c C-c C-c w}. Adding the non-predefined tag
3085@samp{Sarah} could be done with @kbd{C-c C-c @key{TAB} S a r a h
3086@key{RET} @key{RET}}.
3087
3088If you find that most of the time, you need only a single keypress to
3089modify your list of tags, set the variable
3090@code{org-fast-tag-selection-single-key}. Then you no longer have to
3091press @key{RET} to exit fast tag selection - it will immediately exit
3092after the first change. If you then occasionally need more keys, press
3093@kbd{C-c} to turn off auto-exit for the current tag selection process.
2799 3094
2800@node Tag searches, , Setting tags, Tags 3095@node Tag searches, , Setting tags, Tags
2801@section Tag searches 3096@section Tag searches
2802@cindex tag searches 3097@cindex tag searches
3098@cindex searching for tags
2803 3099
2804Once a tags system has been set up, it can be used to collect related 3100Once a tags system has been set up, it can be used to collect related
2805information into special lists. 3101information into special lists.
@@ -2819,17 +3115,45 @@ only TODO items and force checking subitems (see variable
2819@code{org-tags-match-list-sublevels}). 3115@code{org-tags-match-list-sublevels}).
2820@end table 3116@end table
2821 3117
3118@cindex Boolean logic, for tag searches
2822A @i{tags} search string can use Boolean operators @samp{&} for AND and 3119A @i{tags} search string can use Boolean operators @samp{&} for AND and
2823@samp{|} for OR. @samp{&} binds more strongly than @samp{|}. 3120@samp{|} for OR. @samp{&} binds more strongly than @samp{|}.
2824Parenthesis are currently not implemented. A tag may also be preceded 3121Parenthesis are currently not implemented. A tag may also be preceded
2825by @samp{-}, to select against it, and @samp{+} is syntactic sugar for 3122by @samp{-}, to select against it, and @samp{+} is syntactic sugar for
2826positive selection. The AND operator @samp{&} is optional when @samp{+} 3123positive selection. The AND operator @samp{&} is optional when @samp{+}
2827or @samp{-} is present. For example, @samp{+WORK-BOSS} would select all 3124or @samp{-} is present. Examples:
2828headlines that are tagged @samp{:WORK:}, but discard those also tagged 3125
2829@samp{:BOSS:}. The search string @samp{WORK|LAPTOP} selects all lines 3126@table @samp
2830tagged @samp{:WORK:} or @samp{:LAPTOP:}. The string 3127@item +WORK-BOSS
2831@samp{WORK|LAPTOP&NIGHT} requires that the @samp{:LAPTOP:} lines are 3128Select all headlines that are tagged @samp{:WORK:}, but discard those also tagged
2832also tagged @samp{NIGHT}. 3129@samp{:BOSS:}.
3130@item WORK|LAPTOP
3131Selects lines tagged @samp{:WORK:} or @samp{:LAPTOP:}.
3132@item WORK|LAPTOP&NIGHT
3133Like the previous example, but require the @samp{:LAPTOP:} lines to be
3134tagged also @samp{NIGHT}.
3135@end table
3136
3137@cindex TODO keyword matching, with tags search
3138If you are using multi-state TODO keywords (@pxref{TODO extensions}), it
3139can be useful to also match on the TODO keyword. This can be done by
3140adding a condition after a slash to a tags match. The syntax is similar
3141to the tag matches, but should be applied with consideration: For
3142example, a positive selection on several TODO keywords can not
3143meaningfully be combined with boolean AND. However, @emph{negative
3144selection} combined with AND can be meaningful. Examples:
3145
3146@table @samp
3147@item WORK/WAITING
3148Select @samp{:WORK:}-tagged TODO lines with the specific TODO
3149keyword @samp{WAITING}.
3150@item WORK/-WAITING-NEXT
3151Select @samp{:WORK:}-tagged TODO lines that are neither @samp{WAITING}
3152nor @samp{NEXT}
3153@item WORK/+WAITING|+NEXT
3154Select @samp{:WORK:}-tagged TODO lines that are either @samp{WAITING} or
3155@samp{NEXT}.
3156@end table
2833 3157
2834@node Agenda views, Embedded LaTeX, Tags, Top 3158@node Agenda views, Embedded LaTeX, Tags, Top
2835@chapter Agenda Views 3159@chapter Agenda Views
@@ -2842,7 +3166,7 @@ are important for a particular date, this information must be collected,
2842sorted and displayed in an organized way. 3166sorted and displayed in an organized way.
2843 3167
2844Org-mode can select items based on various criteria, and display them 3168Org-mode can select items based on various criteria, and display them
2845in a separate buffer. Three different views are provided: 3169in a separate buffer. Five different view types are provided:
2846 3170
2847@itemize @bullet 3171@itemize @bullet
2848@item 3172@item
@@ -2850,17 +3174,28 @@ an @emph{agenda} that is like a calendar and shows information
2850for specific dates 3174for specific dates
2851@item 3175@item
2852a @emph{TODO list} that covers all unfinished 3176a @emph{TODO list} that covers all unfinished
2853action items, and 3177action items,
2854@item 3178@item
2855a @emph{tags view} that shows information based on 3179a @emph{tags view} that shows information based on
2856the tags associated with headlines in the outline tree. 3180the tags associated with headlines in the outline tree,
3181@item
3182a @emph{timeline view} that shows all events in a single Org-mode file,
3183in time-sorted view
3184@item
3185@emph{custom views} that are special tag and keyword searches and
3186combinations of different views.
2857@end itemize 3187@end itemize
2858 3188
2859@noindent 3189@noindent
2860The extracted information is displayed in a special @emph{agenda 3190The extracted information is displayed in a special @emph{agenda
2861buffer}. This buffer is read-only, but provides commands to visit the 3191buffer}. This buffer is read-only, but provides commands to visit the
2862corresponding locations in the original Org-mode files, and even to 3192corresponding locations in the original Org-mode files, and even to
2863edit these files remotely. 3193edit these files remotely.
3194
3195Two variables control how the agenda buffer is displayed and whether the
3196window configuration is restored when the agenda exits:
3197@code{org-agenda-window-setup} and
3198@code{org-agenda-restore-windows-after-quit}.
2864 3199
2865@menu 3200@menu
2866* Agenda files:: Files being searched for agenda information 3201* Agenda files:: Files being searched for agenda information
@@ -2869,18 +3204,22 @@ edit these files remotely.
2869* Global TODO list:: All unfinished action items 3204* Global TODO list:: All unfinished action items
2870* Matching headline tags:: Structured information with fine-tuned search 3205* Matching headline tags:: Structured information with fine-tuned search
2871* Timeline:: Time-sorted view for single file 3206* Timeline:: Time-sorted view for single file
3207* Presentation and sorting:: How agenda items are prepared for display
2872* Agenda commands:: Remote editing of org trees 3208* Agenda commands:: Remote editing of org trees
3209* Custom agenda views:: Defining special searches and views
2873@end menu 3210@end menu
2874 3211
2875@node Agenda files, Agenda dispatcher, Agenda views, Agenda views 3212@node Agenda files, Agenda dispatcher, Agenda views, Agenda views
2876@section Agenda files 3213@section Agenda files
3214@cindex agenda files
3215@cindex files for agenda
2877 3216
2878The information to be shown is collected from all @emph{agenda files}, 3217The information to be shown is collected from all @emph{agenda files},
2879the files listed in the variable @code{org-agenda-files}@footnote{If the 3218the files listed in the variable @code{org-agenda-files}@footnote{If the
2880value of that variable is not a list, but a single file name, then the 3219value of that variable is not a list, but a single file name, then the
2881list of agenda files will be maintained in that external file.}. Thus even 3220list of agenda files will be maintained in that external file.}. Thus even
2882if you only work with a single Org-mode file, this file should be put 3221if you only work with a single Org-mode file, this file should be put
2883into that list@footnote{When using the dispatcher pressing @kbd{1} 3222into that list@footnote{When using the dispatcher, pressing @kbd{1}
2884before selecting a command will actually limit the command to the 3223before selecting a command will actually limit the command to the
2885current file, and ignore @code{org-agenda-files} until the next 3224current file, and ignore @code{org-agenda-files} until the next
2886dispatcher command.}. You can customize @code{org-agenda-files}, but 3225dispatcher command.}. You can customize @code{org-agenda-files}, but
@@ -2909,8 +3248,6 @@ to visit any of them.
2909@section The agenda dispatcher 3248@section The agenda dispatcher
2910@cindex agenda dispatcher 3249@cindex agenda dispatcher
2911@cindex dispatching agenda commands 3250@cindex dispatching agenda commands
2912@cindex custom agenda commands
2913@cindex agenda commands, custom
2914The views are created through a dispatcher that should be bound to a 3251The views are created through a dispatcher that should be bound to a
2915global key, for example @kbd{C-c a} (@pxref{Installation}). In the 3252global key, for example @kbd{C-c a} (@pxref{Installation}). In the
2916following we will assume that @kbd{C-c a} is indeed how the dispatcher 3253following we will assume that @kbd{C-c a} is indeed how the dispatcher
@@ -2925,44 +3262,32 @@ Create a list of all TODO items (@pxref{Global TODO list}).
2925@item m / M 3262@item m / M
2926Create a list of headlines matching a TAGS expression (@pxref{Matching 3263Create a list of headlines matching a TAGS expression (@pxref{Matching
2927headline tags}). 3264headline tags}).
3265@item L
3266Create the timeline view for the current buffer (@pxref{Timeline}).
3267@item 1
3268Restrict an agenda command to the current buffer. After pressing
3269@kbd{1}, you still need to press the character selecting the command.
3270@item 0
3271If there is an active region, restrict the following agenda command to
3272the region. Otherwise, restrict it to the current subtree. After
3273pressing @kbd{0}, you still need to press the character selecting the
3274command.
2928@end table 3275@end table
2929 3276
2930You can also define custom commands that will be accessible through 3277You can also define custom commands that will be accessible through the
2931the dispatcher, just like the default commands. Custom commands are 3278dispatcher, just like the default commands. This includes the
2932global searches for tags and specific TODO keywords, or a variety of 3279possibility to create extended agenda buffers that contain several
2933sparse tree creating commands (@pxref{Sparse trees}). As sparse trees 3280blocks together, for example the weekly agenda, the global TODO list and
2934are only defined for a single org-mode file, these latter commands act 3281a number of special tags matches. @xref{Custom agenda views}.
2935on the current buffer instead of the list of agenda files.
2936
2937@kindex C-c a C
2938Custom commands are configured in the variable
2939@code{org-agenda-custom-commands}. You can customize this variable,
2940for example by pressing @kbd{C-c a C}. You can also directly set it
2941with Emacs Lisp in @file{.emacs}. For example:
2942
2943@lisp
2944(setq org-agenda-custom-commands
2945 '(("w" todo "WAITING")
2946 ("u" tags "+BOSS-URGENT")
2947 ("U" tags-tree "+BOSS-URGENT")
2948 ("f" occur-tree "\\<FIXME\\>")))
2949@end lisp
2950
2951@noindent will define @kbd{C-c a w} as a global search for
2952TODO entries with @samp{WAITING} as the TODO keyword, @kbd{C-c a u} as a
2953global tags search for headlines marked @samp{:BOSS:} but not
2954@samp{:URGENT:}, @kbd{C-c a U} to do the same search but only in the
2955current buffer and display the result as a sparse tree, and @kbd{C-c a
2956f} to create a sparse tree with all entries containing the word
2957@samp{FIXME}. For more information, look at the documentation string
2958of the variable @code{org-agenda-custom-commands}.
2959 3282
2960@node Weekly/Daily agenda, Global TODO list, Agenda dispatcher, Agenda views 3283@node Weekly/Daily agenda, Global TODO list, Agenda dispatcher, Agenda views
2961@section The weekly/daily agenda 3284@section The weekly/daily agenda
2962@cindex agenda 3285@cindex agenda
3286@cindex weekly agenda
3287@cindex daily agenda
2963 3288
2964The purpose of the weekly/daily @emph{agenda} is to act like a page of 3289The purpose of the weekly/daily @emph{agenda} is to act like a page of a
2965a paper agenda, showing all the tasks for the current week or day. 3290paper agenda, showing all the tasks for the current week or day.
2966 3291
2967@table @kbd 3292@table @kbd
2968@cindex org-agenda, command 3293@cindex org-agenda, command
@@ -2981,78 +3306,11 @@ The commands available in the Agenda buffer are listed in @ref{Agenda
2981commands}. 3306commands}.
2982 3307
2983@menu 3308@menu
2984* Categories:: Not all tasks are equal
2985* Time-of-day specifications:: How the agenda knows the time
2986* Calendar/Diary integration:: Integrating Anniversaries and more 3309* Calendar/Diary integration:: Integrating Anniversaries and more
2987* Sorting of agenda items:: The order of things
2988@end menu 3310@end menu
2989 3311
2990@node Categories, Time-of-day specifications, Weekly/Daily agenda, Weekly/Daily agenda
2991@subsection Categories
2992
2993@cindex category
2994In the agenda buffer, each entry is preceded by a @emph{category},
2995which is derived from the file name. The category can also be set
2996with a special line anywhere in the buffer, looking like this:
2997
2998@example
2999#+CATEGORY: Thesis
3000@end example
3001
3002If there are several such lines in a file, each specifies the category
3003for the text below it (but the first category also applies to any text
3004before the first CATEGORY line). The display in the agenda buffer looks
3005best if the category is not longer than 10 characters.
3006
3007@node Time-of-day specifications, Calendar/Diary integration, Categories, Weekly/Daily agenda
3008@subsection Time-of-Day Specifications
3009
3010Org-mode checks each agenda item for a time-of-day specification. The
3011time can be part of the time stamp that triggered inclusion into the
3012agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time
3013ranges can be specified with two time stamps, like
3014@c
3015@w{@samp{<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>}}.
3016
3017In the headline of the entry itself, a time(range) may also appear as
3018plain text (like @samp{12:45} or a @samp{8:30-1pm}. If the agenda
3019integrates the Emacs diary (@pxref{Calendar/Diary integration}), time
3020specifications in diary entries are recognized as well.
3021
3022For agenda display, Org-mode extracts the time and displays it in a
3023standard 24 hour format as part of the prefix. The example times in
3024the previous paragraphs would end up in the agenda like this:
3025
3026@example
3027 8:30-13:00 Arthur Dent lies in front of the bulldozer
3028 12:45...... Ford Prefect arrives and takes Arthur to the pub
3029 19:00...... The Vogon reads his poem
3030 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
3031@end example
3032
3033If the agenda is in single-day mode, or for the display of today, the
3034timed entries are embedded in a time grid, like
3035 3312
3036@example 3313@node Calendar/Diary integration, , Weekly/Daily agenda, Weekly/Daily agenda
3037 8:00...... ------------------
3038 8:30-13:00 Arthur Dent lies in front of the bulldozer
3039 10:00...... ------------------
3040 12:00...... ------------------
3041 12:45...... Ford Prefect arrives and takes Arthur to the pub
3042 14:00...... ------------------
3043 16:00...... ------------------
3044 18:00...... ------------------
3045 19:00...... The Vogon reads his poem
3046 20:00...... ------------------
3047 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
3048@end example
3049
3050The time grid can be turned on and off with the variable
3051@code{org-agenda-use-time-grid}, and can be configured with
3052@code{org-agenda-time-grid}.
3053
3054
3055@node Calendar/Diary integration, Sorting of agenda items, Time-of-day specifications, Weekly/Daily agenda
3056@subsection Calendar/Diary integration 3314@subsection Calendar/Diary integration
3057@cindex calendar integration 3315@cindex calendar integration
3058@cindex diary integration 3316@cindex diary integration
@@ -3083,24 +3341,6 @@ Sunrise/Sunset times, show lunar phases and to convert to other
3083calendars, respectively. @kbd{c} can be used to switch back and forth 3341calendars, respectively. @kbd{c} can be used to switch back and forth
3084between calendar and agenda. 3342between calendar and agenda.
3085 3343
3086@node Sorting of agenda items, , Calendar/Diary integration, Weekly/Daily agenda
3087@subsection Sorting of agenda items
3088@cindex sorting, of agenda items
3089@cindex priorities, of agenda items
3090The entries for each day are sorted. The default order is to first
3091collect all items containing an explicit time-of-day specification.
3092These entries will be shown at the beginning of the list, as a
3093@emph{schedule} for the day. After that, items remain grouped in
3094categories, in the sequence given by @code{org-agenda-files}. Within
3095each category, items are sorted by priority (@pxref{Priorities}).
3096
3097The priority is a numerical quantity composed of the base priority
3098(2000 for priority @samp{A}, 1000 for @samp{B}, and 0 for @samp{C}),
3099plus additional increments for overdue scheduled or deadline items.
3100
3101Sorting can be customized using the variable
3102@code{org-agenda-sorting-strategy}.
3103
3104 3344
3105@node Global TODO list, Matching headline tags, Weekly/Daily agenda, Agenda views 3345@node Global TODO list, Matching headline tags, Weekly/Daily agenda, Agenda views
3106@section The global TODO list 3346@section The global TODO list
@@ -3119,6 +3359,7 @@ agenda files (@pxref{Agenda views}) into a single buffer. The buffer is in
3119the TODO entries directly from that buffer (@pxref{Agenda commands}). 3359the TODO entries directly from that buffer (@pxref{Agenda commands}).
3120@kindex C-c a T 3360@kindex C-c a T
3121@item C-c a T 3361@item C-c a T
3362@cindex TODO keyword matching
3122Like the above, but allows selection of a specific TODO keyword. You can 3363Like the above, but allows selection of a specific TODO keyword. You can
3123also do this by specifying a prefix argument to @kbd{C-c a t}. With a 3364also do this by specifying a prefix argument to @kbd{C-c a t}. With a
3124@kbd{C-u} prefix you are prompted for a keyword. With a numeric 3365@kbd{C-u} prefix you are prompted for a keyword. With a numeric
@@ -3127,14 +3368,17 @@ prefix, the Nth keyword in @code{org-todo-keywords} is selected.
3127The @kbd{r} key in the agenda buffer regenerates it, and you can give 3368The @kbd{r} key in the agenda buffer regenerates it, and you can give
3128a prefix argument to this command to change the selected TODO keyword, 3369a prefix argument to this command to change the selected TODO keyword,
3129for example @kbd{3 r}. If you often need a search for a specific 3370for example @kbd{3 r}. If you often need a search for a specific
3130keyword, define a custom command for it (@pxref{Agenda dispatcher}). 3371keyword, define a custom command for it (@pxref{Agenda dispatcher}).@*
3372Matching specific TODO keywords can also be done as part of a tags
3373search (@pxref{Tag searches}).
3131@end table 3374@end table
3132 3375
3133Remote editing of TODO items means that you can change the state of a 3376Remote editing of TODO items means that you can change the state of a
3134TODO entry with a single key press. The commands available in the 3377TODO entry with a single key press. The commands available in the
3135TODO list are described in @ref{Agenda commands}. 3378TODO list are described in @ref{Agenda commands}.
3136 3379
3137Nomally the global todo list simply shows all headlines with TODO 3380@cindex sublevels, inclusion into todo list
3381Normally the global todo list simply shows all headlines with TODO
3138keywords. This list can become very long. There are two ways to keep 3382keywords. This list can become very long. There are two ways to keep
3139it more compact: 3383it more compact:
3140@itemize @minus 3384@itemize @minus
@@ -3150,7 +3394,6 @@ and omit the sublevels from the global list. Configure the variable
3150@code{org-agenda-todo-list-sublevels} to get this behavior. 3394@code{org-agenda-todo-list-sublevels} to get this behavior.
3151@end itemize 3395@end itemize
3152 3396
3153
3154@node Matching headline tags, Timeline, Global TODO list, Agenda views 3397@node Matching headline tags, Timeline, Global TODO list, Agenda views
3155@section Matching headline tags 3398@section Matching headline tags
3156@cindex matching, of tags 3399@cindex matching, of tags
@@ -3172,29 +3415,25 @@ define a custom command for it (@pxref{Agenda dispatcher}).
3172@item C-c a M 3415@item C-c a M
3173Like @kbd{C-c a m}, but only select headlines that are also TODO items 3416Like @kbd{C-c a m}, but only select headlines that are also TODO items
3174and force checking subitems (see variable 3417and force checking subitems (see variable
3175@code{org-tags-match-list-sublevels}. 3418@code{org-tags-match-list-sublevels}). Matching specific todo keywords
3419together with a tags match is also possible, see @ref{Tag searches}.
3176@end table 3420@end table
3177 3421
3178The commands available in the tags list are described in @ref{Agenda 3422The commands available in the tags list are described in @ref{Agenda
3179commands}. 3423commands}.
3180 3424
3181@node Timeline, Agenda commands, Matching headline tags, Agenda views 3425@node Timeline, Presentation and sorting, Matching headline tags, Agenda views
3182@section Timeline for a single file 3426@section Timeline for a single file
3183@cindex single file summary
3184@cindex agenda, for single file
3185@cindex timeline, single file 3427@cindex timeline, single file
3186@cindex time-sorted view 3428@cindex time-sorted view
3187 3429
3188The timeline is not really an agenda view, because it only summarizes 3430The timeline summarizes all time-stamped items from a single Org-mode
3189items from a single Org-mode file. But it also uses the agenda buffer 3431file in a @emph{time-sorted view}. The main purpose of this command is
3190and provides similar commands, so we discuss it here. The timeline 3432to give an overview over events in a project.
3191shows all time-stamped items in a single Org-mode file (or the
3192selected part of it), in a @emph{time-sorted view}. The main purpose of
3193this command is to give an overview over events in a project.
3194 3433
3195@table @kbd 3434@table @kbd
3196@kindex C-c C-r 3435@kindex C-a a L
3197@item C-c C-r 3436@item C-c a L
3198Show a time-sorted view of the org file, with all time-stamped items. 3437Show a time-sorted view of the org file, with all time-stamped items.
3199When called with a @kbd{C-u} prefix, all unfinished TODO entries 3438When called with a @kbd{C-u} prefix, all unfinished TODO entries
3200(scheduled or not) are also listed under the current date. 3439(scheduled or not) are also listed under the current date.
@@ -3204,7 +3443,122 @@ When called with a @kbd{C-u} prefix, all unfinished TODO entries
3204The commands available in the timeline buffer are listed in 3443The commands available in the timeline buffer are listed in
3205@ref{Agenda commands}. 3444@ref{Agenda commands}.
3206 3445
3207@node Agenda commands, , Timeline, Agenda views 3446
3447@node Presentation and sorting, Agenda commands, Timeline, Agenda views
3448@section Presentation and sorting
3449@cindex presentation, of agenda items
3450
3451Before displaying items in an agenda view, Org-mode visually prepares
3452the items and sorts them. Each item occupies a single line. The line
3453starts with a @emph{prefix} that contains the @emph{category}
3454(@pxref{Categories}) of the item and other important information. You can
3455customize the prefix using the option @code{org-agenda-prefix-format}.
3456The prefix is followed by a cleaned-up version of the outline headline
3457associated with the item.
3458
3459@menu
3460* Categories:: Not all tasks are equal
3461* Time-of-day specifications:: How the agenda knows the time
3462* Sorting of agenda items:: The order of things
3463@end menu
3464
3465@node Categories, Time-of-day specifications, Presentation and sorting, Presentation and sorting
3466@subsection Categories
3467
3468@cindex category
3469The category is a broad label assigned to each agenda item. By default,
3470the category is simply derived from the file name, but you can also
3471specify it with a special line in the buffer, like this:
3472
3473@example
3474#+CATEGORY: Thesis
3475@end example
3476
3477If there are several such lines in a file, each specifies the category
3478for the text below it (but the first category also applies to any text
3479before the first CATEGORY line). The display in the agenda buffer looks
3480best if the category is not longer than 10 characters.
3481
3482@node Time-of-day specifications, Sorting of agenda items, Categories, Presentation and sorting
3483@subsection Time-of-Day Specifications
3484@cindex time-of-day specification
3485
3486Org-mode checks each agenda item for a time-of-day specification. The
3487time can be part of the time stamp that triggered inclusion into the
3488agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time
3489ranges can be specified with two time stamps, like
3490@c
3491@w{@samp{<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>}}.
3492
3493In the headline of the entry itself, a time(range) may also appear as
3494plain text (like @samp{12:45} or a @samp{8:30-1pm}. If the agenda
3495integrates the Emacs diary (@pxref{Calendar/Diary integration}), time
3496specifications in diary entries are recognized as well.
3497
3498For agenda display, Org-mode extracts the time and displays it in a
3499standard 24 hour format as part of the prefix. The example times in
3500the previous paragraphs would end up in the agenda like this:
3501
3502@example
3503 8:30-13:00 Arthur Dent lies in front of the bulldozer
3504 12:45...... Ford Prefect arrives and takes Arthur to the pub
3505 19:00...... The Vogon reads his poem
3506 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
3507@end example
3508
3509@cindex time grid
3510If the agenda is in single-day mode, or for the display of today, the
3511timed entries are embedded in a time grid, like
3512
3513@example
3514 8:00...... ------------------
3515 8:30-13:00 Arthur Dent lies in front of the bulldozer
3516 10:00...... ------------------
3517 12:00...... ------------------
3518 12:45...... Ford Prefect arrives and takes Arthur to the pub
3519 14:00...... ------------------
3520 16:00...... ------------------
3521 18:00...... ------------------
3522 19:00...... The Vogon reads his poem
3523 20:00...... ------------------
3524 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
3525@end example
3526
3527The time grid can be turned on and off with the variable
3528@code{org-agenda-use-time-grid}, and can be configured with
3529@code{org-agenda-time-grid}.
3530
3531@node Sorting of agenda items, , Time-of-day specifications, Presentation and sorting
3532@subsection Sorting of agenda items
3533@cindex sorting, of agenda items
3534@cindex priorities, of agenda items
3535Before being inserted into a view, the items are sorted. How this is
3536done depends on the type of view.
3537@itemize @bullet
3538@item
3539For the daily/weekly agenda, the items for each day are sorted. The
3540default order is to first collect all items containing an explicit
3541time-of-day specification. These entries will be shown at the beginning
3542of the list, as a @emph{schedule} for the day. After that, items remain
3543grouped in categories, in the sequence given by @code{org-agenda-files}.
3544Within each category, items are sorted by priority (@pxref{Priorities}),
3545which is composed of the base priority (2000 for priority @samp{A}, 1000
3546for @samp{B}, and 0 for @samp{C}), plus additional increments for
3547overdue scheduled or deadline items.
3548@item
3549For the TODO list, items remain in the order of categories, but within
3550each category, sorting takes place according to priority
3551(@pxref{Priorities}).
3552@item
3553For tags matches, items are not sorted at all, but just appear in the
3554sequence in which they are found in the agenda files.
3555@end itemize
3556
3557Sorting can be customized using the variable
3558@code{org-agenda-sorting-strategy}.
3559
3560
3561@node Agenda commands, Custom agenda views, Presentation and sorting, Agenda views
3208@section Commands in the agenda buffer 3562@section Commands in the agenda buffer
3209@cindex commands, in agenda buffer 3563@cindex commands, in agenda buffer
3210 3564
@@ -3220,6 +3574,7 @@ the other commands, the cursor needs to be in the desired line.
3220 3574
3221@table @kbd 3575@table @kbd
3222@tsubheading{Motion} 3576@tsubheading{Motion}
3577@cindex motion commands in agenda
3223@kindex n 3578@kindex n
3224@item n 3579@item n
3225Next line (same as @key{up}). 3580Next line (same as @key{up}).
@@ -3265,6 +3620,7 @@ logging was on (variable @code{org-log-done}) are shown in the agenda,
3265as are entries that have been clocked on that day. 3620as are entries that have been clocked on that day.
3266 3621
3267@tsubheading{Change display} 3622@tsubheading{Change display}
3623@cindex display changing, in agenda
3268@kindex o 3624@kindex o
3269@item o 3625@item o
3270Delete other windows. 3626Delete other windows.
@@ -3313,6 +3669,7 @@ Display the previous dates.
3313Goto today. 3669Goto today.
3314 3670
3315@tsubheading{Remote editing} 3671@tsubheading{Remote editing}
3672@cindex remote editing, from agenda
3316 3673
3317@item 0-9 3674@item 0-9
3318Digit argument. 3675Digit argument.
@@ -3399,6 +3756,7 @@ Stop the previously started clock.
3399Cancel the currently running clock. 3756Cancel the currently running clock.
3400 3757
3401@tsubheading{Calendar commands} 3758@tsubheading{Calendar commands}
3759@cindex calendar commands, from agenda
3402@kindex c 3760@kindex c
3403@item c 3761@item c
3404Open the Emacs calendar and move to the date at the agenda cursor. 3762Open the Emacs calendar and move to the date at the agenda cursor.
@@ -3452,6 +3810,207 @@ visit org files will not be removed.
3452 3810
3453@end table 3811@end table
3454 3812
3813
3814@node Custom agenda views, , Agenda commands, Agenda views
3815@section Custom agenda views
3816@cindex custom agenda views
3817@cindex agenda views, custom
3818
3819Custom agenda commands serve two purposes: to store and quickly access
3820frequently used TODO and tags searches, and to create special composite
3821agenda buffers. Custom agenda commands will be accessible through the
3822dispatcher (@pxref{Agenda dispatcher}), just like the default commands.
3823
3824@menu
3825* Storing searches:: Type once, use often
3826* Block agenda:: All the stuff you need in a single buffer
3827* Setting Options:: Changing the rules
3828* Batch processing:: Agenda views from the command line
3829@end menu
3830
3831@node Storing searches, Block agenda, Custom agenda views, Custom agenda views
3832@subsection Storing searches
3833
3834The first application of custom searches is the definition of keyboard
3835shortcuts for frequently used searches, either creating an agenda
3836buffer, or a sparse tree (the latter covering of course only the current
3837buffer).
3838@kindex C-c a C
3839Custom commands are configured in the variable
3840@code{org-agenda-custom-commands}. You can customize this variable, for
3841example by pressing @kbd{C-c a C}. You can also directly set it with
3842Emacs Lisp in @file{.emacs}. The following example contains all valid
3843search types:
3844
3845@lisp
3846@group
3847(setq org-agenda-custom-commands
3848 '(("w" todo "WAITING")
3849 ("W" todo-tree "WAITING")
3850 ("u" tags "+BOSS-URGENT")
3851 ("v" tags-todo "+BOSS-URGENT")
3852 ("U" tags-tree "+BOSS-URGENT")
3853 ("f" occur-tree "\\<FIXME\\>")))
3854@end group
3855@end lisp
3856
3857@noindent
3858The initial single-character string in each entry defines the character
3859you have to press after the dispatcher command @kbd{C-c a} in order to
3860access the command. The second parameter is the search type, followed
3861by the string or regular expression to be used for the matching. The
3862example above will therefore define:
3863
3864@table @kbd
3865@item C-c a w
3866as a global search for TODO entries with @samp{WAITING} as the TODO
3867keyword
3868@item C-c a W
3869as the same search, but only in the current buffer and displaying the
3870results as a sparse tree
3871@item C-c a u
3872as a global tags search for headlines marked @samp{:BOSS:} but not
3873@samp{:URGENT:}
3874@item C-c a v
3875as the same search as @kbd{C-c a u}, but limiting the search to
3876headlines that are also TODO items
3877@item C-c a U
3878as the same search as @kbd{C-c a u}, but only in the current buffer and
3879displaying the result as a sparse tree
3880@item C-c a f
3881to create a sparse tree (again: current buffer only) with all entries
3882containing the word @samp{FIXME}.
3883@end table
3884
3885@node Block agenda, Setting Options, Storing searches, Custom agenda views
3886@subsection Block agenda
3887@cindex block agenda
3888@cindex agenda, with block views
3889
3890Another possibility is the construction of agenda views that comprise
3891the results of @emph{several} commands, each of which creates a block in
3892the agenda buffer. The available commands include @code{agenda} for the
3893daily or weekly agenda (as created with @kbd{C-c a a}), @code{alltodo}
3894for the global todo list (as constructed with @kbd{C-c a t}), and the
3895matching commands discussed above: @code{todo}, @code{tags}, and
3896@code{tags-todo}. Here are two examples:
3897
3898@lisp
3899@group
3900(setq org-agenda-custom-commands
3901 '(("h" "Agenda and Home-related tasks"
3902 ((agenda)
3903 (tags-todo "HOME")
3904 (tags "GARDEN")))
3905 ("o" "Agenda and Office-related tasks"
3906 ((agenda)
3907 (tags-todo "WORK")
3908 (tags "OFFICE")))))
3909@end group
3910@end lisp
3911
3912@noindent
3913This will define @kbd{C-c a h} to create a multi-block view for stuff
3914you need to attend to at home. The resulting agenda buffer will contain
3915your agenda for the current week, all TODO items that carry the tag
3916@samp{HOME}, and also all lines tagged with @samp{GARDEN}. Finally the
3917command @kbd{C-c a o} provides a similar view for office tasks.
3918
3919
3920@node Setting Options, Batch processing, Block agenda, Custom agenda views
3921@subsection Setting Options for custom commands
3922@cindex options, for custom agenda views
3923
3924Org-mode contains a number of variables regulating agenda construction
3925and display. The global variables define the behavior for all agenda
3926commands, including the custom commands. However, if you want to change
3927some settings just for a single custom view, you can do so. Setting
3928options requires inserting a list of variable names and values at the
3929right spot in @code{org-agenda-custom-commands}. For example:
3930
3931@lisp
3932@group
3933(setq org-agenda-custom-commands
3934 '(("w" todo "WAITING"
3935 ((org-agenda-sorting-strategy '(priority-down))
3936 (org-agenda-prefix-format " Mixed: ")))
3937 ("U" tags-tree "+BOSS-URGENT"
3938 ((org-show-following-heading nil)
3939 (org-show-hierarchy-above nil)))))
3940@end group
3941@end lisp
3942
3943@noindent
3944Now the @kbd{C-c a w} command will sort the collected entries only by
3945priority, and the prefix format is modified to just say @samp{ Mixed:}
3946instead of giving the category of the entry. The sparse tags tree of
3947@kbd{C-c a U} will now turn out ultra-compact, because neither the
3948headline hierarchy above the match, nor the headline following the match
3949will be shown.
3950
3951For command sets creating a block agenda,
3952@code{org-agenda-custom-commands} has two separate spots for setting
3953options. You can add options that should be valid for just a single
3954command in the set, and options that should be valid for all commands in
3955the set. The former are just added to the command entry, the latter
3956must come after the list of command entries. Going back to the block
3957agenda example (@pxref{Block agenda}), let's change the sorting strategy
3958for the @kbd{C-c a h} commands to @code{priority-down}, but let's sort
3959the results for GARDEN tags query in the opposite order,
3960@code{priority-up}. This would look like this:
3961
3962@lisp
3963@group
3964(setq org-agenda-custom-commands
3965 '(("h" "Agenda and Home-related tasks"
3966 ((agenda)
3967 (tags-todo "HOME")
3968 (tags "GARDEN" ((org-agenda-sorting-strategy '(priority-up)))))
3969 ((org-agenda-sorting-strategy '(priority-down))))
3970 ("o" "Agenda and Office-related tasks"
3971 ((agenda)
3972 (tags-todo "WORK")
3973 (tags "OFFICE")))))
3974@end group
3975@end lisp
3976
3977As you see, the values and parenthesis setting is a little complex.
3978When in doubt, use the customize interface to set this variable - it
3979fully supports its structure. Just one caveat: When setting options in
3980this interface, the @emph{values} are just lisp expressions. So if the
3981value is a string, you need to add the double quotes around the value
3982yourself.
3983
3984@node Batch processing, , Setting Options, Custom agenda views
3985@subsection Creating agenda views in batch processing
3986@cindex agenda, batch production
3987
3988If you want to print or otherwise reprocess agenda views, it can be
3989useful to create an agenda from the command line. This is the purpose
3990of the function @code{org-batch-agenda}. It takes as a parameter one of
3991the strings that are the keys in @code{org-agenda-custom-commands}. For
3992example, to directly print the current TODO list, you could use
3993
3994@example
3995emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr
3996@end example
3997
3998@noindent
3999You may also modify parameters on the fly like this:
4000
4001@example
4002emacs -batch -l ~/.emacs \
4003 -eval '(org-batch-agenda "a" \
4004 org-agenda-ndays 300 \
4005 org-agenda-include-diary nil \
4006 org-agenda-files (quote ("~/org/project.org")))' \
4007 | lpr
4008@end example
4009
4010@noindent
4011which will produce a 300 day agenda, fully restricted to the Org file
4012@file{~/org/projects.org}, not even including the diary.
4013
3455@node Embedded LaTeX, Exporting, Agenda views, Top 4014@node Embedded LaTeX, Exporting, Agenda views, Top
3456@chapter Embedded LaTeX 4015@chapter Embedded LaTeX
3457@cindex @TeX{} interpretation 4016@cindex @TeX{} interpretation
@@ -3482,6 +4041,8 @@ to do with it.
3482 4041
3483@node Math symbols, Subscripts and Superscripts, Embedded LaTeX, Embedded LaTeX 4042@node Math symbols, Subscripts and Superscripts, Embedded LaTeX, Embedded LaTeX
3484@section Math symbols 4043@section Math symbols
4044@cindex math symbols
4045@cindex TeX macros
3485 4046
3486You can use La@TeX{} macros to insert special symbols like @samp{\alpha} 4047You can use La@TeX{} macros to insert special symbols like @samp{\alpha}
3487to indicate the Greek letter, or @samp{\to} to indicate an arrow. 4048to indicate the Greek letter, or @samp{\to} to indicate an arrow.
@@ -3500,6 +4061,8 @@ into the proper syntax for HTML, for the above examples this is
3500 4061
3501@node Subscripts and Superscripts, LaTeX fragments, Math symbols, Embedded LaTeX 4062@node Subscripts and Superscripts, LaTeX fragments, Math symbols, Embedded LaTeX
3502@section Subscripts and Superscripts 4063@section Subscripts and Superscripts
4064@cindex subscript
4065@cindex superscript
3503 4066
3504Just like in La@TeX{}, @samp{^} and @samp{_} are used to indicate super- 4067Just like in La@TeX{}, @samp{^} and @samp{_} are used to indicate super-
3505and subscripts. Again, these can be used without embedding them in 4068and subscripts. Again, these can be used without embedding them in
@@ -3520,9 +4083,14 @@ are surrounded with @code{<sub>} and @code{<sup>} tags, respectively.
3520 4083
3521@node LaTeX fragments, Processing LaTeX fragments, Subscripts and Superscripts, Embedded LaTeX 4084@node LaTeX fragments, Processing LaTeX fragments, Subscripts and Superscripts, Embedded LaTeX
3522@section LaTeX fragments 4085@section LaTeX fragments
4086@cindex LaTeX fragments
3523 4087
3524With symbols, sub- and superscripts, HTML is pretty much at its end when 4088With symbols, sub- and superscripts, HTML is pretty much at its end when
3525it comes to representing mathematical formulas. More complex 4089it comes to representing mathematical formulas@footnote{Yes, there is
4090MathML, but that is not yet fully supported by many browsers, and there
4091is no decent converter for turning LaTeX of ASCII representations of
4092formulas into MathML. So for the time being, converting formulas into
4093images seems the way to go.}. More complex
3526expressions need a dedicated formula processor. To this end, Org-mode 4094expressions need a dedicated formula processor. To this end, Org-mode
3527can contain arbitrary La@TeX{} fragments. It provides commands to 4095can contain arbitrary La@TeX{} fragments. It provides commands to
3528preview the typeset result of these fragments, and upon export to HTML, 4096preview the typeset result of these fragments, and upon export to HTML,
@@ -3566,6 +4134,7 @@ ones you do not wish to have interpreted by the La@TeX{} converter.
3566 4134
3567@node Processing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX 4135@node Processing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX
3568@section Processing LaTeX fragments 4136@section Processing LaTeX fragments
4137@cindex LaTeX fragments, preview
3569 4138
3570La@TeX{} fragments can be processed to produce a preview images of the 4139La@TeX{} fragments can be processed to produce a preview images of the
3571typeset expressions: 4140typeset expressions:
@@ -3594,6 +4163,7 @@ setting is active:
3594 4163
3595@node CDLaTeX mode, , Processing LaTeX fragments, Embedded LaTeX 4164@node CDLaTeX mode, , Processing LaTeX fragments, Embedded LaTeX
3596@section Using CDLaTeX to enter math 4165@section Using CDLaTeX to enter math
4166@cindex CDLaTeX
3597 4167
3598CDLaTeX-mode is a minor mode that is normally used in combination with a 4168CDLaTeX-mode is a minor mode that is normally used in combination with a
3599major LaTeX mode like AUCTeX in order to speed-up insertion of 4169major LaTeX mode like AUCTeX in order to speed-up insertion of
@@ -4035,7 +4605,7 @@ LaTeX: @r{turn on/off La@TeX{} fragments}
4035@cindex publishing 4605@cindex publishing
4036 4606
4037Org-mode includes@footnote{@file{org-publish.el} is not yet part of 4607Org-mode includes@footnote{@file{org-publish.el} is not yet part of
4038emacs, so if you are using @file{org.el} as it comes with Emacs, you 4608Emacs, so if you are using @file{org.el} as it comes with Emacs, you
4039need to download this file separately. Also make sure org.el is at 4609need to download this file separately. Also make sure org.el is at
4040least version 4.27.} a publishing management system 4610least version 4.27.} a publishing management system
4041that allows you to configure automatic HTML conversion of 4611that allows you to configure automatic HTML conversion of
@@ -4110,6 +4680,9 @@ and where to put published files.
4110@tab Directory containing publishing source files 4680@tab Directory containing publishing source files
4111@item @code{:publishing-directory} 4681@item @code{:publishing-directory}
4112@tab Directory (possibly remote) where output files will be published. 4682@tab Directory (possibly remote) where output files will be published.
4683@item @code{:preparation-function}
4684@tab Function called before starting publishing process, for example to
4685run @code{make} for updating files to be published.
4113@end multitable 4686@end multitable
4114@noindent 4687@noindent
4115 4688
@@ -4149,7 +4722,8 @@ specify the publishing function.
4149 4722
4150@multitable @columnfractions 0.3 0.7 4723@multitable @columnfractions 0.3 0.7
4151@item @code{:publishing-function} 4724@item @code{:publishing-function}
4152@tab Function executing the publication of a file. 4725@tab Function executing the publication of a file. This may also be a
4726list of functions, which will all be called in turn.
4153@end multitable 4727@end multitable
4154 4728
4155The function must accept two arguments: a property list containing at 4729The function must accept two arguments: a property list containing at
@@ -4354,7 +4928,7 @@ following functions:
4354@item C-c C-e c 4928@item C-c C-e c
4355Prompt for a specific project and publish all files that belong to it. 4929Prompt for a specific project and publish all files that belong to it.
4356@item C-c C-e p 4930@item C-c C-e p
4357Publish the project containin the current file. 4931Publish the project containing the current file.
4358@item C-c C-e f 4932@item C-c C-e f
4359Publish only the current file. 4933Publish only the current file.
4360@item C-c C-e a 4934@item C-c C-e a
@@ -4408,16 +4982,24 @@ At the beginning of a headline, complete TODO keywords.
4408@item 4982@item
4409After @samp{\}, complete @TeX{} symbols supported by the exporter. 4983After @samp{\}, complete @TeX{} symbols supported by the exporter.
4410@item 4984@item
4411After @samp{*}, complete CamelCase versions of all headlines in the 4985After @samp{*}, complete headlines in the current buffer so that they
4412buffer. 4986can be used in search links like @samp{[[*find this headline]]}.
4987@item
4988After @samp{:}, complete tags. The list of tags is taken from the
4989variable @code{org-tag-alist} (possibly set through the @samp{#+TAGS}
4990in-buffer option, @pxref{Setting tags}), or it is created dynamically
4991from all tags used in the current buffer.
4413@item 4992@item
4414After @samp{:}, complete tags used elsewhere in the buffer. 4993After @samp{[}, complete link abbreviations (@pxref{Link abbreviations}).
4415@item 4994@item
4416After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or 4995After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
4417@samp{OPTIONS} which set file-specific options for Org-mode. When the 4996@samp{OPTIONS} which set file-specific options for Org-mode. When the
4418option keyword is already complete, pressing @kbd{M-@key{TAB}} again 4997option keyword is already complete, pressing @kbd{M-@key{TAB}} again
4419will insert example settings for this keyword. 4998will insert example settings for this keyword.
4420@item 4999@item
5000In the line after @samp{#+STARTUP: }, complete startup keywords,
5001i.e. valid keys for this line.
5002@item
4421Elsewhere, complete dictionary words using ispell. 5003Elsewhere, complete dictionary words using ispell.
4422@end itemize 5004@end itemize
4423@end table 5005@end table
@@ -4487,6 +5069,12 @@ showstars @r{show all stars starting a headline}
4487odd @r{allow only odd outline levels (1,3,...)} 5069odd @r{allow only odd outline levels (1,3,...)}
4488oddeven @r{allow all outline levels} 5070oddeven @r{allow all outline levels}
4489@end example 5071@end example
5072To turn on custom format overlayes over time stamps (variables
5073@code{org-put-time-stamp-overlays} and
5074@code{org-time-stamp-overlay-formats}), use
5075@example
5076customtime @r{overlay custom time format}
5077@end example
4490@item #+SEQ_TODO: #+TYP_TODO: 5078@item #+SEQ_TODO: #+TYP_TODO:
4491These lines set the TODO keywords and their interpretation in the 5079These lines set the TODO keywords and their interpretation in the
4492current file. The corresponding variables are @code{org-todo-keywords} 5080current file. The corresponding variables are @code{org-todo-keywords}
@@ -4495,6 +5083,10 @@ and @code{org-todo-interpretation}.
4495These lines (several such lines are allowed) specify the legal tags in 5083These lines (several such lines are allowed) specify the legal tags in
4496this file, and (potentially) the corresponding @emph{fast tag selection} 5084this file, and (potentially) the corresponding @emph{fast tag selection}
4497keys. The corresponding variable is @code{org-tag-alist}. 5085keys. The corresponding variable is @code{org-tag-alist}.
5086@item #+LINK: linkword replace
5087These lines (several are allowed) specify link abbreviations.
5088@xref{Link abbreviations}. The corresponding variable is
5089@code{org-link-abbrev-alist}.
4498@item #+CATEGORY: 5090@item #+CATEGORY:
4499This line sets the category for the agenda file. The category applies 5091This line sets the category for the agenda file. The category applies
4500for all subsequent lines until the next @samp{#+CATEGORY} line, or the 5092for all subsequent lines until the next @samp{#+CATEGORY} line, or the
@@ -4509,6 +5101,7 @@ These lines provide settings for exporting files. For more details see
4509@node The very busy C-c C-c key, Clean view, In-buffer settings, Miscellaneous 5101@node The very busy C-c C-c key, Clean view, In-buffer settings, Miscellaneous
4510@section The very busy C-c C-c key 5102@section The very busy C-c C-c key
4511@kindex C-c C-c 5103@kindex C-c C-c
5104@cindex C-c C-c, overview
4512 5105
4513The key @kbd{C-c C-c} has many purposes in org-mode, which are all 5106The key @kbd{C-c C-c} has many purposes in org-mode, which are all
4514mentioned scattered throughout this manual. One specific function of 5107mentioned scattered throughout this manual. One specific function of
@@ -4535,9 +5128,9 @@ the entire table.
4535If the cursor is inside a table created by the @file{table.el} package, 5128If the cursor is inside a table created by the @file{table.el} package,
4536activate that table. 5129activate that table.
4537@item 5130@item
4538If the current buffer is a remember buffer, close note and file it. 5131If the current buffer is a remember buffer, close the note and file it.
4539with a prefix argument, file it without further interaction to the default 5132With a prefix argument, file it, without further interaction, to the
4540location. 5133default location.
4541@item 5134@item
4542If the cursor is on a @code{<<<target>>>}, update radio targets and 5135If the cursor is on a @code{<<<target>>>}, update radio targets and
4543corresponding links in this buffer. 5136corresponding links in this buffer.
@@ -4698,7 +5291,6 @@ with other code out there.
4698* Conflicts:: Packages that lead to conflicts 5291* Conflicts:: Packages that lead to conflicts
4699@end menu 5292@end menu
4700 5293
4701
4702@node Cooperation, Conflicts, Interaction, Interaction 5294@node Cooperation, Conflicts, Interaction, Interaction
4703@subsection Packages that Org-mode cooperates with 5295@subsection Packages that Org-mode cooperates with
4704 5296
@@ -4839,13 +5431,6 @@ functionality of Org-mode.
4839The following extensions for Org-mode have been written by other people: 5431The following extensions for Org-mode have been written by other people:
4840 5432
4841@table @asis 5433@table @asis
4842@cindex @file{org-mouse.el}
4843@item @file{org-mouse.el} by Piotr Zielinski
4844This package implements extended mouse functionality for Org-mode. It
4845allows you to cycle visibility and to edit the document structure with
4846the mouse. Best of all, it provides a context-sensitive menu on
4847@key{mouse-3} that changes depending on the context of a mouse-click.
4848@file{org-mouse.el} is freely available at @url{http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el}.
4849@cindex @file{org-publish.el} 5434@cindex @file{org-publish.el}
4850@item @file{org-publish.el} by David O'Toole 5435@item @file{org-publish.el} by David O'Toole
4851This package provides facilities for publishing related sets of Org-mode 5436This package provides facilities for publishing related sets of Org-mode
@@ -4856,6 +5441,17 @@ Org-mode distribution. It is not yet part of Emacs, however, a delay
4856caused by the preparations for the 22.1 release. In the mean time, 5441caused by the preparations for the 22.1 release. In the mean time,
4857@file{org-publish.el} can be downloaded from David's site: 5442@file{org-publish.el} can be downloaded from David's site:
4858@url{http://dto.freeshell.org/e/org-publish.el}. 5443@url{http://dto.freeshell.org/e/org-publish.el}.
5444@cindex @file{org-mouse.el}
5445@item @file{org-mouse.el} by Piotr Zielinski
5446This package implements extended mouse functionality for Org-mode. It
5447allows you to cycle visibility and to edit the document structure with
5448the mouse. Best of all, it provides a context-sensitive menu on
5449@key{mouse-3} that changes depending on the context of a mouse-click.
5450As of Org-mode version 4.53, @file{org-mouse.el} is part of the
5451Org-mode distribution. It is not yet part of Emacs, however, a delay
5452caused by the preparations for the 22.1 release. In the mean time,
5453@file{org-mouse.el} can be downloaded from Piotr's site:
5454@url{http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el}.
4859@cindex @file{org-blog.el} 5455@cindex @file{org-blog.el}
4860@item @file{org-blog.el} by David O'Toole 5456@item @file{org-blog.el} by David O'Toole
4861A blogging plug-in for @file{org-publish.el}.@* 5457A blogging plug-in for @file{org-publish.el}.@*
@@ -4917,7 +5513,7 @@ The corresponding block writer function could look like this:
4917(defun org-dblock-write:block-update-time (params) 5513(defun org-dblock-write:block-update-time (params)
4918 (let ((fmt (or (plist-get params :format) "%d. %m. %Y"))) 5514 (let ((fmt (or (plist-get params :format) "%d. %m. %Y")))
4919 (insert "Last block update at: " 5515 (insert "Last block update at: "
4920 (format-time-string fmt (current-time))))) 5516 (format-time-string fmt (current-time)))))
4921@end lisp 5517@end lisp
4922 5518
4923If you want to make sure that all dynamic blocks are always up-to-date, 5519If you want to make sure that all dynamic blocks are always up-to-date,
@@ -4925,25 +5521,24 @@ you could add the function @code{org-update-all-dblocks} to a hook, for
4925example @code{before-save-hook}. @code{org-update-all-dblocks} is 5521example @code{before-save-hook}. @code{org-update-all-dblocks} is
4926written in a way that is does nothing in buffers that are not in Org-mode. 5522written in a way that is does nothing in buffers that are not in Org-mode.
4927 5523
4928
4929@node History and Acknowledgments, Index, Extensions and Hacking, Top 5524@node History and Acknowledgments, Index, Extensions and Hacking, Top
4930@appendix History and Acknowledgments 5525@appendix History and Acknowledgments
4931@cindex acknowledgments 5526@cindex acknowledgments
4932@cindex history 5527@cindex history
4933@cindex thanks 5528@cindex thanks
4934 5529
4935The beginnings of Org-mode go back to 2003. It was borne out of 5530Org-mode was borne in 2003, out of frustration over the user interface
4936frustration over the user interface of the emacs outline-mode. All I 5531of the Emacs outline-mode. All I wanted was to make working with an
4937wanted was to make working with an outline tree possible without having 5532outline tree possible without having to remember more than 10 commands
4938to remember more than 10 commands just for hiding and unhiding parts of 5533just for hiding and unhiding parts of the outline tree, and to allow to
4939the outline tree, and to allow to restructure a tree easily. Visibility 5534restructure a tree easily. Visibility cycling and structure editing
4940cycling and structure editing were originally implemented in the package 5535were originally implemented in the package @file{outline-magic.el}, but
4941@file{outline-magic.el}, but quickly moved to the more general 5536quickly moved to the more general @file{org.el}. TODO entries, basic
4942@file{org.el}. TODO entries, basic time stamps, and table support were 5537time stamps, and table support were added next, and highlight the two
4943added next, and highlight the two main goals that Org-mode still has 5538main goals that Org-mode still has today: To create a new,
4944today: To create a new, outline-based, plain text mode with innovative 5539outline-based, plain text mode with innovative and intuitive editing
4945and intuitive editing features, and to incorporate project planning 5540features, and to incorporate project planning functionality directly
4946functionality directly into a notes file. 5541into a notes file.
4947 5542
4948Since the first release, hundreds of emails to me or on 5543Since the first release, hundreds of emails to me or on
4949@code{emacs-orgmode@@gnu.org} have provided a constant stream of bug 5544@code{emacs-orgmode@@gnu.org} have provided a constant stream of bug
@@ -4973,6 +5568,8 @@ calculations and improved XEmacs compatibility, in particular by porting
4973@item 5568@item
4974@i{Sacha Chua} suggested to copy some linking code from Planner. 5569@i{Sacha Chua} suggested to copy some linking code from Planner.
4975@item 5570@item
5571@i{Eddward DeVilla} proposed and tested checkbox statistics.
5572@item
4976@i{Kees Dullemond} inspired the use of narrowed tabled columns. 5573@i{Kees Dullemond} inspired the use of narrowed tabled columns.
4977@item 5574@item
4978@i{Christian Egli} converted the documentation into TeXInfo format, 5575@i{Christian Egli} converted the documentation into TeXInfo format,
@@ -4982,10 +5579,9 @@ patched CSS formatting into the HTML exporter, and inspired the agenda.
4982@item 5579@item
4983@i{Niels Giessen} had the idea to automatically archive DONE trees. 5580@i{Niels Giessen} had the idea to automatically archive DONE trees.
4984@item 5581@item
4985@i{Bastien Guerry} provoded extensive feedback. 5582@i{Bastien Guerry} provided extensive feedback.
4986@item 5583@item
4987@i{Kai Grossjohann} pointed out key-binding conflicts caused by 5584@i{Kai Grossjohann} pointed out key-binding conflicts with other packages.
4988Org-mode.
4989@item 5585@item
4990@i{Leon Liu} asked for embedded LaTeX and tested it. 5586@i{Leon Liu} asked for embedded LaTeX and tested it.
4991@item 5587@item
@@ -5002,7 +5598,8 @@ file links, and TAGS.
5002@i{Scott Otterson} sparked the introduction of descriptive text for 5598@i{Scott Otterson} sparked the introduction of descriptive text for
5003links, among other things. 5599links, among other things.
5004@item 5600@item
5005@i{Pete Phillips} helped the development of the TAGS feature. 5601@i{Pete Phillips} helped during the development of the TAGS feature, and
5602provided frequent feedback.
5006@item 5603@item
5007@i{T.V. Raman} reported bugs and suggested improvements. 5604@i{T.V. Raman} reported bugs and suggested improvements.
5008@item 5605@item
@@ -5014,6 +5611,8 @@ control.
5014@i{Frank Ruell} solved the mystery of the @code{keymapp nil} bug, a 5611@i{Frank Ruell} solved the mystery of the @code{keymapp nil} bug, a
5015conflict with @file{allout.el}. 5612conflict with @file{allout.el}.
5016@item 5613@item
5614@i{Jason Riedy} sent a patch to fix a bug with export of TODO keywerds.
5615@item
5017@i{Philip Rooke} created the Org-mode reference card and provided lots 5616@i{Philip Rooke} created the Org-mode reference card and provided lots
5018of feedback. 5617of feedback.
5019@item 5618@item
@@ -5026,6 +5625,8 @@ Linking to VM/BBDB/GNUS was inspired by @i{Tom Shannon}'s
5026@i{Daniel Sinder} came up with the idea of internal archiving by locking 5625@i{Daniel Sinder} came up with the idea of internal archiving by locking
5027subtrees. 5626subtrees.
5028@item 5627@item
5628@i{Dale Smith} proposed link abbreviations.
5629@item
5029@i{David O'Toole} wrote @file{org-publish.el} and drafted the manual 5630@i{David O'Toole} wrote @file{org-publish.el} and drafted the manual
5030chapter about publishing. 5631chapter about publishing.
5031@item 5632@item
@@ -5051,8 +5652,8 @@ linking to GNUS.
5051@i{Roland Winkler} requested additional keybindings to make Org-mode 5652@i{Roland Winkler} requested additional keybindings to make Org-mode
5052work on a tty. 5653work on a tty.
5053@item 5654@item
5054@i{Piotr Zielinski} wrote @file{org-mouse.el} and showed how to follow 5655@i{Piotr Zielinski} wrote @file{org-mouse.el}, proposed angenda blocks
5055links with mouse-1. 5656and contributed various ideas and code snippets.
5056@end itemize 5657@end itemize
5057 5658
5058 5659
@@ -5062,7 +5663,7 @@ links with mouse-1.
5062@printindex cp 5663@printindex cp
5063 5664
5064@node Key Index, , Index, Top 5665@node Key Index, , Index, Top
5065@chapter Key Index 5666@unnumbered Key Index
5066 5667
5067@printindex ky 5668@printindex ky
5068 5669