aboutsummaryrefslogtreecommitdiffstats
path: root/doc/misc
diff options
context:
space:
mode:
authorCarsten Dominik2008-03-13 08:50:59 +0000
committerCarsten Dominik2008-03-13 08:50:59 +0000
commit28a16a1bf0f8a302d13c30bfe49f785068edde95 (patch)
tree9b8d604bb2781ccd0472d2023d930c85bad6296d /doc/misc
parent5e97c6261a32edf4052b9194d96b06deacf724b4 (diff)
downloademacs-28a16a1bf0f8a302d13c30bfe49f785068edde95.tar.gz
emacs-28a16a1bf0f8a302d13c30bfe49f785068edde95.zip
* org.texi (Exporting Agenda Views): Document agenda export to
iCalendar. (Progress logging): Document the new progress logging stuff.
Diffstat (limited to 'doc/misc')
-rw-r--r--doc/misc/org.texi633
1 files changed, 423 insertions, 210 deletions
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 090749933a6..9c36b39208d 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -3,8 +3,8 @@
3@setfilename ../../info/org 3@setfilename ../../info/org
4@settitle Org Mode Manual 4@settitle Org Mode Manual
5 5
6@set VERSION 5.19 6@set VERSION 5.23
7@set DATE January 2008 7@set DATE March 2008
8 8
9@dircategory Emacs 9@dircategory Emacs
10@direntry 10@direntry
@@ -90,8 +90,8 @@ Software Foundation raise funds for GNU development.''
90* Publishing:: Create a web site of linked Org-mode files 90* Publishing:: Create a web site of linked Org-mode files
91* Miscellaneous:: All the rest which did not fit elsewhere 91* Miscellaneous:: All the rest which did not fit elsewhere
92* Extensions and Hacking:: It is possible to write add-on code 92* Extensions and Hacking:: It is possible to write add-on code
93* History and Acknowledgments:: How Org-mode came into being 93* History and Acknowledgments:: How Org-mode came into being
94* Main Index:: 94* Main Index::
95* Key Index:: Key bindings and where they are described 95* Key Index:: Key bindings and where they are described
96 96
97@detailmenu 97@detailmenu
@@ -126,7 +126,7 @@ Archiving
126Tables 126Tables
127 127
128* Built-in table editor:: Simple tables 128* Built-in table editor:: Simple tables
129* Narrow columns:: Stop wasting space in tables 129* Narrow columns:: Stop wasting space in tables
130* Column groups:: Grouping to trigger vertical lines 130* Column groups:: Grouping to trigger vertical lines
131* orgtbl-mode:: The table editor as minor mode 131* orgtbl-mode:: The table editor as minor mode
132* The spreadsheet:: The table editor has spreadsheet capabilities. 132* The spreadsheet:: The table editor has spreadsheet capabilities.
@@ -211,7 +211,7 @@ Dates and Times
211* Time stamps:: Assigning a time to a tree entry 211* Time stamps:: Assigning a time to a tree entry
212* Creating timestamps:: Commands which insert timestamps 212* Creating timestamps:: Commands which insert timestamps
213* Deadlines and scheduling:: Planning your work 213* Deadlines and scheduling:: Planning your work
214* Clocking work time:: 214* Clocking work time::
215 215
216Creating timestamps 216Creating timestamps
217 217
@@ -245,6 +245,7 @@ The built-in agenda views
245* Global TODO list:: All unfinished action items 245* Global TODO list:: All unfinished action items
246* Matching tags and properties:: Structured information with fine-tuned search 246* Matching tags and properties:: Structured information with fine-tuned search
247* Timeline:: Time-sorted view for single file 247* Timeline:: Time-sorted view for single file
248* Keyword search:: Finding entries by keyword
248* Stuck projects:: Find projects you need to review 249* Stuck projects:: Find projects you need to review
249 250
250Presentation and sorting 251Presentation and sorting
@@ -259,7 +260,7 @@ Custom agenda views
259* Block agenda:: All the stuff you need in a single buffer 260* Block agenda:: All the stuff you need in a single buffer
260* Setting Options:: Changing the rules 261* Setting Options:: Changing the rules
261* Exporting Agenda Views:: Writing agendas to files. 262* Exporting Agenda Views:: Writing agendas to files.
262* Extracting Agenda Information for other programs:: 263* Extracting Agenda Information for other programs::
263 264
264Embedded LaTeX 265Embedded LaTeX
265 266
@@ -290,14 +291,14 @@ LaTeX export
290 291
291* LaTeX export commands:: How to invoke LaTeX export 292* LaTeX export commands:: How to invoke LaTeX export
292* Quoting LaTeX code:: Incorporating literal LaTeX code 293* Quoting LaTeX code:: Incorporating literal LaTeX code
293* Sectioning structure:: 294* Sectioning structure::
294 295
295Text interpretation by the exporter 296Text interpretation by the exporter
296 297
297* Comment lines:: Some lines will not be exported 298* Comment lines:: Some lines will not be exported
298* Initial text:: Text before the first headline 299* Initial text:: Text before the first headline
299* Footnotes:: Numbers like [1] 300* Footnotes:: Numbers like [1]
300* Quoted examples:: Inserting quoted chnuks of text 301* Quoted examples:: Inserting quoted chnuks of text
301* Enhancing text:: Subscripts, symbols and more 302* Enhancing text:: Subscripts, symbols and more
302* Export options:: How to influence the export settings 303* Export options:: How to influence the export settings
303 304
@@ -833,12 +834,14 @@ plain list item, a new item is created (@pxref{Plain lists}). To force
833creation of a new headline, use a prefix arg, or first press @key{RET} 834creation of a new headline, use a prefix arg, or first press @key{RET}
834to get to the beginning of the next line. When this command is used in 835to get to the beginning of the next line. When this command is used in
835the middle of a line, the line is split and the rest of the line becomes 836the middle of a line, the line is split and the rest of the line becomes
836the new headline. If the command is used at the beginning of a 837the new headline@footnote{If you do not want the line to be split,
837headline, the new headline is created before the current line. If at 838customize the variable @code{org-M-RET-may-split-line}.}. If the
838the beginning of any other line, the content of that line is made the 839command is used at the beginning of a headline, the new headline is
839new heading. If the command is used at the end of a folded subtree 840created before the current line. If at the beginning of any other line,
840(i.e. behind the ellipses at the end of a headline), then a headline 841the content of that line is made the new heading. If the command is
841like the current one will be inserted after the end of the subtree. 842used at the end of a folded subtree (i.e. behind the ellipses at the end
843of a headline), then a headline like the current one will be inserted
844after the end of the subtree.
842@kindex C-@key{RET} 845@kindex C-@key{RET}
843@item C-@key{RET} 846@item C-@key{RET}
844Insert a new heading after the current subtree, same level as the 847Insert a new heading after the current subtree, same level as the
@@ -893,6 +896,13 @@ in each entry), by priority, and each of these in reverse order. You
893can also supply your own function to extract the sorting key. With a 896can also supply your own function to extract the sorting key. With a
894@kbd{C-u} prefix, sorting will be case-sensitive. With two @kbd{C-u 897@kbd{C-u} prefix, sorting will be case-sensitive. With two @kbd{C-u
895C-u} prefixes, duplicate entries will also be removed. 898C-u} prefixes, duplicate entries will also be removed.
899@kindex C-c *
900@item C-c *
901Turn a normal line or plain list item into a headline (so that it
902becomes a subheading at its location). Also turn a headline into a
903normal line by removing the stars. If there is an active region, turn
904all lines in the region into headlines. Or, if the first line is a
905headline, remove the stars from all headlines in the region.
896@end table 906@end table
897 907
898@cindex region, active 908@cindex region, active
@@ -1015,6 +1025,12 @@ If you would like to have a special ARCHIVE location for a single entry
1015or a (sub)tree, give the entry an @code{:ARCHIVE:} property with the 1025or a (sub)tree, give the entry an @code{:ARCHIVE:} property with the
1016location as the value (@pxref{Properties and columns}). 1026location as the value (@pxref{Properties and columns}).
1017 1027
1028When a subtree is moved, it receives a number of special properties that
1029record context information like the file from where the entry came, it's
1030outline path the archiving time etc. Configure the variable
1031@code{org-archive-save-context-info} to adjust the amount of information
1032added.
1033
1018@node Sparse trees, Plain lists, Archiving, Document structure 1034@node Sparse trees, Plain lists, Archiving, Document structure
1019@section Sparse trees 1035@section Sparse trees
1020@cindex sparse trees 1036@cindex sparse trees
@@ -1129,7 +1145,7 @@ Org-mode supports these lists by tuning filling and wrapping commands to
1129deal with them correctly@footnote{Org-mode only changes the filling 1145deal with them correctly@footnote{Org-mode only changes the filling
1130settings for Emacs. For XEmacs, you should use Kyle E. Jones' 1146settings for Emacs. For XEmacs, you should use Kyle E. Jones'
1131@file{filladapt.el}. To turn this on, put into @file{.emacs}: 1147@file{filladapt.el}. To turn this on, put into @file{.emacs}:
1132@code{(require 'filladapt)}}. 1148@code{(require 'filladapt)}}.
1133 1149
1134The following commands act on items when the cursor is in the first line 1150The following commands act on items when the cursor is in the first line
1135of an item (the line with the bullet or number). 1151of an item (the line with the bullet or number).
@@ -1150,11 +1166,12 @@ fixes the indentation of the curent line in a heuristic way.
1150Insert new item at current level. With prefix arg, force a new heading 1166Insert new item at current level. With prefix arg, force a new heading
1151(@pxref{Structure editing}). If this command is used in the middle of a 1167(@pxref{Structure editing}). If this command is used in the middle of a
1152line, the line is @emph{split} and the rest of the line becomes the new 1168line, the line is @emph{split} and the rest of the line becomes the new
1153item. If this command is executed in the @emph{whitespace before a bullet or 1169item@footnote{If you do not want the line to be split, customize the
1154number}, the new item is created @emph{before} the current item. If the 1170variable @code{org-M-RET-may-split-line}.}. If this command is executed
1155command is executed in the white space before the text that is part of 1171in the @emph{whitespace before a bullet or number}, the new item is
1156an item but does not contain the bullet, a bullet is added to the 1172created @emph{before} the current item. If the command is executed in
1157current line. 1173the white space before the text that is part of an item but does not
1174contain the bullet, a bullet is added to the current line.
1158@kindex M-S-@key{RET} 1175@kindex M-S-@key{RET}
1159@item M-S-@key{RET} 1176@item M-S-@key{RET}
1160Insert a new item with a checkbox (@pxref{Checkboxes}). 1177Insert a new item with a checkbox (@pxref{Checkboxes}).
@@ -1191,6 +1208,10 @@ an ordered list, make sure the numbering is ok.
1191Cycle the entire list level through the different itemize/enumerate 1208Cycle the entire list level through the different itemize/enumerate
1192bullets (@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}). 1209bullets (@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}).
1193With prefix arg, select the nth bullet from this list. 1210With prefix arg, select the nth bullet from this list.
1211If there is an active region when calling this, all lines will be
1212converted to list items. If the first line already was a list item, any
1213item markers will be removed from the list. Finally, even without an
1214active region, a normal line will be converted into a list item.
1194@end table 1215@end table
1195 1216
1196@node Drawers, orgstruct-mode, Plain lists, Document structure 1217@node Drawers, orgstruct-mode, Plain lists, Document structure
@@ -1250,9 +1271,9 @@ silently in the shadow.
1250 1271
1251Org-mode comes with a fast and intuitive table editor. Spreadsheet-like 1272Org-mode comes with a fast and intuitive table editor. Spreadsheet-like
1252calculations are supported in connection with the Emacs @file{calc} 1273calculations are supported in connection with the Emacs @file{calc}
1253package 1274package
1254@ifinfo 1275@ifinfo
1255(@pxref{Calc,,,calc,Gnu Emacs Calculator Manual}). 1276(@pxref{Top,Calc,,calc,Gnu Emacs Calculator Manual}).
1256@end ifinfo 1277@end ifinfo
1257@ifnotinfo 1278@ifnotinfo
1258(see the Emacs Calculator manual for more information about the Emacs 1279(see the Emacs Calculator manual for more information about the Emacs
@@ -1261,7 +1282,7 @@ calculator).
1261 1282
1262@menu 1283@menu
1263* Built-in table editor:: Simple tables 1284* Built-in table editor:: Simple tables
1264* Narrow columns:: Stop wasting space in tables 1285* Narrow columns:: Stop wasting space in tables
1265* Column groups:: Grouping to trigger vertical lines 1286* Column groups:: Grouping to trigger vertical lines
1266* orgtbl-mode:: The table editor as minor mode 1287* orgtbl-mode:: The table editor as minor mode
1267* The spreadsheet:: The table editor has spreadsheet capabilities. 1288* The spreadsheet:: The table editor has spreadsheet capabilities.
@@ -1320,7 +1341,7 @@ If not, lines are split at whitespace into fields. You can use a prefix
1320argument to force a specific separator: @kbd{C-u} forces CSV, @kbd{C-u 1341argument to force a specific separator: @kbd{C-u} forces CSV, @kbd{C-u
1321C-u} forces TAB, and a numeric argument N indicates that at least N 1342C-u} forces TAB, and a numeric argument N indicates that at least N
1322consequtive spaces, or alternatively a TAB will be the separator. 1343consequtive spaces, or alternatively a TAB will be the separator.
1323@* 1344@*
1324If there is no active region, this command creates an empty Org-mode 1345If there is no active region, this command creates an empty Org-mode
1325table. But it's easier just to start typing, like 1346table. But it's easier just to start typing, like
1326@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}. 1347@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}.
@@ -1412,7 +1433,9 @@ the table is enlarged as needed. The process ignores horizontal separator
1412lines. 1433lines.
1413@c 1434@c
1414@kindex C-c C-q 1435@kindex C-c C-q
1436@kindex M-@key{RET}
1415@item C-c C-q 1437@item C-c C-q
1438@itemx M-@kbd{RET}
1416Wrap several fields in a column like a paragraph. If there is an active 1439Wrap several fields in a column like a paragraph. If there is an active
1417region, and both point and mark are in the same column, the text in the 1440region, and both point and mark are in the same column, the text in the
1418column is wrapped to minimum width for the given number of lines. A 1441column is wrapped to minimum width for the given number of lines. A
@@ -1655,7 +1678,7 @@ the value directly at the hline is used.
1655 1678
1656@samp{0} refers to the current row and column. Also, if you omit 1679@samp{0} refers to the current row and column. Also, if you omit
1657either the column or the row part of the reference, the current 1680either the column or the row part of the reference, the current
1658row/column is implied. 1681row/column is implied.
1659 1682
1660Org-mode's references with @emph{unsigned} numbers are fixed references 1683Org-mode's references with @emph{unsigned} numbers are fixed references
1661in the sense that if you use the same reference in the formula for two 1684in the sense that if you use the same reference in the formula for two
@@ -2126,8 +2149,8 @@ Do not export this line. Useful for lines that contain the narrowing
2126 2149
2127Finally, just to whet your appetite on what can be done with the 2150Finally, just to whet your appetite on what can be done with the
2128fantastic @file{calc} package, here is a table that computes the Taylor 2151fantastic @file{calc} package, here is a table that computes the Taylor
2129series of degree @code{n} at location @code{x} for a couple of functions 2152series of degree @code{n} at location @code{x} for a couple of
2130(homework: try that with Excel :-) 2153functions.
2131 2154
2132@example 2155@example
2133@group 2156@group
@@ -2172,7 +2195,7 @@ Org-mode will recognize plain URL-like links and activate them as
2172clickable links. The general link format, however, looks like this: 2195clickable links. The general link format, however, looks like this:
2173 2196
2174@example 2197@example
2175[[link][description]] @r{or alternatively} [[link]] 2198[[link][description]] @r{or alternatively} [[link]]
2176@end example 2199@end example
2177 2200
2178Once a link in the buffer is complete (all brackets present), Org-mode 2201Once a link in the buffer is complete (all brackets present), Org-mode
@@ -2268,6 +2291,7 @@ cursor on or at a target.
2268@cindex links, external 2291@cindex links, external
2269@cindex GNUS links 2292@cindex GNUS links
2270@cindex BBDB links 2293@cindex BBDB links
2294@cindex IRC links
2271@cindex URL links 2295@cindex URL links
2272@cindex file links 2296@cindex file links
2273@cindex VM links 2297@cindex VM links
@@ -2280,20 +2304,20 @@ cursor on or at a target.
2280@cindex elisp links 2304@cindex elisp links
2281 2305
2282Org-mode supports links to files, websites, Usenet and email messages, 2306Org-mode supports links to files, websites, Usenet and email messages,
2283and BBDB database entries. External links are URL-like locators. They 2307BBDB database entries and links to both IRC conversations and their
2284start with a short identifying string followed by a colon. There can be 2308logs. External links are URL-like locators. They start with a short
2285no space after the colon. The following list shows examples for each 2309identifying string followed by a colon. There can be no space after
2286link type. 2310the colon. The following list shows examples for each link type.
2287 2311
2288@example 2312@example
2289http://www.astro.uva.nl/~dominik @r{on the web} 2313http://www.astro.uva.nl/~dominik @r{on the web}
2290file:/home/dominik/images/jupiter.jpg @r{file, absolute path} 2314file:/home/dominik/images/jupiter.jpg @r{file, absolute path}
2291file:papers/last.pdf @r{file, relative path} 2315file:papers/last.pdf @r{file, relative path}
2292news:comp.emacs @r{Usenet link} 2316news:comp.emacs @r{Usenet link}
2293mailto:adent@@galaxy.net @r{Mail link} 2317mailto:adent@@galaxy.net @r{Mail link}
2294vm:folder @r{VM folder link} 2318vm:folder @r{VM folder link}
2295vm:folder#id @r{VM message link} 2319vm:folder#id @r{VM message link}
2296vm://myself@@some.where.org/folder#id @r{VM on remote machine} 2320vm://myself@@some.where.org/folder#id @r{VM on remote machine}
2297wl:folder @r{WANDERLUST folder link} 2321wl:folder @r{WANDERLUST folder link}
2298wl:folder#id @r{WANDERLUST message link} 2322wl:folder#id @r{WANDERLUST message link}
2299mhe:folder @r{MH-E folder link} 2323mhe:folder @r{MH-E folder link}
@@ -2303,6 +2327,7 @@ rmail:folder#id @r{RMAIL message link}
2303gnus:group @r{GNUS group link} 2327gnus:group @r{GNUS group link}
2304gnus:group#id @r{GNUS article link} 2328gnus:group#id @r{GNUS article link}
2305bbdb:Richard Stallman @r{BBDB link} 2329bbdb:Richard Stallman @r{BBDB link}
2330irc:/irc.com/#emacs/bob @r{IRC link}
2306shell:ls *.org @r{A shell command} 2331shell:ls *.org @r{A shell command}
2307elisp:(find-file-other-frame "Elisp.org") @r{An elisp form to evaluate} 2332elisp:(find-file-other-frame "Elisp.org") @r{An elisp form to evaluate}
2308@end example 2333@end example
@@ -2343,18 +2368,23 @@ insert it into an org-mode file, and to follow the link.
2343Store a link to the current location. This is a @emph{global} command 2368Store a link to the current location. This is a @emph{global} command
2344which can be used in any buffer to create a link. The link will be 2369which can be used in any buffer to create a link. The link will be
2345stored for later insertion into an Org-mode buffer (see below). For 2370stored for later insertion into an Org-mode buffer (see below). For
2346Org-mode files, if there is a @samp{<<target>>} at the cursor, the link 2371Org-mode files, if there is a @samp{<<target>>} at the cursor, the
2347points to the target. Otherwise it points to the current headline. For 2372link points to the target. Otherwise it points to the current
2348VM, RMAIL, WANDERLUST, MH-E, GNUS and BBDB buffers, the link will 2373headline. For VM, RMAIL, WANDERLUST, MH-E, GNUS and BBDB buffers, the
2349indicate the current article/entry. For W3 and W3M buffers, the link 2374link will indicate the current article/entry. For W3 and W3M buffers,
2350goes to the current URL. For any other files, the link will point to 2375the link goes to the current URL. For IRC links, if you set the
2351the file, with a search string (@pxref{Search options}) pointing to the 2376variable @code{org-irc-link-to-logs} to non-nil then @kbd{C-c l} will
2352contents of the current line. If there is an active region, the 2377store a @samp{file:/} style link to the relevant point in the logs for
2353selected words will form the basis of the search string. If the 2378the current conversation. Otherwise an @samp{irc:/} style link to the
2354automatically created link is not working correctly or accurately 2379user/channel/server under the point will be stored. For any other
2355enough, you can write custom functions to select the search string and 2380files, the link will point to the file, with a search string
2356to do the search for particular file types - see @ref{Custom searches}. 2381(@pxref{Search options}) pointing to the contents of the current line.
2357The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation}. 2382If there is an active region, the selected words will form the basis
2383of the search string. If the automatically created link is not
2384working correctly or accurately enough, you can write custom functions
2385to select the search string and to do the search for particular file
2386types - see @ref{Custom searches}. The key binding @kbd{C-c l} is
2387only a suggestion - see @ref{Installation}.
2358@c 2388@c
2359@kindex C-c C-l 2389@kindex C-c C-l
2360@cindex link completion 2390@cindex link completion
@@ -2538,7 +2568,7 @@ compatibility, line numbers can also follow a single colon.} colon. For
2538example, when the command @kbd{C-c l} creates a link (@pxref{Handling 2568example, when the command @kbd{C-c l} creates a link (@pxref{Handling
2539links}) to a file, it encodes the words in the current line as a search 2569links}) to a file, it encodes the words in the current line as a search
2540string that can be used to find this line back later when following the 2570string that can be used to find this line back later when following the
2541link with @kbd{C-c C-o}. 2571link with @kbd{C-c C-o}.
2542 2572
2543Here is the syntax of the different ways to attach a search to a file 2573Here is the syntax of the different ways to attach a search to a file
2544link, together with an explanation: 2574link, together with an explanation:
@@ -2654,7 +2684,9 @@ agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}).
2654@kindex C-u C-c C-t 2684@kindex C-u C-c C-t
2655@item C-u C-c C-t 2685@item C-u C-c C-t
2656Select a specific keyword using completion or (if it has been set up) 2686Select a specific keyword using completion or (if it has been set up)
2657the fast selection interface. 2687the fast selection interface. For the latter, you need to assign keys
2688to TODO states, see @ref{Per-file keywords} and @ref{Setting tags} for
2689more information.
2658 2690
2659@kindex S-@key{right} 2691@kindex S-@key{right}
2660@kindex S-@key{left} 2692@kindex S-@key{left}
@@ -2663,15 +2695,6 @@ the fast selection interface.
2663Select the following/preceding TODO state, similar to cycling. Useful 2695Select the following/preceding TODO state, similar to cycling. Useful
2664mostly if more than two TODO states are possible (@pxref{TODO 2696mostly if more than two TODO states are possible (@pxref{TODO
2665extensions}). 2697extensions}).
2666@kindex C-c C-c
2667@item C-c C-c
2668Use the fast tag interface to directly select a specific TODO state.
2669For this you need to assign keys to TODO states, like this:
2670@example
2671#+SEQ_TODO: TODO(t) STARTED(s) WAITING(w) | DONE(d)
2672@end example
2673@noindent See @ref{Per-file keywords} and @ref{Setting tags} for more
2674information.
2675@kindex C-c C-v 2698@kindex C-c C-v
2676@kindex C-c / t 2699@kindex C-c / t
2677@cindex sparse tree, for TODO 2700@cindex sparse tree, for TODO
@@ -2742,10 +2765,12 @@ With this setup, the command @kbd{C-c C-t} will cycle an entry from TODO
2742to FEEDBACK, then to VERIFY, and finally to DONE and DELEGATED. You may 2765to FEEDBACK, then to VERIFY, and finally to DONE and DELEGATED. You may
2743also use a prefix argument to quickly select a specific state. For 2766also use a prefix argument to quickly select a specific state. For
2744example @kbd{C-3 C-c C-t} will change the state immediately to VERIFY. 2767example @kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
2745If you define many keywords, you can use in-buffer completion (see 2768Or you can use @kbd{S-left} to go backward through the sequence. If you
2746@ref{Completion}) to insert these words into the buffer. Changing a 2769define many keywords, you can use in-buffer completion
2747todo state can be logged with a timestamp, see @ref{Tracking TODO state 2770(@pxref{Completion}) or even a special one-key selection scheme
2748changes} for more information. 2771(@pxref{Fast access to TODO states}) to insert these words into the
2772buffer. Changing a todo state can be logged with a timestamp, see
2773@ref{Tracking TODO state changes} for more information.
2749 2774
2750@node TODO types, Multiple sets in one file, Workflow states, TODO extensions 2775@node TODO types, Multiple sets in one file, Workflow states, TODO extensions
2751@subsection TODO keywords as types 2776@subsection TODO keywords as types
@@ -2845,7 +2870,8 @@ TODO states a lot, you might want to set the variable
2845@code{org-use-fast-todo-selection} to @code{t} and make this behavior 2870@code{org-use-fast-todo-selection} to @code{t} and make this behavior
2846the default. Check also the variable 2871the default. Check also the variable
2847@code{org-fast-tag-selection-include-todo}, it allows to change the TODO 2872@code{org-fast-tag-selection-include-todo}, it allows to change the TODO
2848state through the tags interface (@pxref{Setting tags}). 2873state through the tags interface (@pxref{Setting tags}), in case you
2874like to mingle the two concepts.
2849 2875
2850@node Per-file keywords, Faces for TODO keywords, Fast access to TODO states, TODO extensions 2876@node Per-file keywords, Faces for TODO keywords, Fast access to TODO states, TODO extensions
2851@subsection Setting up keywords for individual files 2877@subsection Setting up keywords for individual files
@@ -2908,15 +2934,22 @@ special faces for some of them. This can be done using the variable
2908 ("CANCELED" . (:foreground "blue" :weight bold)))) 2934 ("CANCELED" . (:foreground "blue" :weight bold))))
2909@end lisp 2935@end lisp
2910 2936
2937While using a list with face properties as shown for CANCELED
2938@emph{should} work, this does not aways seem to be the case. If
2939necessary, define a special face and use that.
2940
2911@page 2941@page
2912@node Progress logging, Priorities, TODO extensions, TODO items 2942@node Progress logging, Priorities, TODO extensions, TODO items
2913@section Progress Logging 2943@section Progress Logging
2914@cindex progress logging 2944@cindex progress logging
2915@cindex logging, of progress 2945@cindex logging, of progress
2916 2946
2917Org-mode can automatically record a time stamp and even a note when you 2947Org-mode can automatically record a time stamp and possibly a note when
2918mark a TODO item as DONE, or even each time you change the state of 2948you mark a TODO item as DONE, or even each time you change the state of
2919a TODO item. 2949a TODO item. This system is highly configurable, settings can be on a
2950per-keyword basis and can be localized to a file or even a subtree. For
2951information on how to clock working time for a task, see @ref{Clocking
2952work time}.
2920 2953
2921@menu 2954@menu
2922* Closing items:: When was this entry marked DONE? 2955* Closing items:: When was this entry marked DONE?
@@ -2926,65 +2959,97 @@ a TODO item.
2926@node Closing items, Tracking TODO state changes, Progress logging, Progress logging 2959@node Closing items, Tracking TODO state changes, Progress logging, Progress logging
2927@subsection Closing items 2960@subsection Closing items
2928 2961
2929If you want to keep track of @emph{when} a certain TODO item was 2962The most basic logging is to keep track of @emph{when} a certain TODO
2930finished, turn on logging with@footnote{The corresponding in-buffer 2963item was finished. This is achieved with@footnote{The corresponding
2931setting is: @code{#+STARTUP: logdone}. You may also set this for the 2964in-buffer setting is: @code{#+STARTUP: logdone}}.
2932scope of a subtree by adding a @code{:LOGGING:} property with one or more
2933of the logging keywords in the value.}
2934 2965
2935@lisp 2966@lisp
2936(setq org-log-done t) 2967(setq org-log-done 'time)
2937@end lisp 2968@end lisp
2938 2969
2939@noindent 2970@noindent
2940Then each time you turn a TODO entry into DONE using either @kbd{C-c 2971Then each time you turn an entry from a TODO (not-done) state into any
2941C-t} in the Org-mode buffer or @kbd{t} in the agenda buffer, a line 2972of the DONE states, a line @samp{CLOSED: [timestamp]} will be inserted
2942@samp{CLOSED: [timestamp]} will be inserted just after the headline. If 2973just after the headline. If you turn the entry back into a TODO item
2943you turn the entry back into a TODO item through further state cycling, 2974through further state cycling, that line will be removed again. If you
2944that line will be removed again. In the timeline (@pxref{Timeline}) and 2975want to record a note along with the timestamp, use@footnote{The
2945in the agenda (@pxref{Weekly/Daily agenda}), you can then use the 2976corresponding in-buffer setting is: @code{#+STARTUP: lognotedone}}
2946@kbd{l} key to display the TODO items closed on each day, giving you an
2947overview of what has been done on a day. If you want to record a note
2948along with the timestamp, use@footnote{The corresponding in-buffer
2949setting is: @code{#+STARTUP: lognotedone}}
2950 2977
2951@lisp 2978@lisp
2952(setq org-log-done '(done)) 2979(setq org-log-done 'note)
2953@end lisp 2980@end lisp
2954 2981
2982@noindent
2983You will then be prompted for a note, and that note will be stored below
2984the entry with a @samp{Closing Note} heading.
2985
2986In the timeline (@pxref{Timeline}) and in the agenda
2987(@pxref{Weekly/Daily agenda}), you can then use the @kbd{l} key to
2988display the TODO items with a @samp{CLOSED} timestamp on each day,
2989giving you an overview of what has been done.
2990
2955@node Tracking TODO state changes, , Closing items, Progress logging 2991@node Tracking TODO state changes, , Closing items, Progress logging
2956@subsection Tracking TODO state changes 2992@subsection Tracking TODO state changes
2957 2993
2958When TODO keywords are used as workflow states (@pxref{Workflow 2994When TODO keywords are used as workflow states (@pxref{Workflow
2959states}), you might want to keep track of when a state change occurred 2995states}), you might want to keep track of when a state change occurred
2960and record a note about this change. With the setting@footnote{The 2996and maybe take a note about this change. Since it is normally too much
2961corresponding in-buffer setting is: @code{#+STARTUP: lognotestate}.} 2997to record a note for every state, Org-mode expects configuration on a
2998per-keyword basis for this. This is achieved by adding special markers
2999@samp{!} (for a time stamp) and @samp{@@} (for a note) in parenthesis
3000after each keyword. For example, with the setting
2962 3001
2963@lisp 3002@lisp
2964(setq org-log-done '(state)) 3003(setq org-todo-keywords
3004 '((sequence "TODO(t)" "WAIT(w@@/!)" "|" "DONE(d!)" "CANCELED(c@@)")))
2965@end lisp 3005@end lisp
2966 3006
2967@noindent 3007@noindent
2968each state change will prompt you for a note that will be attached to 3008you not only define global TODO keywords and fast access keys, but also
2969the current headline. If you press @kbd{C-c C-c} without typing 3009request that a time is recorded when the entry is turned into
2970anything into the note buffer, only the time of the state change will be 3010DONE@footnote{It is possible that Org-mode will record two time stamps
2971noted. Very likely you do not want this verbose tracking all the time, 3011when you are using both @code{org-log-done} and state change logging.
2972so it is probably better to configure this behavior with in-buffer 3012However, it will never prompt for two notes - if you have configured
2973options. For example, if you are tracking purchases, put these into a 3013both, the state change recording note will take precedence and cancel
2974separate file that contains: 3014the @samp{Closing Note}.}, and that a note is recorded when switching to
2975 3015WAIT or CANCELED. The setting for WAIT is even more special: The
2976@example 3016@samp{!} after the slash means that in addition to the note taken when
2977#+SEQ_TODO: TODO(t) ORDERED(o) INVOICE(i) PAYED(p) | RECEIVED(r) 3017entering the state, a time stamp should be recorded when @i{leaving} the
2978#+STARTUP: lognotestate 3018WAIT state, if and only if the @i{target} state does not configure
3019logging for entering it. So it has no effect when switching from WAIT
3020to DONE, because DONE is configured to record a timestamp only. But
3021when switching from WAIT back to TODO, the @samp{/!} in the WAIT
3022setting now triggers a timestamp even though TODO has no logging
3023configured.
3024
3025You can use the exact same syntax for setting logging preferences local
3026to a buffer:
3027@example
3028#+SEQ_TODO: TODO(t) WAIT(w@@/!) | DONE(d!) CANCELED(c@@)
3029@end example
3030
3031In order to define logging settings that are local to a subtree or a
3032single item, define a LOGGING property in this entry. Any non-empty
3033LOGGING property resets all logging settings to nil. You may then turn
3034on logging for this specific tree using STARTUP keywords like
3035@code{lognotedone} or @code{logrepeat}, as well as adding state specific
3036settings like @code{TODO(!)}. For example
3037
3038@example
3039* TODO Log each state with only a time
3040 :PROPERTIES:
3041 :LOGGING: TODO(!) WAIT(!) DONE(!) CANCELED(!)
3042 :END:
3043* TODO Only log when switching to WAIT, and when repeating
3044 :PROPERTIES:
3045 :LOGGING: WAIT(@@) logrepeat
3046 :END:
3047* TODO No logging at all
3048 :PROPERTIES:
3049 :LOGGING: nil
3050 :END:
2979@end example 3051@end example
2980 3052
2981If you only need to take a note for some of the states, mark those
2982states with an additional @samp{@@}, like this:
2983
2984@example
2985#+SEQ_TODO: TODO(t) ORDERED(o@@) INVOICE(i@@) PAYED(p) | RECEIVED(r)
2986#+STARTUP: lognotestate
2987@end example
2988 3053
2989@node Priorities, Breaking down tasks, Progress logging, TODO items 3054@node Priorities, Breaking down tasks, Progress logging, TODO items
2990@section Priorities 3055@section Priorities
@@ -3067,8 +3132,8 @@ use the mouse (thanks to Piotr Zielinski's @file{org-mouse.el}).
3067Here is an example of a checkbox list. 3132Here is an example of a checkbox list.
3068 3133
3069@example 3134@example
3070* TODO Organize party [3/6] 3135* TODO Organize party [2/4]
3071 - call people [1/3] 3136 - [-] call people [1/3]
3072 - [ ] Peter 3137 - [ ] Peter
3073 - [X] Sarah 3138 - [X] Sarah
3074 - [ ] Sam 3139 - [ ] Sam
@@ -3077,9 +3142,14 @@ Here is an example of a checkbox list.
3077 - [X] talk to the neighbors 3142 - [X] talk to the neighbors
3078@end example 3143@end example
3079 3144
3145Checkboxes work hierarchically, so if a checkbox item has children that
3146are checkboxes, toggling one of the children checkboxes will make the
3147parent checkbox reflect if none, some, or all of the children are
3148checked.
3149
3080@cindex statistics, for checkboxes 3150@cindex statistics, for checkboxes
3081@cindex checkbox statistics 3151@cindex checkbox statistics
3082The @samp{[3/6]} and @samp{[1/3]} in the first and second line are 3152The @samp{[2/4]} and @samp{[1/3]} in the first and second line are
3083cookies indicating how many checkboxes present in this entry have been 3153cookies indicating how many checkboxes present in this entry have been
3084checked off, and the total number of checkboxes are present. This can 3154checked off, and the total number of checkboxes are present. This can
3085give you an idea on how many checkboxes remain, even without opening a 3155give you an idea on how many checkboxes remain, even without opening a
@@ -3409,7 +3479,7 @@ application of properties, imagine keeping track of one's music CD's,
3409where properties could be things such as the album artist, date of 3479where properties could be things such as the album artist, date of
3410release, number of tracks, and so on. 3480release, number of tracks, and so on.
3411 3481
3412Properties can be conveiently edited and viewed in column view 3482Properties can be conveniently edited and viewed in column view
3413(@pxref{Column view}). 3483(@pxref{Column view}).
3414 3484
3415Properties are like tags, but with a value. For example, in a file 3485Properties are like tags, but with a value. For example, in a file
@@ -3447,10 +3517,10 @@ first, and the value after it. Here is an example:
3447 :PROPERTIES: 3517 :PROPERTIES:
3448 :Title: Goldberg Variations 3518 :Title: Goldberg Variations
3449 :Composer: J.S. Bach 3519 :Composer: J.S. Bach
3450 :Artist: Glen Gould 3520 :Artist: Glen Gould
3451 :Publisher: Deutsche Grammphon 3521 :Publisher: Deutsche Grammphon
3452 :NDisks: 1 3522 :NDisks: 1
3453 :END: 3523 :END:
3454@end example 3524@end example
3455 3525
3456You may define the allowed values for a particular property @samp{:Xyz:} 3526You may define the allowed values for a particular property @samp{:Xyz:}
@@ -3551,13 +3621,14 @@ properties, the same commands are used as for tag searches (@pxref{Tag
3551searches}), and the same logic applies. For example, a search string 3621searches}), and the same logic applies. For example, a search string
3552 3622
3553@example 3623@example
3554+work-boss+PRIORITY="A"+Coffee="unlimited"+With=@{Sarah\|Denny@} 3624+work-boss+PRIORITY="A"+Coffee="unlimited"+Effort=""+With=@{Sarah\|Denny@}
3555@end example 3625@end example
3556 3626
3557@noindent 3627@noindent
3558finds entries tagged @samp{:work:} but not @samp{:boss:}, which 3628finds entries tagged @samp{:work:} but not @samp{:boss:}, which
3559also have a priority value @samp{A}, a @samp{:Coffee:} property with the 3629also have a priority value @samp{A}, a @samp{:Coffee:} property with the
3560value @samp{unlimited}, and a @samp{:With:} property that is matched by 3630value @samp{unlimited}, an @samp{Effort} property that is undefined or
3631empty, and a @samp{:With:} property that is matched by
3561the regular expression @samp{Sarah\|Denny}. 3632the regular expression @samp{Sarah\|Denny}.
3562 3633
3563You can configure Org-mode to use property inheritance during a search, 3634You can configure Org-mode to use property inheritance during a search,
@@ -3605,6 +3676,9 @@ applies to the entire subtree.
3605@item ARCHIVE 3676@item ARCHIVE
3606For archiving, the @code{:ARCHIVE:} property may define the archive 3677For archiving, the @code{:ARCHIVE:} property may define the archive
3607location for the entire subtree (@pxref{Moving subtrees}). 3678location for the entire subtree (@pxref{Moving subtrees}).
3679@item LOGGING
3680The LOGGING property may define logging settings for an entry or a
3681subtree (@pxref{Tracking TODO state changes}).
3608@end table 3682@end table
3609 3683
3610@node Column view, Property API, Property inheritance, Properties and columns 3684@node Column view, Property API, Property inheritance, Properties and columns
@@ -3696,6 +3770,8 @@ property @r{The property that should be edited in this column.}
3696 @{$@} @r{Currency, short for @samp{+;%.2f}.} 3770 @{$@} @r{Currency, short for @samp{+;%.2f}.}
3697 @{:@} @r{Sum times, HH:MM:SS, plain numbers are hours.} 3771 @{:@} @r{Sum times, HH:MM:SS, plain numbers are hours.}
3698 @{X@} @r{Checkbox status, [X] if all children are [X].} 3772 @{X@} @r{Checkbox status, [X] if all children are [X].}
3773 @{X/@} @r{Checkbox status, [n/m].}
3774 @{X%@} @r{Checkbox status, [n%].}
3699@end example 3775@end example
3700 3776
3701@noindent 3777@noindent
@@ -3712,8 +3788,8 @@ values.
3712 3788
3713The first column, @samp{%25ITEM}, means the first 25 characters of the 3789The first column, @samp{%25ITEM}, means the first 25 characters of the
3714item itself, i.e. of the headline. You probably always should start the 3790item itself, i.e. of the headline. You probably always should start the
3715column definition with the ITEM specifier. The other specifiers create 3791column definition with the @samp{ITEM} specifier. The other specifiers
3716columns @samp{Owner} with a list of names as allowed values, for 3792create columns @samp{Owner} with a list of names as allowed values, for
3717@samp{Status} with four different possible values, and for a checkbox 3793@samp{Status} with four different possible values, and for a checkbox
3718field @samp{Approved}. When no width is given after the @samp{%} 3794field @samp{Approved}. When no width is given after the @samp{%}
3719character, the column will be exactly as wide as it needs to be in order 3795character, the column will be exactly as wide as it needs to be in order
@@ -3739,6 +3815,12 @@ the entire tree, starting from the entry that contains the @code{:COLUMNS:}
3739property. If none is found, the format is taken from the @code{#+COLUMNS} 3815property. If none is found, the format is taken from the @code{#+COLUMNS}
3740line or from the variable @code{org-columns-default-format}, and column 3816line or from the variable @code{org-columns-default-format}, and column
3741view is established for the current entry and its subtree. 3817view is established for the current entry and its subtree.
3818@kindex r
3819@item r
3820Recreate the column view, to included hanges happening in the buffer.
3821@kindex g
3822@item g
3823Same as @kbd{r}.
3742@kindex q 3824@kindex q
3743@item q 3825@item q
3744Exit column view. 3826Exit column view.
@@ -3791,8 +3873,8 @@ Delete the current column.
3791 3873
3792Since column view is just an overlay over a buffer, it cannot be 3874Since column view is just an overlay over a buffer, it cannot be
3793exported or printed directly. If you want to capture a column view, use 3875exported or printed directly. If you want to capture a column view, use
3794the dynamic block (@pxref{Dynamic blocks}). The frame of this block 3876ths @code{columnview} dynamic block (@pxref{Dynamic blocks}). The frame
3795looks like this: 3877of this block looks like this:
3796 3878
3797@example 3879@example
3798* The column view 3880* The column view
@@ -3820,6 +3902,12 @@ When @code{t}, insert a hline after every line. When a number N, insert
3820a hline before each headline with level @code{<= N}. 3902a hline before each headline with level @code{<= N}.
3821@item :vlines 3903@item :vlines
3822When set to @code{t}, enforce column groups to get vertical lines. 3904When set to @code{t}, enforce column groups to get vertical lines.
3905@item :maxlevel
3906When set to a number, don't capture entries below this level.
3907@item :skip-empty-rows
3908When set to @code{t}, skip row where the only non-empty specifier of the
3909column view is @code{ITEM}.
3910
3823@end table 3911@end table
3824 3912
3825@noindent 3913@noindent
@@ -3870,7 +3958,7 @@ is used in a much wider sense.
3870* Time stamps:: Assigning a time to a tree entry 3958* Time stamps:: Assigning a time to a tree entry
3871* Creating timestamps:: Commands which insert timestamps 3959* Creating timestamps:: Commands which insert timestamps
3872* Deadlines and scheduling:: Planning your work 3960* Deadlines and scheduling:: Planning your work
3873* Clocking work time:: 3961* Clocking work time::
3874@end menu 3962@end menu
3875 3963
3876 3964
@@ -4138,7 +4226,7 @@ format does not @emph{replace} the default format - instead it is put
4138@emph{over} the default format using text properties. This has the 4226@emph{over} the default format using text properties. This has the
4139following consequences: 4227following consequences:
4140@itemize @bullet 4228@itemize @bullet
4141@item 4229@item
4142You cannot place the cursor onto a time stamp anymore, only before or 4230You cannot place the cursor onto a time stamp anymore, only before or
4143after. 4231after.
4144@item 4232@item
@@ -4270,21 +4358,23 @@ the scheduling date from the entry.
4270@subsection Repeated Tasks 4358@subsection Repeated Tasks
4271 4359
4272Some tasks need to be repeated again and again. Org-mode helps to 4360Some tasks need to be repeated again and again. Org-mode helps to
4273organize such tasks using a so-called repeater in a DEADLINE or 4361organize such tasks using a so-called repeater in a DEADLINE, SCHEDULED,
4274SCHEDULED time stamp. In the following example 4362or plain time stamp. In the following example
4275@example 4363@example
4276** TODO Pay the rent 4364** TODO Pay the rent
4277 DEADLINE: <2005-10-01 Sat +1m> 4365 DEADLINE: <2005-10-01 Sat +1m>
4278@end example 4366@end example
4279the @code{+1m} is a repeater; the intended interpretation is that the 4367the @code{+1m} is a repeater; the intended interpretation is that the
4280task has a deadline on <2005-10-01> and repeats itself every (one) month 4368task has a deadline on <2005-10-01> and repeats itself every (one) month
4281starting from that time. 4369starting from that time. If you need both a repeater and a special
4370warning period in a deadline entry, the repeater comes first and the
4371warning period last: @code{DEADLINE: <2005-10-01 Sat +1m -3d>}.
4282 4372
4283Deadlines and scheduled items produce entries in the agenda when they 4373Deadlines and scheduled items produce entries in the agenda when they
4284are over-due, so it is important to be able to mark such an entry as 4374are over-due, so it is important to be able to mark such an entry as
4285completed once you have done so. When you mark a DEADLINE or a SCHEDULE 4375completed once you have done so. When you mark a DEADLINE or a SCHEDULE
4286with the todo keyword DONE, it will no longer produce entries in the 4376with the todo keyword DONE, it will no longer produce entries in the
4287agenda. The problem with this is, however, that then also the 4377agenda. The problem with this is, however, that then also the
4288@emph{next} instance of the repeated entry will not be active. Org-mode 4378@emph{next} instance of the repeated entry will not be active. Org-mode
4289deals with this in the following way: When you try to mark such an entry 4379deals with this in the following way: When you try to mark such an entry
4290DONE (using @kbd{C-c C-t}), it will shift the base date of the repeating 4380DONE (using @kbd{C-c C-t}), it will shift the base date of the repeating
@@ -4299,14 +4389,37 @@ actually switch the date like this:
4299 4389
4300You will also be prompted for a note@footnote{You can change this using 4390You will also be prompted for a note@footnote{You can change this using
4301the option @code{org-log-repeat}, or the @code{#+STARTUP} options 4391the option @code{org-log-repeat}, or the @code{#+STARTUP} options
4302@code{logrepeat} and @code{nologrepeat}.} that will be put under the 4392@code{logrepeat}, @code{lognoterepeat}, and @code{nologrepeat}.} that
4303DEADLINE line to keep a record that you actually acted on the previous 4393will be put under the DEADLINE line to keep a record that you actually
4304instance of this deadline. 4394acted on the previous instance of this deadline.
4305 4395
4306As a consequence of shifting the base date, this entry will no longer be 4396As a consequence of shifting the base date, this entry will no longer be
4307visible in the agenda when checking past dates, but all future instances 4397visible in the agenda when checking past dates, but all future instances
4308will be visible. 4398will be visible.
4309 4399
4400With the @samp{+1m} cookie, the date shift will always be exactly one
4401month. So if you have not payed the rent for three months, marking this
4402entry DONE will still keep it as an overdue deadline. Depending on the
4403task, this may not be the best way to handle it. For example, if you
4404forgot to call you father for 3 weeks, it does not make sense to call
4405her 3 times in a single day to make up for it. Finally, there are tasks
4406like changing batteries which should always repeat a certain time
4407@i{after} the last time you did it. For these tasks, Org-mode has
4408special repeaters markes with @samp{++} and @samp{.+}. For example:
4409
4410@example
4411** TODO Call Father
4412 DEADLINE: <2008-02-10 Sun ++1w>
4413 Marking this DONE will shift the date by at least one week,
4414 but also by as many weeks as it takes to get this date into
4415 the future. However, it stays on a Sunday, even if you called
4416 and marked it done on Saturday.
4417** TODO Check the batteries in the smoke detectors
4418 DEADLINE: <2005-11-01 Tue .+1m>
4419 Marking this DONE will shift the date to one month after
4420 today.
4421@end example
4422
4310You may have both scheduling and deadline information for a specific 4423You may have both scheduling and deadline information for a specific
4311task - just make sure that the repeater intervals on both are the same. 4424task - just make sure that the repeater intervals on both are the same.
4312 4425
@@ -4326,16 +4439,16 @@ Start the clock on the current item (clock-in). This inserts the CLOCK
4326keyword together with a timestamp. If this is not the first clocking of 4439keyword together with a timestamp. If this is not the first clocking of
4327this item, the multiple CLOCK lines will be wrapped into a 4440this item, the multiple CLOCK lines will be wrapped into a
4328@code{:CLOCK:} drawer (see also the variable 4441@code{:CLOCK:} drawer (see also the variable
4329@code{org-clock-into-drawer}. 4442@code{org-clock-into-drawer}).
4330@kindex C-c C-x C-o 4443@kindex C-c C-x C-o
4331@item C-c C-x C-o 4444@item C-c C-x C-o
4332Stop the clock (clock-out). The inserts another timestamp at the same 4445Stop the clock (clock-out). The inserts another timestamp at the same
4333location where the clock was last started. It also directly computes 4446location where the clock was last started. It also directly computes
4334the resulting time in inserts it after the time range as @samp{=> 4447the resulting time in inserts it after the time range as @samp{=>
4335HH:MM}. See the variable @code{org-log-done} for the possibility to 4448HH:MM}. See the variable @code{org-log-note-clock-out} for the
4336record an additional note together with the clock-out time 4449possibility to record an additional note together with the clock-out
4337stamp@footnote{The corresponding in-buffer setting is: @code{#+STARTUP: 4450time stamp@footnote{The corresponding in-buffer setting is:
4338lognoteclock-out}}. 4451@code{#+STARTUP: lognoteclock-out}}.
4339@kindex C-c C-y 4452@kindex C-c C-y
4340@item C-c C-y 4453@item C-c C-y
4341Recompute the time interval after changing one of the time stamps. This 4454Recompute the time interval after changing one of the time stamps. This
@@ -4393,6 +4506,8 @@ new table. The @samp{BEGIN} line can specify options:
4393 @r{@code{thismonth}, @code{lastmonth}, @code{thisyear}, or @code{lastyear}}. 4506 @r{@code{thismonth}, @code{lastmonth}, @code{thisyear}, or @code{lastyear}}.
4394:tstart @r{A time string specifying when to start considering times} 4507:tstart @r{A time string specifying when to start considering times}
4395:tend @r{A time string specifying when to stop considering times} 4508:tend @r{A time string specifying when to stop considering times}
4509:step @r{@code{week} or @code{day}, to split the table into chunks}
4510:link @r{Link the item headlines in the table to their origins}
4396@end example 4511@end example
4397So to get a clock summary of the current level 1 tree, for the current 4512So to get a clock summary of the current level 1 tree, for the current
4398day, you could write 4513day, you could write
@@ -4405,7 +4520,7 @@ and to use a specific time range you could write@footnote{Note that all
4405parameters must be specified in a single line - the line is broken here 4520parameters must be specified in a single line - the line is broken here
4406only to fit it onto the manual.} 4521only to fit it onto the manual.}
4407@example 4522@example
4408#+BEGIN: clocktable :tstart "<2006-08-10 Thu 10:00>" 4523#+BEGIN: clocktable :tstart "<2006-08-10 Thu 10:00>"
4409 :tend "<2006-08-10 Thu 12:00>" 4524 :tend "<2006-08-10 Thu 12:00>"
4410 4525
4411#+END: clocktable 4526#+END: clocktable
@@ -4466,7 +4581,9 @@ suggestion.}. @code{org-remember} basically just calls @code{remember},
4466but it makes a few things easier: If there is an active region, it will 4581but it makes a few things easier: If there is an active region, it will
4467automatically copy the region into the remember buffer. It also allows 4582automatically copy the region into the remember buffer. It also allows
4468to jump to the buffer and location where remember notes are being 4583to jump to the buffer and location where remember notes are being
4469stored: Just call @code{org-remember} with a prefix argument. 4584stored: Just call @code{org-remember} with a prefix argument. If you
4585use two prefix arguments, Org-mode jumps to the location where the last
4586remember note was stored.
4470 4587
4471@node Remember templates, Storing notes, Setting up remember, Remember 4588@node Remember templates, Storing notes, Setting up remember, Remember
4472@section Remember templates 4589@section Remember templates
@@ -4494,6 +4611,26 @@ file (if not present or @code{nil}) defaults to
4494@code{org-default-notes-file}, the heading to 4611@code{org-default-notes-file}, the heading to
4495@code{org-remember-default-headline}. 4612@code{org-remember-default-headline}.
4496 4613
4614An optional sixth element specifies the contexts in which the user can
4615select the template. This element can be either a list of major modes
4616or a function. @code{org-remember} will first check whether the function
4617returns @code{t} or if we are in any of the listed major mode, and select
4618the template accordingly.
4619
4620So for example:
4621
4622@example
4623(setq org-remember-templates
4624 '(("Bug" ?b "* BUG %?\n %i\n %a" "~/org/BUGS.org" "Bugs" (emacs-lisp-mode))
4625 ("Journal" ?j "* %U %?\n\n %i\n %a" "~/org/JOURNAL.org" my-check)
4626 ("Idea" ?i "* %^@{Title@}\n %i\n %a" "~/org/JOURNAL.org" "New Ideas")))
4627@end example
4628
4629The first template will only be available when invoking @code{org-remember}
4630from an buffer in @code{emacs-lisp-mode}. The second template will only be
4631available when the function @code{my-check} returns @code{t}. The third
4632template will be proposed in any context.
4633
4497When you call @kbd{M-x remember} (or @kbd{M-x org-remember}) to remember 4634When you call @kbd{M-x remember} (or @kbd{M-x org-remember}) to remember
4498something, org will prompt for a key to select the template (if you have 4635something, org will prompt for a key to select the template (if you have
4499more than one template) and then prepare the buffer like 4636more than one template) and then prepare the buffer like
@@ -4541,10 +4678,11 @@ similar way.}:
4541Link type | Available keywords 4678Link type | Available keywords
4542-------------------+---------------------------------------------- 4679-------------------+----------------------------------------------
4543bbdb | %:name %:company 4680bbdb | %:name %:company
4681bbdb | %::server %:port %:nick
4544vm, wl, mh, rmail | %:type %:subject %:message-id 4682vm, wl, mh, rmail | %:type %:subject %:message-id
4545 | %:from %:fromname %:fromaddress 4683 | %:from %:fromname %:fromaddress
4546 | %:to %:toname %:toaddress 4684 | %:to %:toname %:toaddress
4547 | %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user. See the variable @code{org-from-is-user-regexp}.}} 4685 | %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user. See the variable @code{org-from-is-user-regexp}.}}
4548gnus | %:group, @r{for messages also all email fields} 4686gnus | %:group, @r{for messages also all email fields}
4549w3, w3m | %:url 4687w3, w3m | %:url
4550info | %:file %:node 4688info | %:file %:node
@@ -4559,7 +4697,7 @@ To place the cursor after template expansion use:
4559@end example 4697@end example
4560 4698
4561@noindent 4699@noindent
4562If you change you mind about which template to use, call 4700If you change your mind about which template to use, call
4563@code{org-remember} in the remember buffer. You may then select a new 4701@code{org-remember} in the remember buffer. You may then select a new
4564template that will be filled with the previous context information. 4702template that will be filled with the previous context information.
4565 4703
@@ -4633,13 +4771,16 @@ Refile the entry at point. This command offers possible locations for
4633refiling the entry and lets you select one with completion. The item is 4771refiling the entry and lets you select one with completion. The item is
4634filed below the target heading as a subitem. Depending on 4772filed below the target heading as a subitem. Depending on
4635@code{org-reverse-note-order}, it will be either the first of last 4773@code{org-reverse-note-order}, it will be either the first of last
4636subitem, and you can toggle the value of this variable for the duration 4774subitem.@* By default, all level 1 headlines in the current buffer are
4637of the command by using a @kbd{C-u} prefix.@* By default, all level 1 4775considered to be targets, but you can have more complex definitions
4638headlines in the current buffer are considered to be targets, but you 4776across a number of files. See the variable @code{org-refile-targets}
4639can have more complex definitions across a number of files. See the 4777for details.
4640variable @code{org-refile-targets} for details. The list of targets is 4778@kindex C-u C-c C-w
4641compiled upon first use, you can update it by using a double prefix 4779@item C-u C-c C-w
4642argument (@kbd{C-u C-u}) to this command. 4780Use the refile interface to jump to a heading.
4781@kindex C-u C-u C-c C-w
4782@item C- C-u C-c C-w
4783Jump to the location where @code{org-refile} last moved a tree to.
4643@end table 4784@end table
4644 4785
4645@node Agenda views, Embedded LaTeX, Remember, Top 4786@node Agenda views, Embedded LaTeX, Remember, Top
@@ -4653,7 +4794,7 @@ important for a particular date, this information must be collected,
4653sorted and displayed in an organized way. 4794sorted and displayed in an organized way.
4654 4795
4655Org-mode can select items based on various criteria, and display them 4796Org-mode can select items based on various criteria, and display them
4656in a separate buffer. Six different view types are provided: 4797in a separate buffer. Seven different view types are provided:
4657 4798
4658@itemize @bullet 4799@itemize @bullet
4659@item 4800@item
@@ -4669,6 +4810,9 @@ the tags associated with them,
4669a @emph{timeline view} that shows all events in a single Org-mode file, 4810a @emph{timeline view} that shows all events in a single Org-mode file,
4670in time-sorted view, 4811in time-sorted view,
4671@item 4812@item
4813a @emph{keyword search view} that shows all entries from multiple files
4814that contain specified keywords.
4815@item
4672a @emph{stuck projects view} showing projects that currently don't move 4816a @emph{stuck projects view} showing projects that currently don't move
4673along, and 4817along, and
4674@item 4818@item
@@ -4680,7 +4824,7 @@ combinations of different views.
4680The extracted information is displayed in a special @emph{agenda 4824The extracted information is displayed in a special @emph{agenda
4681buffer}. This buffer is read-only, but provides commands to visit the 4825buffer}. This buffer is read-only, but provides commands to visit the
4682corresponding locations in the original Org-mode files, and even to 4826corresponding locations in the original Org-mode files, and even to
4683edit these files remotely. 4827edit these files remotely.
4684 4828
4685Two variables control how the agenda buffer is displayed and whether the 4829Two variables control how the agenda buffer is displayed and whether the
4686window configuration is restored when the agenda exits: 4830window configuration is restored when the agenda exits:
@@ -4793,14 +4937,17 @@ Create a list of headlines matching a TAGS expression (@pxref{Matching
4793tags and properties}). 4937tags and properties}).
4794@item L 4938@item L
4795Create the timeline view for the current buffer (@pxref{Timeline}). 4939Create the timeline view for the current buffer (@pxref{Timeline}).
4796@item # @r{/} ! 4940@item s
4797Create a list of stuck projects (@pxref{Stuck projects}). 4941Create a list of entries selected by a boolean expression of keywords
4942and/or regular expressions that must or must not occur in the entry.
4798@item / 4943@item /
4799Search for a regular expression in all agenda files and additionally in 4944Search for a regular expression in all agenda files and additionally in
4800the files listed in @code{org-agenda-multi-occur-extra-files}. This 4945the files listed in @code{org-agenda-multi-occur-extra-files}. This
4801uses the Emacs command @code{multi-occur}. A prefix argument can be 4946uses the Emacs command @code{multi-occur}. A prefix argument can be
4802used to specify the number of context lines for each match, default is 4947used to specify the number of context lines for each match, default is
48031. 49481.
4949@item # @r{/} !
4950Create a list of stuck projects (@pxref{Stuck projects}).
4804@item < 4951@item <
4805Restrict an agenda command to the current buffer@footnote{For backward 4952Restrict an agenda command to the current buffer@footnote{For backward
4806compatibility, you can also press @kbd{1} to restrict to the current 4953compatibility, you can also press @kbd{1} to restrict to the current
@@ -4830,6 +4977,7 @@ In this section we describe the built-in views.
4830* Global TODO list:: All unfinished action items 4977* Global TODO list:: All unfinished action items
4831* Matching tags and properties:: Structured information with fine-tuned search 4978* Matching tags and properties:: Structured information with fine-tuned search
4832* Timeline:: Time-sorted view for single file 4979* Timeline:: Time-sorted view for single file
4980* Keyword search:: Finding entries by keyword
4833* Stuck projects:: Find projects you need to review 4981* Stuck projects:: Find projects you need to review
4834@end menu 4982@end menu
4835 4983
@@ -5003,7 +5151,7 @@ together with a tags match is also possible, see @ref{Tag searches}.
5003The commands available in the tags list are described in @ref{Agenda 5151The commands available in the tags list are described in @ref{Agenda
5004commands}. 5152commands}.
5005 5153
5006@node Timeline, Stuck projects, Matching tags and properties, Built-in agenda views 5154@node Timeline, Keyword search, Matching tags and properties, Built-in agenda views
5007@subsection Timeline for a single file 5155@subsection Timeline for a single file
5008@cindex timeline, single file 5156@cindex timeline, single file
5009@cindex time-sorted view 5157@cindex time-sorted view
@@ -5024,8 +5172,36 @@ When called with a @kbd{C-u} prefix, all unfinished TODO entries
5024The commands available in the timeline buffer are listed in 5172The commands available in the timeline buffer are listed in
5025@ref{Agenda commands}. 5173@ref{Agenda commands}.
5026 5174
5175@node Keyword search, Stuck projects, Timeline, Built-in agenda views
5176@subsection Keyword search
5177@cindex keyword search
5178@cindex searching, for keywords
5179
5180This agenda view is a general text search facility for Org-mode entries.
5181It is particularly useful to find notes.
5182
5183@table @kbd
5184@kindex C-c a s
5185@item C-c a s
5186This is a special search that lets you select entries by keywords or
5187regular expression, using a boolean logic. For example, the search
5188string
5189
5190@example
5191+computer +wifi -ethernet -@{8\.11[bg]@}
5192@end example
5027 5193
5028@node Stuck projects, , Timeline, Built-in agenda views 5194@noindent
5195will search for note entries that contain the keywords @code{computer}
5196and @code{wifi}, but not the keyword @code{ethernet}, and which are also
5197not matched by the regular expression @code{8\.11[bg]}, meaning to
5198exclude both 8.11b and 8.11g.
5199
5200Note that in addition to the agenda files, this command will also search
5201the files listed in @code{org-agenda-text-search-extra-files}.
5202@end table
5203
5204@node Stuck projects, , Keyword search, Built-in agenda views
5029@subsection Stuck projects 5205@subsection Stuck projects
5030 5206
5031If you are following a system like David Allen's GTD to organize your 5207If you are following a system like David Allen's GTD to organize your
@@ -5181,7 +5357,7 @@ Within each category, items are sorted by priority (@pxref{Priorities}),
5181which is composed of the base priority (2000 for priority @samp{A}, 1000 5357which is composed of the base priority (2000 for priority @samp{A}, 1000
5182for @samp{B}, and 0 for @samp{C}), plus additional increments for 5358for @samp{B}, and 0 for @samp{C}), plus additional increments for
5183overdue scheduled or deadline items. 5359overdue scheduled or deadline items.
5184@item 5360@item
5185For the TODO list, items remain in the order of categories, but within 5361For the TODO list, items remain in the order of categories, but within
5186each category, sorting takes place according to priority 5362each category, sorting takes place according to priority
5187(@pxref{Priorities}). 5363(@pxref{Priorities}).
@@ -5281,8 +5457,8 @@ month and year views are slow to create, the do not become the default.
5281@item D 5457@item D
5282Toggle the inclusion of diary entries. See @ref{Weekly/Daily agenda}. 5458Toggle the inclusion of diary entries. See @ref{Weekly/Daily agenda}.
5283@c 5459@c
5284@kindex g 5460@kindex G
5285@item g 5461@item G
5286Toggle the time grid on and off. See also the variables 5462Toggle the time grid on and off. See also the variables
5287@code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}. 5463@code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}.
5288@c 5464@c
@@ -5293,6 +5469,9 @@ after modification of the time stamps of items with S-@key{left} and
5293S-@key{right}. When the buffer is the global todo list, a prefix 5469S-@key{right}. When the buffer is the global todo list, a prefix
5294argument is interpreted to create a selective list for a specific TODO 5470argument is interpreted to create a selective list for a specific TODO
5295keyword. 5471keyword.
5472@kindex g
5473@item g
5474Same as @kbd{r}.
5296@c 5475@c
5297@kindex s 5476@kindex s
5298@kindex C-x C-s 5477@kindex C-x C-s
@@ -5314,6 +5493,23 @@ Display the previous dates.
5314@item . 5493@item .
5315Goto today. 5494Goto today.
5316 5495
5496@tsubheading{Query editing}
5497@cindex query editing, in agenda
5498
5499@kindex [
5500@kindex ]
5501@kindex @{
5502@kindex @}
5503@item [ ] @{ @}
5504In the @i{search view} (@pxref{Keyword search}), these keys add new
5505search words (@kbd{[} and @kbd{]}) or new regular expressions (@kbd{@{}
5506and @kbd{@}}) to the query string. The opening bracket/brace will add a
5507positive search term prefixed by @samp{+}, indicating that this search
5508term @i{must} occur/match in the entry. Closing bracket/brace add a
5509negative search term which @i{must not} occur/match in the entry for it
5510to be selected.
5511
5512
5317@tsubheading{Remote editing} 5513@tsubheading{Remote editing}
5318@cindex remote editing, from agenda 5514@cindex remote editing, from agenda
5319 5515
@@ -5508,7 +5704,7 @@ dispatcher (@pxref{Agenda dispatcher}), just like the default commands.
5508* Block agenda:: All the stuff you need in a single buffer 5704* Block agenda:: All the stuff you need in a single buffer
5509* Setting Options:: Changing the rules 5705* Setting Options:: Changing the rules
5510* Exporting Agenda Views:: Writing agendas to files. 5706* Exporting Agenda Views:: Writing agendas to files.
5511* Extracting Agenda Information for other programs:: 5707* Extracting Agenda Information for other programs::
5512@end menu 5708@end menu
5513 5709
5514@node Storing searches, Block agenda, Custom agenda views, Custom agenda views 5710@node Storing searches, Block agenda, Custom agenda views, Custom agenda views
@@ -5595,11 +5791,11 @@ matching commands discussed above: @code{todo}, @code{tags}, and
5595@group 5791@group
5596(setq org-agenda-custom-commands 5792(setq org-agenda-custom-commands
5597 '(("h" "Agenda and Home-related tasks" 5793 '(("h" "Agenda and Home-related tasks"
5598 ((agenda) 5794 ((agenda "")
5599 (tags-todo "home") 5795 (tags-todo "home")
5600 (tags "garden"))) 5796 (tags "garden")))
5601 ("o" "Agenda and Office-related tasks" 5797 ("o" "Agenda and Office-related tasks"
5602 ((agenda) 5798 ((agenda "")
5603 (tags-todo "work") 5799 (tags-todo "work")
5604 (tags "office"))))) 5800 (tags "office")))))
5605@end group 5801@end group
@@ -5612,7 +5808,6 @@ your agenda for the current week, all TODO items that carry the tag
5612@samp{home}, and also all lines tagged with @samp{garden}. Finally the 5808@samp{home}, and also all lines tagged with @samp{garden}. Finally the
5613command @kbd{C-c a o} provides a similar view for office tasks. 5809command @kbd{C-c a o} provides a similar view for office tasks.
5614 5810
5615
5616@node Setting Options, Exporting Agenda Views, Block agenda, Custom agenda views 5811@node Setting Options, Exporting Agenda Views, Block agenda, Custom agenda views
5617@subsection Setting Options for custom commands 5812@subsection Setting Options for custom commands
5618@cindex options, for custom agenda views 5813@cindex options, for custom agenda views
@@ -5632,7 +5827,10 @@ right spot in @code{org-agenda-custom-commands}. For example:
5632 (org-agenda-prefix-format " Mixed: "))) 5827 (org-agenda-prefix-format " Mixed: ")))
5633 ("U" tags-tree "+boss-urgent" 5828 ("U" tags-tree "+boss-urgent"
5634 ((org-show-following-heading nil) 5829 ((org-show-following-heading nil)
5635 (org-show-hierarchy-above nil))))) 5830 (org-show-hierarchy-above nil)))
5831 ("N" search ""
5832 ((org-agenda-files '("~org/notes.org"))
5833 (org-agenda-text-search-extra-files nil)))))
5636@end group 5834@end group
5637@end lisp 5835@end lisp
5638 5836
@@ -5642,7 +5840,8 @@ priority, and the prefix format is modified to just say @samp{ Mixed: }
5642instead of giving the category of the entry. The sparse tags tree of 5840instead of giving the category of the entry. The sparse tags tree of
5643@kbd{C-c a U} will now turn out ultra-compact, because neither the 5841@kbd{C-c a U} will now turn out ultra-compact, because neither the
5644headline hierarchy above the match, nor the headline following the match 5842headline hierarchy above the match, nor the headline following the match
5645will be shown. 5843will be shown. The command @kbd{C-c a N} will do a text search limited
5844to only a single file.
5646 5845
5647For command sets creating a block agenda, 5846For command sets creating a block agenda,
5648@code{org-agenda-custom-commands} has two separate spots for setting 5847@code{org-agenda-custom-commands} has two separate spots for setting
@@ -5686,8 +5885,8 @@ yourself.
5686If you are away from your computer, it can be very useful to have a 5885If you are away from your computer, it can be very useful to have a
5687printed version of some agenda views to carry around. Org-mode can 5886printed version of some agenda views to carry around. Org-mode can
5688export custom agenda views as plain text, HTML@footnote{You need to 5887export custom agenda views as plain text, HTML@footnote{You need to
5689install Hrvoje Niksic' @file{htmlize.el}.} and postscript. If you want 5888install Hrvoje Niksic' @file{htmlize.el}.} postscript, and iCalendar
5690to do this only occasionally, use the command 5889files. If you want to do this only occasionally, use the command
5691 5890
5692@table @kbd 5891@table @kbd
5693@kindex C-x C-w 5892@kindex C-x C-w
@@ -5696,10 +5895,12 @@ to do this only occasionally, use the command
5696@cindex agenda views, exporting 5895@cindex agenda views, exporting
5697Write the agenda view to a file. Depending on the extension of the 5896Write the agenda view to a file. Depending on the extension of the
5698selected file name, the view will be exported as HTML (extension 5897selected file name, the view will be exported as HTML (extension
5699@file{.html} or @file{.htm}), Postscript (extension @file{.ps}), or 5898@file{.html} or @file{.htm}), Postscript (extension @file{.ps}),
5700plain text (any other extension). Use the variable 5899iCalendar (extension @file{.ics}), or plain text (any other extension).
5701@code{org-agenda-exporter-settings} to set options for @file{ps-print} 5900Use the variable @code{org-agenda-exporter-settings} to
5702and for @file{htmlize} to be used during export, for example 5901set options for @file{ps-print} and for @file{htmlize} to be used during
5902export, for example
5903
5703@lisp 5904@lisp
5704(setq org-agenda-exporter-settings 5905(setq org-agenda-exporter-settings
5705 '((ps-number-of-columns 2) 5906 '((ps-number-of-columns 2)
@@ -5712,10 +5913,10 @@ If you need to export certain agenda views frequently, you can associate
5712any custom agenda command with a list of output file names 5913any custom agenda command with a list of output file names
5713@footnote{If you want to store standard views like the weekly agenda 5914@footnote{If you want to store standard views like the weekly agenda
5714or the global TODO list as well, you need to define custom commands for 5915or the global TODO list as well, you need to define custom commands for
5715them in order to be able to specify filenames.}. Here is an example 5916them in order to be able to specify file names.}. Here is an example
5716that first does define custom commands for the agenda and the global 5917that first does define custom commands for the agenda and the global
5717todo list, together with a number of files to which to export them. 5918todo list, together with a number of files to which to export them.
5718Then we define two block agenda commands and specify filenames for them 5919Then we define two block agenda commands and specify file names for them
5719as well. File names can be relative to the current working directory, 5920as well. File names can be relative to the current working directory,
5720or absolute. 5921or absolute.
5721 5922
@@ -5725,7 +5926,7 @@ or absolute.
5725 '(("X" agenda "" nil ("agenda.html" "agenda.ps")) 5926 '(("X" agenda "" nil ("agenda.html" "agenda.ps"))
5726 ("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps")) 5927 ("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps"))
5727 ("h" "Agenda and Home-related tasks" 5928 ("h" "Agenda and Home-related tasks"
5728 ((agenda) 5929 ((agenda "")
5729 (tags-todo "home") 5930 (tags-todo "home")
5730 (tags "garden")) 5931 (tags "garden"))
5731 nil 5932 nil
@@ -5735,7 +5936,7 @@ or absolute.
5735 (tags-todo "work") 5936 (tags-todo "work")
5736 (tags "office")) 5937 (tags "office"))
5737 nil 5938 nil
5738 ("~/views/office.ps")))) 5939 ("~/views/office.ps" "~/calendars/office.ics"))))
5739@end group 5940@end group
5740@end lisp 5941@end lisp
5741 5942
@@ -5743,16 +5944,20 @@ The extension of the file name determines the type of export. If it is
5743@file{.html}, Org-mode will use the @file{htmlize.el} package to convert 5944@file{.html}, Org-mode will use the @file{htmlize.el} package to convert
5744the buffer to HTML and save it to this file name. If the extension is 5945the buffer to HTML and save it to this file name. If the extension is
5745@file{.ps}, @code{ps-print-buffer-with-faces} is used to produce 5946@file{.ps}, @code{ps-print-buffer-with-faces} is used to produce
5746postscript output. Any other extension produces a plain ASCII file. 5947postscript output. If the extension is @file{.ics}, iCalendar export is
5948run export over all files that were used to construct the agenda, and
5949limit the export to entries listed in the agenda now. Any other
5950extension produces a plain ASCII file.
5747 5951
5748The export files are @emph{not} created when you use one of those 5952The export files are @emph{not} created when you use one of those
5749commands interactively. Instead, there is a special command to produce 5953commands interactively because this might use too much overhead.
5750@emph{all} specified files in one step: 5954Instead, there is a special command to produce @emph{all} specified
5955files in one step:
5751 5956
5752@table @kbd 5957@table @kbd
5753@kindex C-c a e 5958@kindex C-c a e
5754@item C-c a e 5959@item C-c a e
5755Export all agenda views that have export filenames associated with 5960Export all agenda views that have export file names associated with
5756them. 5961them.
5757@end table 5962@end table
5758 5963
@@ -5799,7 +6004,7 @@ emacs -eval '(org-batch-store-agenda-views \
5799@noindent 6004@noindent
5800which will create the agenda views restricted to the file 6005which will create the agenda views restricted to the file
5801@file{~/org/project.org}, without diary entries and with 30 days 6006@file{~/org/project.org}, without diary entries and with 30 days
5802extent. 6007extent.
5803 6008
5804@node Extracting Agenda Information for other programs, , Exporting Agenda Views, Custom agenda views 6009@node Extracting Agenda Information for other programs, , Exporting Agenda Views, Custom agenda views
5805@subsection Extracting Agenda Information for other programs 6010@subsection Extracting Agenda Information for other programs
@@ -5827,7 +6032,7 @@ tags/todo match string. For example, to print your local shopping list
5827@samp{NewYork}), you could use 6032@samp{NewYork}), you could use
5828 6033
5829@example 6034@example
5830emacs -batch -l ~/.emacs \ 6035emacs -batch -l ~/.emacs \
5831 -eval '(org-batch-agenda "+shop-NewYork")' | lpr 6036 -eval '(org-batch-agenda "+shop-NewYork")' | lpr
5832@end example 6037@end example
5833 6038
@@ -6175,7 +6380,7 @@ warning. If there is an active region, only the region will be
6175exported. If the selected region is a single tree, the tree head will 6380exported. If the selected region is a single tree, the tree head will
6176become the document title. If the tree head entry has or inherits an 6381become the document title. If the tree head entry has or inherits an
6177@code{:EXPORT_FILE_NAME:} property, that name will be used for the 6382@code{:EXPORT_FILE_NAME:} property, that name will be used for the
6178export. 6383export.
6179@kindex C-c C-e v a 6384@kindex C-c C-e v a
6180@item C-c C-e v a 6385@item C-c C-e v a
6181Export only the visible part of the document. 6386Export only the visible part of the document.
@@ -6387,7 +6592,7 @@ Org-mode contains a La@TeX{} exporter written by Bastien Guerry.
6387@menu 6592@menu
6388* LaTeX export commands:: How to invoke LaTeX export 6593* LaTeX export commands:: How to invoke LaTeX export
6389* Quoting LaTeX code:: Incorporating literal LaTeX code 6594* Quoting LaTeX code:: Incorporating literal LaTeX code
6390* Sectioning structure:: 6595* Sectioning structure::
6391@end menu 6596@end menu
6392 6597
6393@node LaTeX export commands, Quoting LaTeX code, LaTeX export, LaTeX export 6598@node LaTeX export commands, Quoting LaTeX code, LaTeX export, LaTeX export
@@ -6516,7 +6721,7 @@ Create a single large iCalendar file from all files in
6516The export will honor SUMMARY, DESCRIPTION and LOCATION properties if 6721The export will honor SUMMARY, DESCRIPTION and LOCATION properties if
6517the selected entries have them. If not, the summary will be derived 6722the selected entries have them. If not, the summary will be derived
6518from the headline, and the description from the body (limited to 6723from the headline, and the description from the body (limited to
6519@code{org-icalendar-include-body} characters). 6724@code{org-icalendar-include-body} characters).
6520 6725
6521How this calendar is best read and updated, depends on the application 6726How this calendar is best read and updated, depends on the application
6522you are using. The FAQ covers this issue. 6727you are using. The FAQ covers this issue.
@@ -6532,7 +6737,7 @@ in order to produce better output.
6532* Comment lines:: Some lines will not be exported 6737* Comment lines:: Some lines will not be exported
6533* Initial text:: Text before the first headline 6738* Initial text:: Text before the first headline
6534* Footnotes:: Numbers like [1] 6739* Footnotes:: Numbers like [1]
6535* Quoted examples:: Inserting quoted chnuks of text 6740* Quoted examples:: Inserting quoted chnuks of text
6536* Enhancing text:: Subscripts, symbols and more 6741* Enhancing text:: Subscripts, symbols and more
6537* Export options:: How to influence the export settings 6742* Export options:: How to influence the export settings
6538@end menu 6743@end menu
@@ -6632,7 +6837,7 @@ If a headline starts with the word @samp{QUOTE}, the text below the
6632headline will be typeset as fixed-width, to allow quoting of computer 6837headline will be typeset as fixed-width, to allow quoting of computer
6633codes etc. 6838codes etc.
6634@item 6839@item
6635Lines starting with @samp{:} are also typeset in fixed-width font. 6840Lines starting with @samp{:} are also typeset in fixed-width font.
6636@table @kbd 6841@table @kbd
6637@kindex C-c : 6842@kindex C-c :
6638@item C-c : 6843@item C-c :
@@ -6700,7 +6905,7 @@ separator line will be formatted as table header fields.
6700If a headline starts with the word @samp{QUOTE}, the text below the 6905If a headline starts with the word @samp{QUOTE}, the text below the
6701headline will be typeset as fixed-width, to allow quoting of computer 6906headline will be typeset as fixed-width, to allow quoting of computer
6702codes etc. Lines starting with @samp{:} are also typeset in fixed-width 6907codes etc. Lines starting with @samp{:} are also typeset in fixed-width
6703font. 6908font.
6704@table @kbd 6909@table @kbd
6705@kindex C-c : 6910@kindex C-c :
6706@item C-c : 6911@item C-c :
@@ -6715,7 +6920,7 @@ quoted text
6715will also be exported in this way. 6920will also be exported in this way.
6716 6921
6717@cindex linebreak, forced 6922@cindex linebreak, forced
6718@item 6923@item
6719A double backslash @emph{at the end of a line} enforces a line break at 6924A double backslash @emph{at the end of a line} enforces a line break at
6720this position. 6925this position.
6721 6926
@@ -6865,8 +7070,8 @@ the two following forms:
6865@lisp 7070@lisp
6866("project-name" :property value :property value ...) 7071("project-name" :property value :property value ...)
6867 7072
6868@r{or} 7073@r{or}
6869 7074
6870("project-name" :components ("project-name" "project-name" ...)) 7075("project-name" :components ("project-name" "project-name" ...))
6871 7076
6872@end lisp 7077@end lisp
@@ -6905,13 +7110,13 @@ run @code{make} for updating files to be published.
6905 7110
6906By default, all files with extension @file{.org} in the base directory 7111By default, all files with extension @file{.org} in the base directory
6907are considered part of the project. This can be modified by setting the 7112are considered part of the project. This can be modified by setting the
6908properties 7113properties
6909@multitable @columnfractions 0.25 0.75 7114@multitable @columnfractions 0.25 0.75
6910@item @code{:base-extension} 7115@item @code{:base-extension}
6911@tab Extension (without the dot!) of source files. This actually is a 7116@tab Extension (without the dot!) of source files. This actually is a
6912regular expression. 7117regular expression.
6913 7118
6914@item @code{:exclude} 7119@item @code{:exclude}
6915@tab Regular expression to match file names that should not be 7120@tab Regular expression to match file names that should not be
6916published, even though they have been selected on the basis of their 7121published, even though they have been selected on the basis of their
6917extension. 7122extension.
@@ -7019,7 +7224,7 @@ too. @ref{Complex example} for an example of this usage.
7019 7224
7020Sometime an Org-mode file to be published may contain links that are 7225Sometime an Org-mode file to be published may contain links that are
7021only valid in your production environment, but not in the publishing 7226only valid in your production environment, but not in the publishing
7022location. In this case, use the property 7227location. In this case, use the property
7023 7228
7024@multitable @columnfractions 0.4 0.6 7229@multitable @columnfractions 0.4 0.6
7025@item @code{:link-validation-function} 7230@item @code{:link-validation-function}
@@ -7080,12 +7285,12 @@ directory on the local machine.
7080 7285
7081@lisp 7286@lisp
7082(setq org-publish-project-alist 7287(setq org-publish-project-alist
7083 '(("org" 7288 '(("org"
7084 :base-directory "~/org/" 7289 :base-directory "~/org/"
7085 :publishing-directory "~/public_html" 7290 :publishing-directory "~/public_html"
7086 :section-numbers nil 7291 :section-numbers nil
7087 :table-of-contents nil 7292 :table-of-contents nil
7088 :style "<link rel=stylesheet 7293 :style "<link rel=stylesheet
7089 href=\"../other/mystyle.css\" 7294 href=\"../other/mystyle.css\"
7090 type=\"text/css\">"))) 7295 type=\"text/css\">")))
7091@end lisp 7296@end lisp
@@ -7122,17 +7327,17 @@ right place on the webserver, and publishing images to it.
7122 :headline-levels 3 7327 :headline-levels 3
7123 :section-numbers nil 7328 :section-numbers nil
7124 :table-of-contents nil 7329 :table-of-contents nil
7125 :style "<link rel=stylesheet 7330 :style "<link rel=stylesheet
7126 href=\"../other/mystyle.css\" type=\"text/css\">" 7331 href=\"../other/mystyle.css\" type=\"text/css\">"
7127 :auto-preamble t 7332 :auto-preamble t
7128 :auto-postamble nil) 7333 :auto-postamble nil)
7129 7334
7130 ("images" 7335 ("images"
7131 :base-directory "~/images/" 7336 :base-directory "~/images/"
7132 :base-extension "jpg\\|gif\\|png" 7337 :base-extension "jpg\\|gif\\|png"
7133 :publishing-directory "/ssh:user@@host:~/html/images/" 7338 :publishing-directory "/ssh:user@@host:~/html/images/"
7134 :publishing-function org-publish-attachment) 7339 :publishing-function org-publish-attachment)
7135 7340
7136 ("other" 7341 ("other"
7137 :base-directory "~/other/" 7342 :base-directory "~/other/"
7138 :base-extension "css\\|el" 7343 :base-extension "css\\|el"
@@ -7145,7 +7350,7 @@ right place on the webserver, and publishing images to it.
7145@section Triggering publication 7350@section Triggering publication
7146 7351
7147Once org-publish is properly configured, you can publish with the 7352Once org-publish is properly configured, you can publish with the
7148following functions: 7353following functions:
7149 7354
7150@table @kbd 7355@table @kbd
7151@item C-c C-e C 7356@item C-c C-e C
@@ -7311,31 +7516,33 @@ showall @r{no folding at all, show everything}
7311Then there are options for aligning tables upon visiting a file. This 7516Then there are options for aligning tables upon visiting a file. This
7312is useful in files containing narrowed table columns. The corresponding 7517is useful in files containing narrowed table columns. The corresponding
7313variable is @code{org-startup-align-all-tables}, with a default value 7518variable is @code{org-startup-align-all-tables}, with a default value
7314@code{nil}. 7519@code{nil}.
7315@cindex @code{align}, STARTUP keyword 7520@cindex @code{align}, STARTUP keyword
7316@cindex @code{noalign}, STARTUP keyword 7521@cindex @code{noalign}, STARTUP keyword
7317@example 7522@example
7318align @r{align all tables} 7523align @r{align all tables}
7319noalign @r{don't align tables on startup} 7524noalign @r{don't align tables on startup}
7320@end example 7525@end example
7321Logging TODO state changes and clock intervals (variables 7526Logging closing and reinstating TODO items, and clock intervals
7322@code{org-log-done} and @code{org-log-repeat}) can be configured using 7527(variables @code{org-log-done}, @code{org-log-note-clock-out}, and
7323these options. 7528@code{org-log-repeat}) can be configured using these options.
7324@cindex @code{logdone}, STARTUP keyword 7529@cindex @code{logdone}, STARTUP keyword
7325@cindex @code{nologging}, STARTUP keyword
7326@cindex @code{lognotedone}, STARTUP keyword 7530@cindex @code{lognotedone}, STARTUP keyword
7531@cindex @code{nologdone}, STARTUP keyword
7327@cindex @code{lognoteclock-out}, STARTUP keyword 7532@cindex @code{lognoteclock-out}, STARTUP keyword
7328@cindex @code{lognotestate}, STARTUP keyword 7533@cindex @code{nolognoteclock-out}, STARTUP keyword
7329@cindex @code{logrepeat}, STARTUP keyword 7534@cindex @code{logrepeat}, STARTUP keyword
7535@cindex @code{lognoterepeat}, STARTUP keyword
7330@cindex @code{nologrepeat}, STARTUP keyword 7536@cindex @code{nologrepeat}, STARTUP keyword
7331@example 7537@example
7332logging @r{record a timestamp when an item is marked DONE} 7538logdone @r{record a timestamp when an item is marked DONE}
7333nologging @r{don't record when items are marked DONE} 7539lognotedone @r{record timestamp and a note when DONE}
7334lognotedone @r{record timestamp and a note when DONE} 7540nologdone @r{don't record when items are marked DONE}
7335lognotestate @r{record timestamp and a note when TODO state changes} 7541logrepeat @r{record a time when reinstating a repeating item}
7336logrepeat @r{record a note when re-instating a repeating item} 7542lognoterepeat @r{record a note when reinstating a repeating item}
7337nologrepeat @r{do not record when re-instating repeating item} 7543nologrepeat @r{do not record when reinstating repeating item}
7338lognoteclock-out @r{record timestamp and a note when clocking out} 7544lognoteclock-out @r{record a note when clocking out}
7545nolognoteclock-out @r{don't record a note when clocking out}
7339@end example 7546@end example
7340Here are the options for hiding leading stars in outline headings. The 7547Here are the options for hiding leading stars in outline headings. The
7341corresponding variables are @code{org-hide-leading-stars} and 7548corresponding variables are @code{org-hide-leading-stars} and
@@ -7400,7 +7607,7 @@ tree, or from clock display, remove these highlights.
7400@item 7607@item
7401If the cursor is in one of the special @code{#+KEYWORD} lines, this 7608If the cursor is in one of the special @code{#+KEYWORD} lines, this
7402triggers scanning the buffer for these lines and updating the 7609triggers scanning the buffer for these lines and updating the
7403information. 7610information.
7404@item 7611@item
7405If the cursor is inside a table, realign the table. This command 7612If the cursor is inside a table, realign the table. This command
7406works even if the automatic table editor has been turned off. 7613works even if the automatic table editor has been turned off.
@@ -7616,7 +7823,7 @@ La@TeX{} fragments into Org-mode files. See @ref{CDLaTeX mode}.
7616Imenu allows menu access to an index of items in a file. Org-mode 7823Imenu allows menu access to an index of items in a file. Org-mode
7617supports imenu - all you need to do to get the index is the following: 7824supports imenu - all you need to do to get the index is the following:
7618@lisp 7825@lisp
7619(add-hook 'org-mode-hook 7826(add-hook 'org-mode-hook
7620 (lambda () 'imenu-add-to-menubar "Imenu")) 7827 (lambda () 'imenu-add-to-menubar "Imenu"))
7621@end lisp 7828@end lisp
7622By default the index is two levels deep - you can modify the depth using 7829By default the index is two levels deep - you can modify the depth using
@@ -7884,7 +8091,7 @@ You would activate this new link type in @file{.emacs} with
7884@noindent 8091@noindent
7885Lets go through the file and see what it does. 8092Lets go through the file and see what it does.
7886@enumerate 8093@enumerate
7887@item 8094@item
7888It does @code{(require 'org)} to make sure that @file{org.el} has been 8095It does @code{(require 'org)} to make sure that @file{org.el} has been
7889loaded. 8096loaded.
7890@item 8097@item
@@ -8005,7 +8212,7 @@ number of different solutions:
8005The table could be placed in a block comment if that is supported by the 8212The table could be placed in a block comment if that is supported by the
8006language. For example, in C-mode you could wrap the table between 8213language. For example, in C-mode you could wrap the table between
8007@samp{/*} and @samp{*/} lines. 8214@samp{/*} and @samp{*/} lines.
8008@item 8215@item
8009Sometimes it is possible to put the table after some kind of @i{END} 8216Sometimes it is possible to put the table after some kind of @i{END}
8010statement, for example @samp{\bye} in TeX and @samp{\end@{document@}} 8217statement, for example @samp{\bye} in TeX and @samp{\end@{document@}}
8011in La@TeX{}. 8218in La@TeX{}.
@@ -8215,7 +8422,7 @@ Use @code{ORGLST} instead of @code{ORGTBL}.
8215@item 8422@item
8216The available translation functions for radio lists don't take 8423The available translation functions for radio lists don't take
8217parameters. 8424parameters.
8218@item 8425@item
8219`C-c C-c' will work when pressed on the first item of the list. 8426`C-c C-c' will work when pressed on the first item of the list.
8220@end itemize 8427@end itemize
8221 8428
@@ -8270,8 +8477,11 @@ Update all dynamic blocks in the current file.
8270 8477
8271Updating a dynamic block means to remove all the text between BEGIN and 8478Updating a dynamic block means to remove all the text between BEGIN and
8272END, parse the BEGIN line for parameters and then call the specific 8479END, parse the BEGIN line for parameters and then call the specific
8273writer function for this block to insert the new content. For a block 8480writer function for this block to insert the new content. If you want
8274with name @code{myblock}, the writer function is 8481to use the original content in the writer function, you can use the
8482extra parameter @code{:content}.
8483
8484For a block with name @code{myblock}, the writer function is
8275@code{org-dblock-write:myblock} with as only parameter a property list 8485@code{org-dblock-write:myblock} with as only parameter a property list
8276with the parameters given in the begin line. Here is a trivial example 8486with the parameters given in the begin line. Here is a trivial example
8277of a block that keeps track of when the block update function was last 8487of a block that keeps track of when the block update function was last
@@ -8487,6 +8697,8 @@ HTML agendas.
8487@item 8697@item
8488@i{Nic Ferrier} contributed mailcap and XOXO support. 8698@i{Nic Ferrier} contributed mailcap and XOXO support.
8489@item 8699@item
8700@i{Miguel A. Figueroa-Villanueva} implemented hierarchical checkboxes.
8701@item
8490@i{John Foerch} figured out how to make incremental search show context 8702@i{John Foerch} figured out how to make incremental search show context
8491around a match in a hidden outline tree. 8703around a match in a hidden outline tree.
8492@item 8704@item
@@ -8607,3 +8819,4 @@ and contributed various ideas and code snippets.
8607@ignore 8819@ignore
8608 arch-tag: 7893d1fe-cc57-4d13-b5e5-f494a1bcc7ac 8820 arch-tag: 7893d1fe-cc57-4d13-b5e5-f494a1bcc7ac
8609@end ignore 8821@end ignore
8822)