aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Dominik2007-06-06 15:15:11 +0000
committerCarsten Dominik2007-06-06 15:15:11 +0000
commit31e5288cd8d93f111e021c7c901ce8113faf3dc7 (patch)
treeffd66f9374e26467cf7cc28cce9e6a20150c0666
parenta3fbe8c4e5d022d61e14ab6d73d045b2cf2b2074 (diff)
downloademacs-31e5288cd8d93f111e021c7c901ce8113faf3dc7.tar.gz
emacs-31e5288cd8d93f111e021c7c901ce8113faf3dc7.zip
Large number of changes.
-rw-r--r--etc/ChangeLog4
-rw-r--r--man/org.texi1433
2 files changed, 1008 insertions, 429 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 8a184d5f5e9..565c7c1b989 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
12007-06-06 Carsten Dominik <dominik@science.uva.nl>
2
3 * orgcard.tex: Version 4.77.
4
12007-06-05 Michael Albinus <michael.albinus@gmx.de> 52007-06-05 Michael Albinus <michael.albinus@gmx.de>
2 6
3 * NEWS: Add socks.el as new package. 7 * NEWS: Add socks.el as new package.
diff --git a/man/org.texi b/man/org.texi
index aacc2929d13..22d217c1c89 100644
--- a/man/org.texi
+++ b/man/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 4.67 6@set VERSION 4.77
7@set DATE February 2007 7@set DATE June 2007
8 8
9@dircategory Emacs 9@dircategory Emacs
10@direntry 10@direntry
@@ -89,7 +89,6 @@ Software Foundation raise funds for GNU development.''
89* Miscellaneous:: All the rest which did not fit elsewhere 89* Miscellaneous:: All the rest which did not fit elsewhere
90* Extensions and Hacking:: It is possible to write add-on code 90* Extensions and Hacking:: It is possible to write add-on code
91* History and Acknowledgments:: How Org-mode came into being 91* History and Acknowledgments:: How Org-mode came into being
92* GNU Free Documentation License:: The license for this documentation.
93* Index:: The fast road to specific information 92* Index:: The fast road to specific information
94* Key Index:: Key bindings and where they are described 93* Key Index:: Key bindings and where they are described
95 94
@@ -123,6 +122,7 @@ Tables
123 122
124* Built-in table editor:: Simple tables 123* Built-in table editor:: Simple tables
125* Narrow columns:: Stop wasting space in tables 124* Narrow columns:: Stop wasting space in tables
125* Column groups:: Grouping to trigger vertical lines
126* orgtbl-mode:: The table editor as minor mode 126* orgtbl-mode:: The table editor as minor mode
127* The spreadsheet:: The table editor has spreadsheet capabilities. 127* The spreadsheet:: The table editor has spreadsheet capabilities.
128 128
@@ -163,26 +163,32 @@ TODO items
163* TODO basics:: Marking and displaying TODO entries 163* TODO basics:: Marking and displaying TODO entries
164* TODO extensions:: Workflow and assignments 164* TODO extensions:: Workflow and assignments
165* Priorities:: Some things are more important than others 165* Priorities:: Some things are more important than others
166* Breaking down tasks:: Splitting a task into managable pieces 166* Breaking down tasks:: Splitting a task into manageable pieces
167* Checkboxes:: Tick-off lists 167* Checkboxes:: Tick-off lists
168 168
169Extended use of TODO keywords 169Extended use of TODO keywords
170 170
171* Workflow states:: From TODO to DONE in steps 171* Workflow states:: From TODO to DONE in steps
172* TODO types:: I do this, Fred the rest 172* TODO types:: I do this, Fred the rest
173* Multiple sets in one file:: Mixing it all, and still finding your way
173* Per file keywords:: Different files, different requirements 174* Per file keywords:: Different files, different requirements
174 175
175Timestamps 176Timestamps
176 177
177* Time stamps:: Assigning a time to a tree entry 178* Time stamps:: Assigning a time to a tree entry
178* Creating timestamps:: Commands which insert timestamps 179* Creating timestamps:: Commands which insert timestamps
179* Custom time format:: If you cannot work with the ISO format 180* Deadlines and scheduling:: Planning your work
180* Repeating items:: Deadlines that come back again and again
181* Progress logging:: Documenting when what work was done. 181* Progress logging:: Documenting when what work was done.
182 182
183Creating timestamps 183Creating timestamps
184 184
185* The date/time prompt:: How org-mode helps you entering date and time 185* The date/time prompt:: How org-mode helps you entering date and time
186* Custom time format:: Making dates look differently
187
188Deadlines and Scheduling
189
190* Inserting deadline/schedule::
191* Repeated tasks::
186 192
187Progress Logging 193Progress Logging
188 194
@@ -224,7 +230,8 @@ Custom agenda views
224* Storing searches:: Type once, use often 230* Storing searches:: Type once, use often
225* Block agenda:: All the stuff you need in a single buffer 231* Block agenda:: All the stuff you need in a single buffer
226* Setting Options:: Changing the rules 232* Setting Options:: Changing the rules
227* Batch processing:: Agenda views from the command line 233* Exporting Agenda Views:: Writing agendas to files.
234* Extracting Agenda Information for other programs::
228 235
229Embedded LaTeX 236Embedded LaTeX
230 237
@@ -244,7 +251,7 @@ Exporting
244 251
245HTML export 252HTML export
246 253
247* Export commands:: How to invode HTML export 254* Export commands:: How to invoke HTML export
248* Quoting HTML tags:: Using direct HTML in Org-mode 255* Quoting HTML tags:: Using direct HTML in Org-mode
249* Links:: How hyperlinks get transferred to HTML 256* Links:: How hyperlinks get transferred to HTML
250* Images:: To inline or not to inline? 257* Images:: To inline or not to inline?
@@ -253,6 +260,8 @@ HTML export
253Text interpretation by the exporter 260Text interpretation by the exporter
254 261
255* Comment lines:: Some lines will not be exported 262* Comment lines:: Some lines will not be exported
263* Initial text:: Text before the first headline
264* Footnotes:: Numbers like [1]
256* Enhancing text:: Subscripts, symbols and more 265* Enhancing text:: Subscripts, symbols and more
257* Export options:: How to influence the export settings 266* Export options:: How to influence the export settings
258 267
@@ -371,7 +380,7 @@ example as:
371Org-mode's automatic, context sensitive table editor with spreadsheet 380Org-mode's automatic, context sensitive table editor with spreadsheet
372capabilities can be integrated into any major mode by activating the 381capabilities can be integrated into any major mode by activating the
373minor Orgtbl-mode. Using a translation step, it can be used to maintain 382minor Orgtbl-mode. Using a translation step, it can be used to maintain
374tables in arbitray file types, for example in LaTeX. 383tables in arbitrary file types, for example in LaTeX.
375 384
376@cindex FAQ 385@cindex FAQ
377There is a website for Org-mode which provides links to the newest 386There is a website for Org-mode which provides links to the newest
@@ -578,8 +587,9 @@ key.
578@cindex outline tree 587@cindex outline tree
579 588
580Headlines define the structure of an outline tree. The headlines in 589Headlines define the structure of an outline tree. The headlines in
581Org-mode start with one or more stars, on the left margin. For 590Org-mode start with one or more stars, on the left margin@footnote{See
582example: 591the variable @code{org-special-ctrl-a} to configure special behavior of
592@kbd{C-a} in headlines.}. For example:
583 593
584@example 594@example
585* Top level headline 595* Top level headline
@@ -588,6 +598,7 @@ example:
588 some text 598 some text
589*** 3rd level 599*** 3rd level
590 more text 600 more text
601
591* Another top level headline 602* Another top level headline
592@end example 603@end example
593 604
@@ -595,6 +606,12 @@ example:
595outline that has whitespace followed by a single star as headline 606outline that has whitespace followed by a single star as headline
596starters. @ref{Clean view} describes a setup to realize this. 607starters. @ref{Clean view} describes a setup to realize this.
597 608
609An empty line after the end of a subtree is considered part of it and
610will be hidden when the subtree is folded. However, if you leave at
611least two empty lines, one empty line will remain visible after folding
612the subtree, in order to structure the collapsed view. See the
613variable @code{org-cycle-separator-lines} for modifying this behavior.
614
598@node Visibility cycling, Motion, Headlines, Document structure 615@node Visibility cycling, Motion, Headlines, Document structure
599@section Visibility cycling 616@section Visibility cycling
600@cindex cycling, visibility 617@cindex cycling, visibility
@@ -615,7 +632,7 @@ Org-mode uses just two commands, bound to @key{TAB} and
615@table @kbd 632@table @kbd
616@kindex @key{TAB} 633@kindex @key{TAB}
617@item @key{TAB} 634@item @key{TAB}
618@emph{Subtree cycling}: Rotate current subtree between the states 635@emph{Subtree cycling}: Rotate current subtree among the states
619 636
620@example 637@example
621,-> FOLDED -> CHILDREN -> SUBTREE --. 638,-> FOLDED -> CHILDREN -> SUBTREE --.
@@ -637,7 +654,7 @@ argument (@kbd{C-u @key{TAB}}), global cycling is invoked.
637@kindex S-@key{TAB} 654@kindex S-@key{TAB}
638@item S-@key{TAB} 655@item S-@key{TAB}
639@itemx C-u @key{TAB} 656@itemx C-u @key{TAB}
640@emph{Global cycling}: Rotate the entire buffer between the states 657@emph{Global cycling}: Rotate the entire buffer among the states
641 658
642@example 659@example
643,-> OVERVIEW -> CONTENTS -> SHOW ALL --. 660,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
@@ -662,13 +679,19 @@ level, all sibling headings.
662@kindex C-c C-x b 679@kindex C-c C-x b
663@item C-c C-x b 680@item C-c C-x b
664Show the current subtree in an indirect buffer@footnote{The indirect 681Show the current subtree in an indirect buffer@footnote{The indirect
665buffer (@pxref{Indirect Buffers,Indirect Buffers,Indirect 682buffer
666Buffers,emacs,GNU Emacs Manual}) will contain the entire buffer, but 683@ifinfo
667will be narrowed to the current tree. Editing the indirect buffer will 684(@pxref{Indirect Buffers,,,emacs,GNU Emacs Manual})
668also change the original buffer, but without affecting visibility in 685@end ifinfo
669that buffer.}. With numerical prefix ARG, go up to this level and then 686@ifnotinfo
670take that tree. If ARG is negative, go up that many levels. With 687(see the Emacs manual for more information about indirect buffers)
671@kbd{C-u} prefix, do not remove the previously used indirect buffer. 688@end ifnotinfo
689will contain the entire buffer, but will be narrowed to the current
690tree. Editing the indirect buffer will also change the original buffer,
691but without affecting visibility in that buffer.}. With numerical
692prefix ARG, go up to this level and then take that tree. If ARG is
693negative, go up that many levels. With @kbd{C-u} prefix, do not remove
694the previously used indirect buffer.
672@end table 695@end table
673 696
674When Emacs first visits an Org-mode file, the global state is set to 697When Emacs first visits an Org-mode file, the global state is set to
@@ -710,10 +733,16 @@ Backward to higher level heading.
710@item C-c C-j 733@item C-c C-j
711Jump to a different place without changing the current outline 734Jump to a different place without changing the current outline
712visibility. Shows the document structure in a temporary buffer, where 735visibility. Shows the document structure in a temporary buffer, where
713you can use visibility cycling (@key{TAB}) to find your destination. 736you can use the following keys to find your destination:
714After pressing @key{RET}, the cursor moves to the selected location in 737@example
715the original buffer, and the headings hierarchy above it is made 738@key{TAB} @r{Cycle visibility.}
716visible. 739@key{down} / @key{up} @r{Next/previous visible headline.}
740n / p @r{Next/previous visible headline.}
741f / b @r{Next/previous headline same level.}
742u @r{One level up.}
7430-9 @r{Digit argument.}
744@key{RET} @r{Select this location.}
745@end example
717@end table 746@end table
718 747
719@node Structure editing, Archiving, Motion, Document structure 748@node Structure editing, Archiving, Motion, Document structure
@@ -980,14 +1009,17 @@ bullet, lines must be indented or they will be seen as top-level
980headlines. Also, when you are hiding leading stars to get a clean 1009headlines. Also, when you are hiding leading stars to get a clean
981outline view, plain list items starting with a star are visually 1010outline view, plain list items starting with a star are visually
982indistinguishable from true headlines. In short: even though @samp{*} 1011indistinguishable from true headlines. In short: even though @samp{*}
983is supported, it may be better not to use it for plain list items} as 1012is supported, it may be better not to use it for plain list items.} as
984bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items 1013bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items
985belonging to the same list must have the same indentation on the first 1014belonging to the same list must have the same indentation on the first
986line. In particular, if an ordered list reaches number @samp{10.}, then 1015line. In particular, if an ordered list reaches number @samp{10.}, then
987the 2--digit numbers must be written left-aligned with the other numbers 1016the 2--digit numbers must be written left-aligned with the other numbers
988in the list. Indentation also determines the end of a list item. It 1017in the list. Indentation also determines the end of a list item. It
989ends before the next line that is indented like the bullet/number, or 1018ends before the next line that is indented like the bullet/number, or
990less. For example: 1019less. Empty lines are part of the previous item, so you can have
1020several paragraphs in one item. If you would like an emtpy line to
1021terminate all currently open plain lists, configure the variable
1022@code{org-empty-line-terminates-plain-lists}. Here is an for example:
991 1023
992@example 1024@example
993@group 1025@group
@@ -1078,6 +1110,7 @@ Emacs @file{calc} package.
1078@menu 1110@menu
1079* Built-in table editor:: Simple tables 1111* Built-in table editor:: Simple tables
1080* Narrow columns:: Stop wasting space in tables 1112* Narrow columns:: Stop wasting space in tables
1113* Column groups:: Grouping to trigger vertical lines
1081* orgtbl-mode:: The table editor as minor mode 1114* orgtbl-mode:: The table editor as minor mode
1082* The spreadsheet:: The table editor has spreadsheet capabilities. 1115* The spreadsheet:: The table editor has spreadsheet capabilities.
1083@end menu 1116@end menu
@@ -1141,16 +1174,16 @@ table. But it's easier just to start typing, like
1141@kindex C-c C-c 1174@kindex C-c C-c
1142@item C-c C-c 1175@item C-c C-c
1143Re-align the table without moving the cursor. 1176Re-align the table without moving the cursor.
1144 1177@c
1145@kindex @key{TAB} 1178@kindex @key{TAB}
1146@item @key{TAB} 1179@item @key{TAB}
1147Re-align the table, move to the next field. Creates a new row if 1180Re-align the table, move to the next field. Creates a new row if
1148necessary. 1181necessary.
1149 1182@c
1150@kindex S-@key{TAB} 1183@kindex S-@key{TAB}
1151@item S-@key{TAB} 1184@item S-@key{TAB}
1152Re-align, move to previous field. 1185Re-align, move to previous field.
1153 1186@c
1154@kindex @key{RET} 1187@kindex @key{RET}
1155@item @key{RET} 1188@item @key{RET}
1156Re-align the table and move down to next row. Creates a new row if 1189Re-align the table and move down to next row. Creates a new row if
@@ -1163,34 +1196,34 @@ NEWLINE, so it can be used to split a table.
1163@item M-@key{left} 1196@item M-@key{left}
1164@itemx M-@key{right} 1197@itemx M-@key{right}
1165Move the current column left/right. 1198Move the current column left/right.
1166 1199@c
1167@kindex M-S-@key{left} 1200@kindex M-S-@key{left}
1168@item M-S-@key{left} 1201@item M-S-@key{left}
1169Kill the current column. 1202Kill the current column.
1170 1203@c
1171@kindex M-S-@key{right} 1204@kindex M-S-@key{right}
1172@item M-S-@key{right} 1205@item M-S-@key{right}
1173Insert a new column to the left of the cursor position. 1206Insert a new column to the left of the cursor position.
1174 1207@c
1175@kindex M-@key{up} 1208@kindex M-@key{up}
1176@kindex M-@key{down} 1209@kindex M-@key{down}
1177@item M-@key{up} 1210@item M-@key{up}
1178@itemx M-@key{down} 1211@itemx M-@key{down}
1179Move the current row up/down. 1212Move the current row up/down.
1180 1213@c
1181@kindex M-S-@key{up} 1214@kindex M-S-@key{up}
1182@item M-S-@key{up} 1215@item M-S-@key{up}
1183Kill the current row or horizontal line. 1216Kill the current row or horizontal line.
1184 1217@c
1185@kindex M-S-@key{down} 1218@kindex M-S-@key{down}
1186@item M-S-@key{down} 1219@item M-S-@key{down}
1187Insert a new row above (with arg: below) the current row. 1220Insert a new row above (with arg: below) the current row.
1188 1221@c
1189@kindex C-c - 1222@kindex C-c -
1190@item C-c - 1223@item C-c -
1191Insert a horizontal line below current row. With prefix arg, the line 1224Insert a horizontal line below current row. With prefix arg, the line
1192is created above the current line. 1225is created above the current line.
1193 1226@c
1194@kindex C-c ^ 1227@kindex C-c ^
1195@item C-c ^ 1228@item C-c ^
1196Sort the table lines in the region. The position of point indicates the 1229Sort the table lines in the region. The position of point indicates the
@@ -1209,10 +1242,12 @@ argument, alphabetic sorting will be case-sensitive.
1209Copy a rectangular region from a table to a special clipboard. Point 1242Copy a rectangular region from a table to a special clipboard. Point
1210and mark determine edge fields of the rectangle. The process ignores 1243and mark determine edge fields of the rectangle. The process ignores
1211horizontal separator lines. 1244horizontal separator lines.
1245@c
1212@kindex C-c C-x C-w 1246@kindex C-c C-x C-w
1213@item C-c C-x C-w 1247@item C-c C-x C-w
1214Copy a rectangular region from a table to a special clipboard, and 1248Copy a rectangular region from a table to a special clipboard, and
1215blank all fields in the rectangle. So this is the ``cut'' operation. 1249blank all fields in the rectangle. So this is the ``cut'' operation.
1250@c
1216@kindex C-c C-x C-y 1251@kindex C-c C-x C-y
1217@item C-c C-x C-y 1252@item C-c C-x C-y
1218Paste a rectangular region into a table. 1253Paste a rectangular region into a table.
@@ -1220,6 +1255,7 @@ The upper right corner ends up in the current field. All involved fields
1220will be overwritten. If the rectangle does not fit into the present table, 1255will be overwritten. If the rectangle does not fit into the present table,
1221the table is enlarged as needed. The process ignores horizontal separator 1256the table is enlarged as needed. The process ignores horizontal separator
1222lines. 1257lines.
1258@c
1223@kindex C-c C-q 1259@kindex C-c C-q
1224@item C-c C-q 1260@item C-c C-q
1225Wrap several fields in a column like a paragraph. If there is an active 1261Wrap several fields in a column like a paragraph. If there is an active
@@ -1235,7 +1271,6 @@ above.
1235@tsubheading{Calculations} 1271@tsubheading{Calculations}
1236@cindex formula, in tables 1272@cindex formula, in tables
1237@cindex calculations, in tables 1273@cindex calculations, in tables
1238
1239@cindex region, active 1274@cindex region, active
1240@cindex active region 1275@cindex active region
1241@cindex transient-mark-mode 1276@cindex transient-mark-mode
@@ -1244,7 +1279,7 @@ above.
1244Sum the numbers in the current column, or in the rectangle defined by 1279Sum the numbers in the current column, or in the rectangle defined by
1245the active region. The result is shown in the echo area and can 1280the active region. The result is shown in the echo area and can
1246be inserted with @kbd{C-y}. 1281be inserted with @kbd{C-y}.
1247 1282@c
1248@kindex S-@key{RET} 1283@kindex S-@key{RET}
1249@item S-@key{RET} 1284@item S-@key{RET}
1250When current field is empty, copy from first non-empty field above. 1285When current field is empty, copy from first non-empty field above.
@@ -1261,12 +1296,12 @@ Edit the current field in a separate window. This is useful for fields
1261that are not fully visible (@pxref{Narrow columns}). When called with a 1296that are not fully visible (@pxref{Narrow columns}). When called with a
1262@kbd{C-u} prefix, just make the full field visible, so that it can be 1297@kbd{C-u} prefix, just make the full field visible, so that it can be
1263edited in place. 1298edited in place.
1264 1299@c
1265@kindex C-c @key{TAB} 1300@kindex C-c @key{TAB}
1266@item C-c @key{TAB} 1301@item C-c @key{TAB}
1267This is an alias for @kbd{C-u C-c `} to make the current field fully 1302This is an alias for @kbd{C-u C-c `} to make the current field fully
1268visible. 1303visible.
1269 1304@c
1270@item M-x org-table-import 1305@item M-x org-table-import
1271Import a file as a table. The table should be TAB- or whitespace 1306Import a file as a table. The table should be TAB- or whitespace
1272separated. Useful, for example, to import an Excel table or data from a 1307separated. Useful, for example, to import an Excel table or data from a
@@ -1274,11 +1309,14 @@ database, because these programs generally can write TAB-separated text
1274files. This command works by inserting the file into the buffer and 1309files. This command works by inserting the file into the buffer and
1275then converting the region to a table. Any prefix argument is passed on 1310then converting the region to a table. Any prefix argument is passed on
1276to the converter, which uses it to determine the separator. 1311to the converter, which uses it to determine the separator.
1277 1312@item C-c |
1313Tables can also be imported by pasting tabular text into the org-mode
1314buffer, selecting the pasted text with @kbd{C-x C-x} and then using the
1315@kbd{C-c |} command (see above under @i{Creation and conversion}.
1316@c
1278@item M-x org-table-export 1317@item M-x org-table-export
1279Export the table as a TAB-separated file. Useful for data exchange with, 1318Export the table as a TAB-separated file. Useful for data exchange with,
1280for example, Excel or database programs. 1319for example, Excel or database programs.
1281
1282@end table 1320@end table
1283 1321
1284If you don't like the automatic table editor because it gets in your 1322If you don't like the automatic table editor because it gets in your
@@ -1292,7 +1330,7 @@ it off with
1292@noindent Then the only table command that still works is 1330@noindent Then the only table command that still works is
1293@kbd{C-c C-c} to do a manual re-align. 1331@kbd{C-c C-c} to do a manual re-align.
1294 1332
1295@node Narrow columns, orgtbl-mode, Built-in table editor, Tables 1333@node Narrow columns, Column groups, Built-in table editor, Tables
1296@section Narrow columns 1334@section Narrow columns
1297@cindex narrow columns in tables 1335@cindex narrow columns in tables
1298 1336
@@ -1320,7 +1358,7 @@ value.
1320@noindent 1358@noindent
1321Fields that are wider become clipped and end in the string @samp{=>}. 1359Fields that are wider become clipped and end in the string @samp{=>}.
1322Note that the full text is still in the buffer, it is only invisible. 1360Note that the full text is still in the buffer, it is only invisible.
1323To see the full text, hold the mouse over the field - a tooltip window 1361To see the full text, hold the mouse over the field - a tool-tip window
1324will show the full content. To edit such a field, use the command 1362will show the full content. To edit such a field, use the command
1325@kbd{C-c `} (that is @kbd{C-c} followed by the backquote). This will 1363@kbd{C-c `} (that is @kbd{C-c} followed by the backquote). This will
1326open a new window with the full field. Edit it and finish with @kbd{C-c 1364open a new window with the full field. Edit it and finish with @kbd{C-c
@@ -1338,7 +1376,42 @@ on a per-file basis with:
1338#+STARTUP: noalign 1376#+STARTUP: noalign
1339@end example 1377@end example
1340 1378
1341@node orgtbl-mode, The spreadsheet, Narrow columns, Tables 1379@node Column groups, orgtbl-mode, Narrow columns, Tables
1380@section Column groups
1381@cindex grouping columns in tables
1382
1383When Org-mode exports tables, it does so by default without vertical
1384lines because that is visually more satisfying in general. Occasionally
1385however, vertical lines can be useful to structure a table into groups
1386of columns, much like horizontal lines can do for groups of rows. In
1387order to specify column groups, you can use a special row where the
1388first field contains only @samp{/}. The further fields can either
1389contain @samp{<} to indicate that this column should start a group,
1390@samp{>} to indicate the end of a column, or @samp{<>} to make a column
1391a group of its own. Boundaries between colum groups will upon export be
1392marked with vertical lines. Here is an example:
1393
1394@example
1395| | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
1396|---+----+-----+-----+-----+---------+------------|
1397| / | <> | < | | > | < | > |
1398| # | 1 | 1 | 1 | 1 | 1 | 1 |
1399| # | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 |
1400| # | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 |
1401|---+----+-----+-----+-----+---------+------------|
1402#+TBLFM: $3=$2^2::$4=$2^3::$5=$2^4::$6=sqrt($2)::$7=sqrt(sqrt(($2))
1403@end example
1404
1405It is also sufficient to just insert the colum group starters after
1406every vertical line you'd like to have:
1407
1408@example
1409| N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
1410|----+-----+-----+-----+---------+------------|
1411| / | < | | | < | |
1412@end example
1413
1414@node orgtbl-mode, The spreadsheet, Column groups, Tables
1342@section The Orgtbl minor mode 1415@section The Orgtbl minor mode
1343@cindex orgtbl-mode 1416@cindex orgtbl-mode
1344@cindex minor mode for tables 1417@cindex minor mode for tables
@@ -1356,7 +1429,7 @@ example in mail mode, use
1356Furthermore, with some special setup, it is possible to maintain tables 1429Furthermore, with some special setup, it is possible to maintain tables
1357in arbitrary syntax with Orgtbl-mode. For example, it is possible to 1430in arbitrary syntax with Orgtbl-mode. For example, it is possible to
1358construct LaTeX tables with the underlying ease and power of 1431construct LaTeX tables with the underlying ease and power of
1359Orgtbl-mode, including spreadsheet capabulities. For details, see 1432Orgtbl-mode, including spreadsheet capabilities. For details, see
1360@ref{Tables in arbitrary syntax}. 1433@ref{Tables in arbitrary syntax}.
1361 1434
1362@node The spreadsheet, , orgtbl-mode, Tables 1435@node The spreadsheet, , orgtbl-mode, Tables
@@ -1367,7 +1440,12 @@ Orgtbl-mode, including spreadsheet capabulities. For details, see
1367 1440
1368The table editor makes use of the Emacs @file{calc} package to implement 1441The table editor makes use of the Emacs @file{calc} package to implement
1369spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to 1442spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to
1370derive fields from other fields. 1443derive fields from other fields. While fully featured, Org-mode's
1444implementation is not identical to other spreadsheets. For example,
1445Org-mode knows the concept of a @emph{column formula} that will be
1446applied to all non-header fields in a column without having to copy the
1447formula to each relevant field.
1448
1371@menu 1449@menu
1372* References:: How to refer to another field or range 1450* References:: How to refer to another field or range
1373* Formula syntax for Calc:: Using Calc to compute stuff 1451* Formula syntax for Calc:: Using Calc to compute stuff
@@ -1387,17 +1465,26 @@ To compute fields in the table from other fields, formulas must
1387reference other fields or ranges. In Org-mode, fields can be referenced 1465reference other fields or ranges. In Org-mode, fields can be referenced
1388by name, by absolute coordinates, and by relative coordinates. To find 1466by name, by absolute coordinates, and by relative coordinates. To find
1389out what the coordinates of a field are, press @kbd{C-c ?} in that 1467out what the coordinates of a field are, press @kbd{C-c ?} in that
1390field. 1468field, or press @kbd{C-c @}} to toggle the display of a grid.
1391 1469
1392@subsubheading Field references 1470@subsubheading Field references
1393@cindex field references 1471@cindex field references
1394@cindex references, to fields 1472@cindex references, to fields
1395 1473
1396Formulas can reference the value of another field with the operator 1474Formulas can reference the value of another field in two ways. Like in
1475any other spreadsheet, you may reference fields with a letter/number
1476combination like @code{B3}, meaning the 2nd field in the 3rd row.
1477@c Such references are always fixed to that field, they don't change
1478@c when you copy and paste a formula to a different field. So
1479@c Org-mode's @code{B3} behaves like @code{$B$3} in other spreadsheets.
1480
1481@noindent
1482Org-mode also uses another, more general operator that looks like this:
1397@example 1483@example
1398@@row$column 1484@@row$column
1399@end example 1485@end example
1400 1486
1487@noindent
1401Column references can be absolute like @samp{1}, @samp{2},...@samp{N}, 1488Column references can be absolute like @samp{1}, @samp{2},...@samp{N},
1402or relative to the current column like @samp{+1} or @samp{-2}. 1489or relative to the current column like @samp{+1} or @samp{-2}.
1403 1490
@@ -1417,18 +1504,20 @@ directly at the hline is used.
1417either the column or the row part of the reference, the current 1504either the column or the row part of the reference, the current
1418row/column is implied. 1505row/column is implied.
1419 1506
1420Org-mode's references with @emph{positive} numbers correspond to fixed 1507Org-mode's references with @emph{unsigned} numbers are fixed references
1421references in other spreadsheet programs. For example, @code{@@3$28} 1508in the sense that if you use the same reference in the formula for two
1422corresponds to @code{$AB$3}. Org-mode's references with @emph{negative} 1509different fields, the same field will be referenced each time.
1423numbers behave similar to non-fixed references in other spreadsheet 1510Org-mode's references with @emph{signed} numbers are floating
1424programs, because when the same formula is used in several fields, 1511references because the same reference operator can reference different
1425different fields are referenced each time. 1512fields depending on the field being calculated by the formula.
1426 1513
1427Here are a few examples: 1514Here are a few examples:
1428 1515
1429@example 1516@example
1430@@2$3 @r{2nd row, 3rd column} 1517@@2$3 @r{2nd row, 3rd column}
1518C2 @r{same as previous}
1431$5 @r{column 5 in the current row} 1519$5 @r{column 5 in the current row}
1520E& @r{same as previous}
1432@@2 @r{current column, row 2} 1521@@2 @r{current column, row 2}
1433@@-1$-3 @r{the field one row up, three columns to the left} 1522@@-1$-3 @r{the field one row up, three columns to the left}
1434@@-I$2 @r{field just under hline above current row, column 2} 1523@@-I$2 @r{field just under hline above current row, column 2}
@@ -1449,6 +1538,7 @@ format at least for the first field (i.e the reference must start with
1449$1..$3 @r{First three fields in the current row.} 1538$1..$3 @r{First three fields in the current row.}
1450$P..$Q @r{Range, using column names (see under Advanced)} 1539$P..$Q @r{Range, using column names (see under Advanced)}
1451@@2$1..@@4$3 @r{6 fields between these two fields.} 1540@@2$1..@@4$3 @r{6 fields between these two fields.}
1541A2..C4 @r{Same as above.}
1452@@-1$-2..@@-1 @r{3 numbers from the column to the left, 2 up to current row} 1542@@-1$-2..@@-1 @r{3 numbers from the column to the left, 2 up to current row}
1453@end example 1543@end example
1454 1544
@@ -1466,12 +1556,18 @@ see the @samp{E} mode switch below). If there are no non-empty fields,
1466 1556
1467@samp{$name} is interpreted as the name of a column, parameter or 1557@samp{$name} is interpreted as the name of a column, parameter or
1468constant. Constants are defined globally through the variable 1558constant. Constants are defined globally through the variable
1469@code{org-table-formula-constants}. If you have the 1559@code{org-table-formula-constants}. If you have the @file{constants.el}
1470@file{constants.el} package, it will also be used to resolve 1560package, it will also be used to resolve constants, including natural
1471constants, including natural constants like @samp{$h} for Planck's 1561constants like @samp{$h} for Planck's constant, and units like
1472constant, and units like @samp{$km} for kilometers. Column names and 1562@samp{$km} for kilometers@footnote{@file{Constant.el} can supply the
1473parameters can be specified in special table lines. These are 1563values of constants in two different unit systems, @code{SI} and
1474described below, see @ref{Advanced features}. 1564@code{cgs}. Which one is used depends on the value of the variable
1565@code{constants-unit-system}. You can use the @code{#+STARTUP} options
1566@code{constSI} and @code{constcgs} to set this value for the current
1567buffer.}. Column names and parameters can be specified in special table
1568lines. These are described below, see @ref{Advanced features}. All
1569names must start with a letter, and further consist of letters and
1570numbers.
1475 1571
1476@node Formula syntax for Calc, Formula syntax for Lisp, References, The spreadsheet 1572@node Formula syntax for Calc, Formula syntax for Lisp, References, The spreadsheet
1477@subsection Formula syntax for Calc 1573@subsection Formula syntax for Calc
@@ -1485,6 +1581,7 @@ non-standard convention that @samp{/} has lower precedence than
1485evaluation by @code{calc-eval} (@pxref{Calling Calc from 1581evaluation by @code{calc-eval} (@pxref{Calling Calc from
1486Your Programs,calc-eval,Calling calc from Your Lisp Programs,calc,GNU 1582Your Programs,calc-eval,Calling calc from Your Lisp Programs,calc,GNU
1487Emacs Calc Manual}), 1583Emacs Calc Manual}),
1584@c FIXME: The link to the calc manual in HTML does not work.
1488variable substitution takes place according to the rules described above. 1585variable substitution takes place according to the rules described above.
1489@cindex vectors, in table calculations 1586@cindex vectors, in table calculations
1490The range vectors can be directly fed into the calc vector functions 1587The range vectors can be directly fed into the calc vector functions
@@ -1518,7 +1615,7 @@ reformat the final result. A few examples:
1518$1+$2 @r{Sum of first and second field} 1615$1+$2 @r{Sum of first and second field}
1519$1+$2;%.2f @r{Same, format result to two decimals} 1616$1+$2;%.2f @r{Same, format result to two decimals}
1520exp($2)+exp($1) @r{Math functions can be used} 1617exp($2)+exp($1) @r{Math functions can be used}
1521$;%.1f @r{Reformat current cell to 1 decimal} 1618$0;%.1f @r{Reformat current cell to 1 decimal}
1522($3-32)*5/9 @r{Degrees F -> C conversion} 1619($3-32)*5/9 @r{Degrees F -> C conversion}
1523$c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}} 1620$c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}}
1524tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1} 1621tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1}
@@ -1528,21 +1625,28 @@ vmean($2..$7);EN @r{Same, but treat empty fields as 0}
1528taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} 1625taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree}
1529@end example 1626@end example
1530 1627
1628Calc also contains a complete set of logical operations. For example
1629
1630@example
1631if($1<20,teen,string("")) @r{``teen'' if age $1 less than 20, else empty}
1632@end example
1633
1531@node Formula syntax for Lisp, Field formulas, Formula syntax for Calc, The spreadsheet 1634@node Formula syntax for Lisp, Field formulas, Formula syntax for Calc, The spreadsheet
1532@subsection Emacs Lisp forms as formulas 1635@subsection Emacs Lisp forms as formulas
1533@cindex Lisp forms, as table formulas 1636@cindex Lisp forms, as table formulas
1534 1637
1535It is also possible to write a formula in Emacs Lisp; this can be useful 1638It is also possible to write a formula in Emacs Lisp; this can be useful
1536for string manipulation and control structures. If a formula starts 1639for string manipulation and control structures, if the Calc's
1537with a single quote followed by an opening parenthesis, then it is 1640functionality is not enough. If a formula starts with a single quote
1538evaluated as a lisp form. The evaluation should return either a string 1641followed by an opening parenthesis, then it is evaluated as a lisp form.
1539or a number. Just as with @file{calc} formulas, you can specify modes 1642The evaluation should return either a string or a number. Just as with
1540and a printf format after a semicolon. A reference will be replaced 1643@file{calc} formulas, you can specify modes and a printf format after a
1541with a string (in double quotes) containing the field. If you provide 1644semicolon. A reference will be replaced with a string (in double
1542the @samp{N} mode switch, all referenced elements will be numbers. 1645quotes) containing the field. If you provide the @samp{N} mode switch,
1543Ranges are inserted as space-separated fields, so you can embed them in 1646all referenced elements will be numbers. Ranges are inserted as
1544list or vector syntax. A few examples, note how the @samp{N} mode is 1647space-separated fields, so you can embed them in list or vector syntax.
1545used when we do computations in lisp. 1648A few examples, note how the @samp{N} mode is used when we do
1649computations in lisp.
1546 1650
1547@example 1651@example
1548@r{Swap the first two characters of the content of column 1} 1652@r{Swap the first two characters of the content of column 1}
@@ -1567,12 +1671,11 @@ evaluated, and the current field replaced with the result.
1567Formulas are stored in a special line starting with @samp{#+TBLFM:} 1671Formulas are stored in a special line starting with @samp{#+TBLFM:}
1568directly below the table. If you typed the equation in the 4th field of 1672directly below the table. If you typed the equation in the 4th field of
1569the 3rd data line in the table, the formula will look like 1673the 3rd data line in the table, the formula will look like
1570@samp{@@3$2=$1+$2}. When inserting/deleting/swapping column and rows 1674@samp{@@3$4=$1+$2}. When inserting/deleting/swapping column and rows
1571with the appropriate commands, @i{absolute references} (but not relative 1675with the appropriate commands, @i{absolute references} (but not relative
1572ones) in stored formulas are modified in order to 1676ones) in stored formulas are modified in order to still reference the
1573still reference the same field. Of cause this is not true if you edit 1677same field. Of cause this is not true if you edit the table structure
1574the table structure with normal editing commands - then you must go and 1678with normal editing commands - then you must fix the equations yourself.
1575fix equations yourself.
1576 1679
1577Instead of typing an equation into the field, you may also use the 1680Instead of typing an equation into the field, you may also use the
1578following command 1681following command
@@ -1593,7 +1696,9 @@ it to the current field and stores it.
1593Often in a table, the same formula should be used for all fields in a 1696Often in a table, the same formula should be used for all fields in a
1594particular column. Instead of having to copy the formula to all fields 1697particular column. Instead of having to copy the formula to all fields
1595in that column, org-mode allows to assign a single formula to an entire 1698in that column, org-mode allows to assign a single formula to an entire
1596column. 1699column. If the table contains horizontal separator hlines, everything
1700before the first such line is considered part of the table @emph{header}
1701and will not be modified by column formulas.
1597 1702
1598To assign a formula to a column, type it directly into any field in the 1703To assign a formula to a column, type it directly into any field in the
1599column, preceded by an equal sign, like @samp{=$1+$2}. When you press 1704column, preceded by an equal sign, like @samp{=$1+$2}. When you press
@@ -1626,7 +1731,11 @@ will apply it to that many consecutive fields in the current column.
1626 1731
1627You can edit individual formulas in the minibuffer or directly in the 1732You can edit individual formulas in the minibuffer or directly in the
1628field. Org-mode can also prepare a special buffer with all active 1733field. Org-mode can also prepare a special buffer with all active
1629formulas of a table. 1734formulas of a table. When offering a formula for editing, Org-mode
1735converts references to the standard format (like @code{B3} or @code{D&})
1736if possible. If you prefer to only work with the internal format (like
1737@code{@@3$2} or @code{$4}), configure the variable
1738@code{org-table-use-standard-references}.
1630 1739
1631@table @kbd 1740@table @kbd
1632@kindex C-c = 1741@kindex C-c =
@@ -1645,21 +1754,36 @@ minibuffer is that you can use the command @kbd{C-c ?}.
1645@item C-c ? 1754@item C-c ?
1646While editing a formula in a table field, highlight the field(s) 1755While editing a formula in a table field, highlight the field(s)
1647referenced by the reference at the cursor position in the formula. 1756referenced by the reference at the cursor position in the formula.
1757@kindex C-c @}
1758@item C-c @}
1759Toggle the display of row and column numbers for a table, using
1760overlays. These are updated each time the table is aligned, you can
1761force it with @kbd{C-c C-c}.
1762@kindex C-c @{
1763@item C-c @{
1764Toggle the formula debugger on and off. See below.
1648@kindex C-c ' 1765@kindex C-c '
1649@item C-c ' 1766@item C-c '
1650Edit all formulas for the current table in a special buffer, where the 1767Edit all formulas for the current table in a special buffer, where the
1651formulas will be displayed one per line. 1768formulas will be displayed one per line. If the current field has an
1769active formula, the cursor in the formula editor will mark it.
1652While inside the special buffer, Org-mode will automatically highlight 1770While inside the special buffer, Org-mode will automatically highlight
1653any field or range reference at the cursor position. You may edit, 1771any field or range reference at the cursor position. You may edit,
1654remove and add formulas, and use the following commands: 1772remove and add formulas, and use the following commands:
1655@table @kbd 1773@table @kbd
1656@kindex C-c C-c 1774@kindex C-c C-c
1775@kindex C-x C-s
1657@item C-c C-c 1776@item C-c C-c
1658Exit the buffer and store the modified formulas. With @kbd{C-u} prefix, 1777@itemx C-x C-s
1659also apply the new formulas to the entire table. 1778Exit the formula editor and store the modified formulas. With @kbd{C-u}
1779prefix, also apply the new formulas to the entire table.
1660@kindex C-c C-q 1780@kindex C-c C-q
1661@item C-c C-q 1781@item C-c C-q
1662Exit the buffer without installing changes. 1782Exit the formula editor without installing changes.
1783@kindex C-c C-r
1784@item C-c C-r
1785Toggle all references in the formula editor between standard (like
1786@code{B3}) and internal (like @code{@@3$2}).
1663@kindex @key{TAB} 1787@kindex @key{TAB}
1664@item @key{TAB} 1788@item @key{TAB}
1665Pretty-print or indent lisp formula at point. When in a line containing 1789Pretty-print or indent lisp formula at point. When in a line containing
@@ -1671,23 +1795,25 @@ formula, @key{TAB} re-indents just like in Emacs-lisp-mode.
1671Complete Lisp symbols, just like in Emacs-lisp-mode. 1795Complete Lisp symbols, just like in Emacs-lisp-mode.
1672@kindex S-@key{up} 1796@kindex S-@key{up}
1673@kindex S-@key{down} 1797@kindex S-@key{down}
1674@item S-@key{up}/@key{down} 1798@kindex S-@key{left}
1675Move the reference line in the Org-mode buffer up and down. This is 1799@kindex S-@key{right}
1676important for highlighting the references of column formulas for 1800@item S-@key{up}/@key{down}/@key{left}/@key{right}
1677different rows. 1801Shift the reference at point. For example, if the reference is
1802@code{B3} and you press @kbd{S-@key{right}}, it will become @code{C3}.
1803This also works for relative references, and for hline references.
1804@kindex M-S-@key{up}
1805@kindex M-S-@key{down}
1806@item M-S-@key{up}/@key{down}
1807Move the test line for column formulas in the Org-mode buffer up and
1808down.
1678@kindex M-@key{up} 1809@kindex M-@key{up}
1679@kindex M-@key{down} 1810@kindex M-@key{down}
1680@item M-@key{up}/@key{down} 1811@item M-@key{up}/@key{down}
1681Scroll the window displaying the table. 1812Scroll the window displaying the table.
1682@end table
1683@kindex C-c @} 1813@kindex C-c @}
1684@item C-c @} 1814@item C-c @}
1685Toggle the display of row and column numbers for a table, using 1815Turn the coordinate grid in the table on and off.
1686overlays. These are uptated each time the table is aligned, you can 1816@end table
1687force it with @kbd{C-c C-c}.
1688@kindex C-c @{
1689@item C-c @{
1690Toggle the formula debugger on and off. See below.
1691@end table 1817@end table
1692 1818
1693Making a table field blank does not remove the formula associated with 1819Making a table field blank does not remove the formula associated with
@@ -1708,8 +1834,8 @@ When the evaluation of a formula leads to an error, the field content
1708becomes the string @samp{#ERROR}. If you would like see what is going 1834becomes the string @samp{#ERROR}. If you would like see what is going
1709on during variable substitution and calculation in order to find a bug, 1835on during variable substitution and calculation in order to find a bug,
1710turn on formula debugging in the @code{Tbl} menu and repeat the 1836turn on formula debugging in the @code{Tbl} menu and repeat the
1711calculation, for example by pressing @kbd{C-c = @key{RET}} in a field. 1837calculation, for example by pressing @kbd{C-u C-u C-c = @key{RET}} in a
1712Detailed information will be displayed. 1838field. Detailed information will be displayed.
1713 1839
1714@node Updating the table, Advanced features, Editing and debugging formulas, The spreadsheet 1840@node Updating the table, Advanced features, Editing and debugging formulas, The spreadsheet
1715@subsection Updating the Table 1841@subsection Updating the Table
@@ -1728,14 +1854,14 @@ following commands:
1728@item C-c * 1854@item C-c *
1729Recalculate the current row by first applying the stored column formulas 1855Recalculate the current row by first applying the stored column formulas
1730from left to right, and all field formulas in the current row. 1856from left to right, and all field formulas in the current row.
1731 1857@c
1732@kindex C-u C-c * 1858@kindex C-u C-c *
1733@item C-u C-c * 1859@item C-u C-c *
1734@kindex C-u C-c C-c 1860@kindex C-u C-c C-c
1735@itemx C-u C-c C-c 1861@itemx C-u C-c C-c
1736Recompute the entire table, line by line. Any lines before the first 1862Recompute the entire table, line by line. Any lines before the first
1737hline are left alone, assuming that these are part of the table header. 1863hline are left alone, assuming that these are part of the table header.
1738 1864@c
1739@kindex C-u C-u C-c * 1865@kindex C-u C-u C-c *
1740@item C-u C-u C-c * 1866@item C-u C-u C-c *
1741Iterate the table by recomputing it until no further changes occur. 1867Iterate the table by recomputing it until no further changes occur.
@@ -1743,7 +1869,6 @@ This may be necessary if some computed fields use the value of other
1743fields that are computed @i{later} in the calculation sequence. 1869fields that are computed @i{later} in the calculation sequence.
1744@end table 1870@end table
1745 1871
1746
1747@node Advanced features, , Updating the table, The spreadsheet 1872@node Advanced features, , Updating the table, The spreadsheet
1748@subsection Advanced features 1873@subsection Advanced features
1749 1874
@@ -2058,7 +2183,7 @@ automatically created link is not working correctly or accurately
2058enough, you can write custom functions to select the search string and 2183enough, you can write custom functions to select the search string and
2059to do the search for particular file types - see @ref{Custom searches}. 2184to do the search for particular file types - see @ref{Custom searches}.
2060The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation}. 2185The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation}.
2061 2186@c
2062@kindex C-c C-l 2187@kindex C-c C-l
2063@cindex link completion 2188@cindex link completion
2064@cindex completion, of links 2189@cindex completion, of links
@@ -2068,24 +2193,26 @@ Insert a link. This prompts for a link to be inserted into the buffer.
2068You can just type a link, using text for an internal link, or one of the 2193You can just type a link, using text for an internal link, or one of the
2069link type prefixes mentioned in the examples above. All links stored 2194link type prefixes mentioned in the examples above. All links stored
2070during the current session are part of the history for this prompt, so 2195during the current session are part of the history for this prompt, so
2071you can access them with @key{up} and @key{down}, or with 2196you can access them with @key{up} and @key{down}. Completion, on the
2072completion@footnote{After insertion of a stored link, the link will be 2197other hand, will help you to insert valid link prefixes like
2073removed from the list of stored links. To keep it in the list later 2198@samp{http:} or @samp{ftp:}, including the prefixes defined through link
2199abbreviations (@pxref{Link abbreviations}). The link will be inserted
2200into the buffer@footnote{After insertion of a stored link, the link will
2201be removed from the list of stored links. To keep it in the list later
2074use, use a triple @kbd{C-u} prefix to @kbd{C-c C-l}, or configure the 2202use, use a triple @kbd{C-u} prefix to @kbd{C-c C-l}, or configure the
2075option @code{org-keep-stored-link-after-insertion}.}. The link will be 2203option @code{org-keep-stored-link-after-insertion}.}, along with a
2076inserted into the buffer, along with a descriptive text. If some text 2204descriptive text. If some text was selected when this command is
2077was selected when this command is called, the selected text becomes the 2205called, the selected text becomes the default description.@* Note that
2078default description.@* Note that you don't have to use this command to 2206you don't have to use this command to insert a link. Links in Org-mode
2079insert a link. Links in Org-mode are plain text, and you can type or 2207are plain text, and you can type or paste them straight into the buffer.
2080paste them straight into the buffer. By using this command, the links 2208By using this command, the links are automatically enclosed in double
2081are automatically enclosed in double brackets, and you will be asked for 2209brackets, and you will be asked for the optional descriptive text.
2082the optional descriptive text. 2210@c
2083
2084@c If the link is a @samp{file:} link and 2211@c If the link is a @samp{file:} link and
2085@c the linked file is located in the same directory as the current file or 2212@c the linked file is located in the same directory as the current file or
2086@c a subdirectory of it, the path of the file will be inserted relative to 2213@c a subdirectory of it, the path of the file will be inserted relative to
2087@c the current directory. 2214@c the current directory.
2088 2215@c
2089@kindex C-u C-c C-l 2216@kindex C-u C-c C-l
2090@cindex file name completion 2217@cindex file name completion
2091@cindex completion, of file names 2218@cindex completion, of file names
@@ -2098,11 +2225,11 @@ directory or in a subdirectory of it, or if the path is written relative
2098to the current directory using @samp{../}. Otherwise an absolute path 2225to the current directory using @samp{../}. Otherwise an absolute path
2099is used, if possible with @samp{~/} for your home directory. You can 2226is used, if possible with @samp{~/} for your home directory. You can
2100force an absolute path with two @kbd{C-u} prefixes. 2227force an absolute path with two @kbd{C-u} prefixes.
2101 2228@c
2102@item C-c C-l @r{with cursor on existing link} 2229@item C-c C-l @r{(with cursor on existing link)}
2103When the cursor is on an existing link, @kbd{C-c C-l} allows you to edit the 2230When the cursor is on an existing link, @kbd{C-c C-l} allows you to edit the
2104link and description parts of the link. 2231link and description parts of the link.
2105 2232@c
2106@cindex following links 2233@cindex following links
2107@kindex C-c C-o 2234@kindex C-c C-o
2108@item C-c C-o 2235@item C-c C-o
@@ -2118,26 +2245,26 @@ suitable application for local non-text files. Classification of files
2118is based on file extension only. See option @code{org-file-apps}. If 2245is based on file extension only. See option @code{org-file-apps}. If
2119you want to override the default application and visit the file with 2246you want to override the default application and visit the file with
2120Emacs, use a @kbd{C-u} prefix. 2247Emacs, use a @kbd{C-u} prefix.
2121 2248@c
2122@kindex mouse-2 2249@kindex mouse-2
2123@kindex mouse-1 2250@kindex mouse-1
2124@item mouse-2 2251@item mouse-2
2125@itemx mouse-1 2252@itemx mouse-1
2126On links, @kbd{mouse-2} will open the link just as @kbd{C-c C-o} 2253On links, @kbd{mouse-2} will open the link just as @kbd{C-c C-o}
2127would. Under Emacs 22, also @kbd{mouse-1} will follow a link. 2254would. Under Emacs 22, also @kbd{mouse-1} will follow a link.
2128 2255@c
2129@kindex mouse-3 2256@kindex mouse-3
2130@item mouse-3 2257@item mouse-3
2131Like @kbd{mouse-2}, but force file links to be opened with Emacs, and 2258Like @kbd{mouse-2}, but force file links to be opened with Emacs, and
2132internal links to be displayed in another window@footnote{See the 2259internal links to be displayed in another window@footnote{See the
2133variable @code{org-display-internal-link-with-indirect-buffer}}. 2260variable @code{org-display-internal-link-with-indirect-buffer}}.
2134 2261@c
2135@cindex mark ring 2262@cindex mark ring
2136@kindex C-c % 2263@kindex C-c %
2137@item C-c % 2264@item C-c %
2138Push the current position onto the mark ring, to be able to return 2265Push the current position onto the mark ring, to be able to return
2139easily. Commands following an internal link do this automatically. 2266easily. Commands following an internal link do this automatically.
2140 2267@c
2141@cindex links, returning to 2268@cindex links, returning to
2142@kindex C-c & 2269@kindex C-c &
2143@item C-c & 2270@item C-c &
@@ -2145,7 +2272,7 @@ Jump back to a recorded position. A position is recorded by the
2145commands following internal links, and by @kbd{C-c %}. Using this 2272commands following internal links, and by @kbd{C-c %}. Using this
2146command several times in direct succession moves through a ring of 2273command several times in direct succession moves through a ring of
2147previously recorded positions. 2274previously recorded positions.
2148 2275@c
2149@kindex C-c C-x C-n 2276@kindex C-c C-x C-n
2150@kindex C-c C-x C-p 2277@kindex C-c C-x C-p
2151@cindex links, finding next/previous 2278@cindex links, finding next/previous
@@ -2341,8 +2468,8 @@ use:
2341@noindent In these entries, the character specifies how to select the 2468@noindent In these entries, the character specifies how to select the
2342template. The first string specifies the template. Two more (optional) 2469template. The first string specifies the template. Two more (optional)
2343strings give the file in which, and the headline under which the new 2470strings give the file in which, and the headline under which the new
2344note should be stored. The file defaults to 2471note should be stored. The file defaults (if not present or @code{nil})
2345@code{org-default-notes-file}, the heading to 2472to @code{org-default-notes-file}, the heading to
2346@code{org-remember-default-headline}. Both defaults help to get to the 2473@code{org-remember-default-headline}. Both defaults help to get to the
2347storing location quickly, but you can change the location interactively 2474storing location quickly, but you can change the location interactively
2348while storing the note. 2475while storing the note.
@@ -2398,8 +2525,7 @@ calendar | %:date"
2398@end example 2525@end example
2399 2526
2400@noindent 2527@noindent
2401If you would like to have the cursor in a specific position after the 2528To place the cursor after template expansion use:
2402template has been expanded:
2403 2529
2404@example 2530@example
2405%? @r{After completing the template, position cursor here.} 2531%? @r{After completing the template, position cursor here.}
@@ -2408,7 +2534,7 @@ template has been expanded:
2408@noindent 2534@noindent
2409If you change you mind about which template to use, call 2535If you change you mind about which template to use, call
2410@code{org-remember} in the remember buffer. You may then select a new 2536@code{org-remember} in the remember buffer. You may then select a new
2411template that will be filled with the previoous context information. 2537template that will be filled with the previous context information.
2412 2538
2413@node Storing notes, , Remember templates, Remember 2539@node Storing notes, , Remember templates, Remember
2414@subsection Storing notes 2540@subsection Storing notes
@@ -2419,20 +2545,27 @@ target file - if you press @key{RET}, the value specified for the
2419template is used. Then the command offers the headings tree of the 2545template is used. Then the command offers the headings tree of the
2420selected file, with the cursor position at the default headline (if you 2546selected file, with the cursor position at the default headline (if you
2421had specified one in the template). You can either immediately press 2547had specified one in the template). You can either immediately press
2422@key{RET} to get the note placed there. Or you can use vertical cursor 2548@key{RET} to get the note placed there. Or you can use the following
2423motion (@key{up} and @key{down}) and visibility cycling (@key{TAB}) to 2549keys to find a better location:
2424find a better place. Pressing @key{RET} or @key{left} or @key{right} 2550@example
2551@key{TAB} @r{Cycle visibility.}
2552@key{down} / @key{up} @r{Next/previous visible headline.}
2553n / p @r{Next/previous visible headline.}
2554f / b @r{Next/previous headline same level.}
2555u @r{One level up.}
2556@c 0-9 @r{Digit argument.}
2557@end example
2558@noindent
2559Pressing @key{RET} or @key{left} or @key{right}
2425then leads to the following result. 2560then leads to the following result.
2426 2561
2427@multitable @columnfractions 0.2 0.1 0.7 2562@multitable @columnfractions 0.2 0.15 0.65
2428@item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted} 2563@item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted}
2429@item buffer-start @tab @key{RET} @tab as level 2 heading at end of file 2564@item buffer-start @tab @key{RET} @tab as level 2 heading at end of file
2430@item on headline @tab @key{RET} @tab as sublevel of the heading at cursor 2565@item on headline @tab @key{RET} @tab as sublevel of the heading at cursor
2431@item @tab @key{left} @tab as same level, before current heading 2566@item @tab @key{left}/@key{right} @tab as same level, before/after current heading
2432@item @tab @key{right} @tab as same level, after current heading
2433@item not on headline @tab @key{RET} 2567@item not on headline @tab @key{RET}
2434 @tab at cursor position, level taken from context. 2568 @tab at cursor position, level taken from context.
2435 Or use prefix arg to specify level manually.
2436@end multitable 2569@end multitable
2437 2570
2438So a fast way to store the note to its default location is to press 2571So a fast way to store the note to its default location is to press
@@ -2467,7 +2600,7 @@ things you have to do.
2467* TODO basics:: Marking and displaying TODO entries 2600* TODO basics:: Marking and displaying TODO entries
2468* TODO extensions:: Workflow and assignments 2601* TODO extensions:: Workflow and assignments
2469* Priorities:: Some things are more important than others 2602* Priorities:: Some things are more important than others
2470* Breaking down tasks:: Splitting a task into managable pieces 2603* Breaking down tasks:: Splitting a task into manageable pieces
2471* Checkboxes:: Tick-off lists 2604* Checkboxes:: Tick-off lists
2472@end menu 2605@end menu
2473 2606
@@ -2488,7 +2621,7 @@ The most important commands to work with TODO entries are:
2488@kindex C-c C-t 2621@kindex C-c C-t
2489@cindex cycling, of TODO states 2622@cindex cycling, of TODO states
2490@item C-c C-t 2623@item C-c C-t
2491Rotate the TODO state of the current item between 2624Rotate the TODO state of the current item among
2492 2625
2493@example 2626@example
2494,-> (unmarked) -> TODO -> DONE --. 2627,-> (unmarked) -> TODO -> DONE --.
@@ -2508,9 +2641,11 @@ useful if more than two TODO states are possible (@pxref{TODO extensions}).
2508@item C-c C-v 2641@item C-c C-v
2509View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds 2642View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds
2510the entire buffer, but shows all TODO items and the headings hierarchy 2643the entire buffer, but shows all TODO items and the headings hierarchy
2511above them. With prefix arg, show also the DONE entries. With 2644above them. With prefix arg, search for a specific TODO. You will be
2512numerical prefix N, show the tree for the Nth keyword in the variable 2645prompted for the keyword, and you can also give a list of keywords like
2513@code{org-todo-keywords}. 2646@code{kwd1|kwd2|...}. With numerical prefix N, show the tree for the
2647Nth keyword in the variable @code{org-todo-keywords}. With two prefix
2648args, find all TODO and DONE entries.
2514@kindex C-c a t 2649@kindex C-c a t
2515@item C-c a t 2650@item C-c a t
2516Show the global TODO list. This collects the TODO items from all 2651Show the global TODO list. This collects the TODO items from all
@@ -2523,16 +2658,14 @@ the TODO entries directly from that buffer (@pxref{Agenda commands}).
2523@c agenda, customize the variable @code{org-agenda-include-all-todo}. 2658@c agenda, customize the variable @code{org-agenda-include-all-todo}.
2524@end table 2659@end table
2525 2660
2526
2527@node TODO extensions, Priorities, TODO basics, TODO items 2661@node TODO extensions, Priorities, TODO basics, TODO items
2528@section Extended use of TODO keywords 2662@section Extended use of TODO keywords
2529@cindex extended TODO keywords 2663@cindex extended TODO keywords
2530 2664
2531The default implementation of TODO entries is just two states: TODO and 2665The default implementation of TODO entries is just two states: TODO and
2532DONE. You can, however, use the TODO feature for more complicated 2666DONE. You can use the TODO feature for more complicated things by
2533things by configuring the variables @code{org-todo-keywords} and 2667configuring the variable @code{org-todo-keywords}. With special setup,
2534@code{org-todo-interpretation}. Using special setup, you can even use 2668the TODO keyword system can work differently in different files.
2535TODO keywords in different ways in different org files.
2536 2669
2537Note that @i{tags} are another way to classify headlines in general and 2670Note that @i{tags} are another way to classify headlines in general and
2538TODO items in particular (@pxref{Tags}). 2671TODO items in particular (@pxref{Tags}).
@@ -2540,6 +2673,7 @@ TODO items in particular (@pxref{Tags}).
2540@menu 2673@menu
2541* Workflow states:: From TODO to DONE in steps 2674* Workflow states:: From TODO to DONE in steps
2542* TODO types:: I do this, Fred the rest 2675* TODO types:: I do this, Fred the rest
2676* Multiple sets in one file:: Mixing it all, and still finding your way
2543* Per file keywords:: Different files, different requirements 2677* Per file keywords:: Different files, different requirements
2544@end menu 2678@end menu
2545 2679
@@ -2548,103 +2682,149 @@ TODO items in particular (@pxref{Tags}).
2548@cindex TODO workflow 2682@cindex TODO workflow
2549@cindex workflow states as TODO keywords 2683@cindex workflow states as TODO keywords
2550 2684
2551You can use TODO keywords to indicate different states in the process 2685You can use TODO keywords to indicate different @emph{sequential} states
2552of working on an item, for example: 2686in the process of working on an item, for example@footnote{Changing
2687this variable only becomes effective after restarting Org-mode in a
2688buffer.}:
2553 2689
2554@lisp 2690@lisp
2555(setq org-todo-keywords '("TODO" "FEEDBACK" "VERIFY" "DONE") 2691(setq org-todo-keywords
2556 org-todo-interpretation 'sequence) 2692 '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))
2557@end lisp 2693@end lisp
2558 2694
2695The vertical bar separates the TODO keywords (states that @emph{need
2696action}) from the DONE states (which need @emph{no further action}. If
2697you don't provide the separator bar, the last state is used as the DONE
2698state.
2559@cindex completion, of TODO keywords 2699@cindex completion, of TODO keywords
2560Changing these variables only becomes effective in a new Emacs session. 2700With this setup, the command @kbd{C-c C-t} will cycle an entry from TODO
2561With this setup, the command @kbd{C-c C-t} will cycle an entry from 2701to FEEDBACK, then to VERIFY, and finally to DONE and DELEGATED. You may
2562TODO to FEEDBACK, then to VERIFY, and finally to DONE. You may also 2702also use a prefix argument to quickly select a specific state. For
2563use a prefix argument to quickly select a specific state. For example 2703example @kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
2564@kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
2565If you define many keywords, you can use in-buffer completion (see 2704If you define many keywords, you can use in-buffer completion (see
2566@ref{Completion}) to insert these words into the buffer. Changing a todo 2705@ref{Completion}) to insert these words into the buffer. Changing a
2567state can be logged with a timestamp, see @ref{Tracking TODO state 2706todo state can be logged with a timestamp, see @ref{Tracking TODO state
2568changes} for more information. 2707changes} for more information.
2569 2708
2570@node TODO types, Per file keywords, Workflow states, TODO extensions 2709@node TODO types, Multiple sets in one file, Workflow states, TODO extensions
2571@subsection TODO keywords as types 2710@subsection TODO keywords as types
2572@cindex TODO types 2711@cindex TODO types
2573@cindex names as TODO keywords 2712@cindex names as TODO keywords
2574@cindex types as TODO keywords 2713@cindex types as TODO keywords
2575 2714
2576The second possibility is to use TODO keywords to indicate different 2715The second possibility is to use TODO keywords to indicate different
2577types of action items. For example, you might want to indicate that 2716@emph{types} of action items. For example, you might want to indicate
2578items are for ``work'' or ``home''. If you are into David Allen's 2717that items are for ``work'' or ``home''. Or, when you work with several
2579@emph{Getting Things DONE}, you might want to use todo types 2718people on a single project, you might want to assign action items
2580@samp{NEXTACTION}, @samp{WAITING}, @samp{MAYBE}. Or, when you work 2719directly to persons, by using their names as TODO keywords. This would
2581with several people on a single project, you might want to assign 2720be set up like this:
2582action items directly to persons, by using their names as TODO 2721
2583keywords. This would be set up like this: 2722@lisp
2723(setq org-todo-keywords '((type "Fred" "Sara" "Lucy" "|" "DONE")))
2724@end lisp
2725
2726In this case, different keywords do not indicate a sequence, but rather
2727different types. So the normal work flow would be to assign a task to a
2728person, and later to mark it DONE. Org-mode supports this style by
2729adapting the workings of the command @kbd{C-c C-t}@footnote{This is also
2730true for the @kbd{t} command in the timeline and agenda buffers.}. When
2731used several times in succession, it will still cycle through all names,
2732in order to first select the right type for a task. But when you return
2733to the item after some time and execute @kbd{C-c C-t} again, it will
2734switch from any name directly to DONE. Use prefix arguments or
2735completion to quickly select a specific name. You can also review the
2736items of a specific TODO type in a sparse tree by using a numeric prefix
2737to @kbd{C-c C-v}. For example, to see all things Lucy has to do, you
2738would use @kbd{C-3 C-c C-v}. To collect Lucy's items from all agenda
2739files into a single buffer, you would use the prefix arg as well when
2740creating the global todo list: @kbd{C-3 C-c t}.
2741
2742@node Multiple sets in one file, Per file keywords, TODO types, TODO extensions
2743@subsection Multiple keyword sets in one file
2744@cindex todo keyword sets
2745
2746Sometimes you may want to use different sets of TODO keywords in
2747parallel. For example, you may want to have the basic
2748@code{TODO}/@code{DONE}, but also a workflow for bug fixing, and a
2749separate state indicating that an item has been canceled (so it is not
2750DONE, but also does not require action). Your setup would then look
2751like this:
2584 2752
2585@lisp 2753@lisp
2586(setq org-todo-keywords '("Fred" "Sara" "Lucy" "Mike" "DONE") 2754(setq org-todo-keywords
2587 org-todo-interpretation 'type) 2755 '((sequence "TODO" "|" "DONE")
2756 (sequence "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED")
2757 (sequence "|" "CANCELED")))
2588@end lisp 2758@end lisp
2589 2759
2590In this case, different keywords do not indicate a sequence, but 2760The keywords should all be different, this helps Org-mode to keep track
2591rather different types. So it is normally not useful to change from 2761of which subsequence should be used for a given entry. In this setup,
2592one type to another. Therefore, in this case the behavior of the 2762@kbd{C-c C-t} only operates within a subsequence, so it switches from
2593command @kbd{C-c C-t} is changed slightly@footnote{This is also true 2763@code{DONE} to (nothing) to @code{TODO}, and from @code{FIXED} to
2594for the @kbd{t} command in the timeline and agenda buffers.}. When 2764(nothing) to @code{REPORT}. Therefore you need a mechanism to initially
2595used several times in succession, it will still cycle through all 2765select the correct sequence. Besides the obvious ways like typing a
2596names. But when you return to the item after some time and execute 2766keyword or using completion, you may also apply the following commands:
2597@kbd{C-c C-t} again, it will switch from each name directly to DONE. 2767
2598Use prefix arguments or completion to quickly select a specific name. 2768@table @kbd
2599You can also review the items of a specific TODO type in a sparse tree 2769@kindex C-S-@key{right}
2600by using a numeric prefix to @kbd{C-c C-v}. For example, to see all 2770@kindex C-S-@key{left}
2601things Lucy has to do, you would use @kbd{C-3 C-c C-v}. To collect 2771@item C-S-@key{right}
2602Lucy's items from all agenda files into a single buffer, you 2772@itemx C-S-@key{left}
2603would use the prefix arg as well when creating the global todo list: 2773These keys jump from one TODO subset to the next. In the above example,
2604@kbd{C-3 C-c t}. 2774@kbd{C-S-@key{right}} would jump from @code{TODO} or @code{DONE} to
2605 2775@code{REPORT}, and any of the words in the second row to @code{CANCELED}.
2606@node Per file keywords, , TODO types, TODO extensions 2776@kindex S-@key{right}
2607@subsection Setting up TODO keywords for individual files 2777@kindex S-@key{left}
2778@item S-@key{right}
2779@itemx S-@key{left}
2780@kbd{S-@key{<left>}} and @kbd{S-@key{<right>}} and walk through
2781@emph{all} keywords from all sets, so for example @kbd{S-@key{<right>}}
2782would switch from @code{DONE} to @code{REPORT} in the example above.
2783@end table
2784
2785@node Per file keywords, , Multiple sets in one file, TODO extensions
2786@subsection Setting up keywords for individual files
2608@cindex keyword options 2787@cindex keyword options
2609@cindex per file keywords 2788@cindex per file keywords
2610 2789
2611It can be very useful to use different aspects of the TODO mechanism 2790It can be very useful to use different aspects of the TODO mechanism in
2612in different files, which is not possible with the global settings 2791different files. For file-local settings, you need to add special lines
2613described above. For file-local settings, you need to add special 2792to the file which set the keywords and interpretation for that file
2614lines to the file which set the keywords and interpretation for that 2793only. For example, to set one of the two examples discussed above, you
2615file only. For example, to set one of the two examples discussed 2794need one of the following lines, starting in column zero anywhere in the
2616above, you need one of the following lines, starting in column zero 2795file:
2617anywhere in the file: 2796
2797@example
2798#+SEQ_TODO: TODO FEEDBACK VERIFY | DONE CANCELED
2799@end example
2800or
2801@example
2802#+TYP_TODO: Fred Sara Lucy Mike | DONE
2803@end example
2804
2805A setup for using several sets in parallel would be:
2618 2806
2619@example 2807@example
2620#+SEQ_TODO: TODO FEEDBACK VERIFY DONE 2808#+SEQ_TODO: "TODO" "|" "DONE"
2621#+TYP_TODO: Fred Sara Lucy Mike DONE 2809#+SEQ_TODO: "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED"
2810#+SEQ_TODO: "|" "CANCELED"
2622@end example 2811@end example
2623 2812
2813
2624@cindex completion, of option keywords 2814@cindex completion, of option keywords
2625@kindex M-@key{TAB} 2815@kindex M-@key{TAB}
2626@noindent To make sure you are using the correct keyword, type 2816@noindent To make sure you are using the correct keyword, type
2627@samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion. 2817@samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion.
2628 2818
2629@cindex DONE, final TODO keyword 2819@cindex DONE, final TODO keyword
2630Remember that the last keyword must always mean that the item is DONE 2820Remember that the keywords after the vertical bar (or the last keyword
2631(although you may use a different word). Also note that in each file, 2821if no bar is there) must always mean that the item is DONE (although you
2632only one of the two aspects of TODO keywords can be used. After 2822may use a different word). After changing one of these lines, use
2633changing one of these lines, use @kbd{C-c C-c} with the cursor still 2823@kbd{C-c C-c} with the cursor still in the line to make the changes
2634in the line to make the changes known to Org-mode@footnote{Org-mode 2824known to Org-mode@footnote{Org-mode parses these lines only when
2635parses these lines only when Org-mode is activated after visiting a 2825Org-mode is activated after visiting a file. @kbd{C-c C-c} with the
2636file. @kbd{C-c C-c} with the cursor in a line starting with @samp{#+} 2826cursor in a line starting with @samp{#+} is simply restarting Org-mode
2637is simply restarting Org-mode for the current buffer.}. 2827for the current buffer.}.
2638
2639If you want to use very many keywords, for example when working with a
2640large group of people, you may split the names over several lines:
2641
2642@example
2643#+TYP_TODO: Fred Sara Lucy Mike
2644#+TYP_TODO: Luis George Jules Jessica
2645#+TYP_TODO: Kim Arnold Peter
2646#+TYP_TODO: DONE
2647@end example
2648 2828
2649@node Priorities, Breaking down tasks, TODO extensions, TODO items 2829@node Priorities, Breaking down tasks, TODO extensions, TODO items
2650@section Priorities 2830@section Priorities
@@ -2673,7 +2853,7 @@ priority character @samp{A}, @samp{B} or @samp{C}. When you press
2673@key{SPC} instead, the priority cookie is removed from the headline. 2853@key{SPC} instead, the priority cookie is removed from the headline.
2674The priorities can also be changed ``remotely'' from the timeline and 2854The priorities can also be changed ``remotely'' from the timeline and
2675agenda buffer with the @kbd{,} command (@pxref{Agenda commands}). 2855agenda buffer with the @kbd{,} command (@pxref{Agenda commands}).
2676 2856@c
2677@kindex S-@key{up} 2857@kindex S-@key{up}
2678@kindex S-@key{down} 2858@kindex S-@key{down}
2679@item S-@key{up} 2859@item S-@key{up}
@@ -2683,11 +2863,22 @@ are also used to modify time stamps (@pxref{Creating timestamps}).
2683Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}). 2863Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}).
2684@end table 2864@end table
2685 2865
2866You can change the range of allowed priorities by setting the variables
2867@code{org-highest-priority}, @code{org-lowest-priority}, and
2868@code{org-default-priority}. For an individual buffer, you may set
2869these values (highest, lowest, default) like this (please make sure that
2870the highest priority is earlier in the alphabet than the lowest
2871priority):
2872
2873@example
2874#+PRIORITIES: A C B
2875@end example
2876
2686@node Breaking down tasks, Checkboxes, Priorities, TODO items 2877@node Breaking down tasks, Checkboxes, Priorities, TODO items
2687@section Breaking tasks down into subtasks 2878@section Breaking tasks down into subtasks
2688@cindex tasks, breaking down 2879@cindex tasks, breaking down
2689 2880
2690It is often advisable to break down large tasks into smaller, managable 2881It is often advisable to break down large tasks into smaller, manageable
2691subtasks. You can do this by creating an outline tree below a TODO 2882subtasks. You can do this by creating an outline tree below a TODO
2692item, with detailed subtasks on the tree@footnote{To keep subtasks out 2883item, with detailed subtasks on the tree@footnote{To keep subtasks out
2693of the global TODO list, see the 2884of the global TODO list, see the
@@ -2780,8 +2971,7 @@ planning.
2780@menu 2971@menu
2781* Time stamps:: Assigning a time to a tree entry 2972* Time stamps:: Assigning a time to a tree entry
2782* Creating timestamps:: Commands which insert timestamps 2973* Creating timestamps:: Commands which insert timestamps
2783* Custom time format:: If you cannot work with the ISO format 2974* Deadlines and scheduling:: Planning your work
2784* Repeating items:: Deadlines that come back again and again
2785* Progress logging:: Documenting when what work was done. 2975* Progress logging:: Documenting when what work was done.
2786@end menu 2976@end menu
2787 2977
@@ -2799,7 +2989,7 @@ special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16 Tue
279909:39>}@footnote{This is the standard ISO date/time format. If you 298909:39>}@footnote{This is the standard ISO date/time format. If you
2800cannot get used to these, see @ref{Custom time format}}. A time stamp 2990cannot get used to these, see @ref{Custom time format}}. A time stamp
2801can appear anywhere in the headline or body of an org-tree entry. Its 2991can appear anywhere in the headline or body of an org-tree entry. Its
2802presence allows entries to be shown on specific dates in the agenda 2992presence causes entries to be shown on specific dates in the agenda
2803(@pxref{Weekly/Daily agenda}). We distinguish: 2993(@pxref{Weekly/Daily agenda}). We distinguish:
2804 2994
2805@table @var 2995@table @var
@@ -2815,76 +3005,53 @@ associated with a plain time stamp will be shown exactly on that date.
2815* Meet Peter at the movies <2006-11-01 Wed 19:15> 3005* Meet Peter at the movies <2006-11-01 Wed 19:15>
2816@end example 3006@end example
2817 3007
2818@item Inactive time stamp 3008@item Time stamp with repeater interval
2819@cindex timestamp, inactive 3009@cindex timestamp, with repeater interval
2820@cindex inactive timestamp 3010A time stamp may contain a @emph{repeater interval}, indicating that it
2821Just like a plain time stamp, but with square brackets instead of 3011applies not only on the given date, but again and again after a certain
2822angular ones. These time stamps are inactive in the sense that they do 3012interval of N days (d), weeks (w), months(m), or years(y). The
2823@emph{not} trigger an entry to show up in the agenda. 3013following will show up in the agenda every Wednesday:
2824 3014
2825@example 3015@example
2826* Gillian comes late for the fifth time [2006-11-01 Wed] 3016* Pick up Sam at school <2007-05-16 Wed 12:30 +1w>
2827@end example 3017@end example
2828 3018
2829@item Time stamp range 3019@item Diary-style sexp entries
2830@cindex timerange 3020For more complex date specifications, Org-mode supports using the
2831Two time stamps connected by @samp{--} denote a time range. The 3021special sexp diary entries implemented in the Emacs calendar/diary
2832headline will be shown on the first and last day of the range, and on 3022package. For example
2833any dates that are displayed and fall in the range. Here is an
2834example:
2835 3023
2836@example 3024@example
2837** Meeting in Amsterdam 3025* The nerd meeting on every 2nd Thursday of the month
2838 <2004-08-23 Mon>--<2004-08-26 Thu> 3026 <%%(diary-float t 4 2)>
2839@end example 3027@end example
2840 3028
2841@item Time stamp with SCHEDULED keyword 3029@item Time/Date range
2842@cindex SCHEDULED keyword 3030@cindex timerange
2843If a time stamp is preceded by the word @samp{SCHEDULED:}, it means you 3031@cindex date range
2844are planning to start working on that task on the given date. So this is 3032Two time stamps connected by @samp{--} denote a range. The headline
2845not about recording an event, but about planning your work. The 3033will be shown on the first and last day of the range, and on any dates
2846headline will be listed under the given date@footnote{It will still be 3034that are displayed and fall in the range. Here is an example:
2847listed on that date after it has been marked DONE. If you don't like
2848this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In
2849addition, a reminder that the scheduled date has passed will be present
2850in the compilation for @emph{today}, until the entry is marked DONE.
2851I.e., the task will automatically be forwarded until completed.
2852 3035
2853@example 3036@example
2854*** TODO Call Trillian for a date on New Years Eve. 3037** Meeting in Amsterdam
2855 SCHEDULED: <2004-12-25 Sat> 3038 <2004-08-23 Mon>--<2004-08-26 Thu>
2856@end example 3039@end example
2857 3040
2858@item Time stamp with DEADLINE keyword 3041@item Inactive time stamp
2859@cindex DEADLINE keyword 3042@cindex timestamp, inactive
2860If a time stamp is preceded by the word @samp{DEADLINE:}, the task 3043@cindex inactive timestamp
2861(most likely a TODO item) is supposed to be finished on that date, and 3044Just like a plain time stamp, but with square brackets instead of
2862it will be listed then. In addition, the compilation for @emph{today} 3045angular ones. These time stamps are inactive in the sense that they do
2863will carry a warning about the approaching or missed deadline, 3046@emph{not} trigger an entry to show up in the agenda.
2864starting @code{org-deadline-warning-days} before the due date, and
2865continuing until the entry is marked DONE. An example:
2866 3047
2867@example 3048@example
2868*** TODO write article about the Earth for the Guide 3049* Gillian comes late for the fifth time [2006-11-01 Wed]
2869 The editor in charge is [[bbdb:Ford Prefect]]
2870 DEADLINE: <2004-02-29 Sun>
2871@end example 3050@end example
2872@item Time stamp with CLOSED keyword 3051
2873@cindex CLOSED keyword
2874When @code{org-log-done} is non-nil, Org-mode will automatically insert
2875a special time stamp each time a TODO entry is marked done
2876(@pxref{Progress logging}). This time stamp is enclosed in square
2877brackets instead of angular brackets.
2878
2879@item Time range with CLOCK keyword
2880@cindex CLOCK keyword
2881When using the clock to time the work that is being done on specific
2882items, time ranges preceded by the CLOCK keyword are inserted
2883automatically into the file. The time stamps are enclosed in square
2884brackets instead of angular brackets. @xref{Clocking work time}.
2885@end table 3052@end table
2886 3053
2887@node Creating timestamps, Custom time format, Time stamps, Timestamps 3054@node Creating timestamps, Deadlines and scheduling, Time stamps, Timestamps
2888@section Creating timestamps 3055@section Creating timestamps
2889@cindex creating timestamps 3056@cindex creating timestamps
2890@cindex timestamps, creating 3057@cindex timestamps, creating
@@ -2899,61 +3066,40 @@ format.
2899Prompt for a date and insert a corresponding time stamp. When the 3066Prompt for a date and insert a corresponding time stamp. When the
2900cursor is at a previously used time stamp, it is updated to NOW. When 3067cursor is at a previously used time stamp, it is updated to NOW. When
2901this command is used twice in succession, a time range is inserted. 3068this command is used twice in succession, a time range is inserted.
2902 3069@c
2903@kindex C-u C-c . 3070@kindex C-u C-c .
2904@item C-u C-c . 3071@item C-u C-c .
2905Like @kbd{C-c .}, but use the alternative format which contains date 3072Like @kbd{C-c .}, but use the alternative format which contains date
2906and time. The default time can be rounded to multiples of 5 minutes, 3073and time. The default time can be rounded to multiples of 5 minutes,
2907see the option @code{org-time-stamp-rounding-minutes}. 3074see the option @code{org-time-stamp-rounding-minutes}.
2908 3075@c
2909@kindex C-c ! 3076@kindex C-c !
2910@item C-c ! 3077@item C-c !
2911Like @kbd{C-c .}, but insert an inactive time stamp not triggering the 3078Like @kbd{C-c .}, but insert an inactive time stamp that will not cause
2912agenda. 3079an agenda entry.
2913 3080@c
2914@kindex C-c < 3081@kindex C-c <
2915@item C-c < 3082@item C-c <
2916Insert a time stamp corresponding to the cursor date in the Calendar. 3083Insert a time stamp corresponding to the cursor date in the Calendar.
2917 3084@c
2918@kindex C-c > 3085@kindex C-c >
2919@item C-c > 3086@item C-c >
2920Access the Emacs calendar for the current date. If there is a 3087Access the Emacs calendar for the current date. If there is a
2921timestamp in the current line, goto the corresponding date 3088timestamp in the current line, goto the corresponding date
2922instead. 3089instead.
2923 3090@c
2924@kindex C-c C-o 3091@kindex C-c C-o
2925@item C-c C-o 3092@item C-c C-o
2926Access the agenda for the date given by the time stamp or -range at 3093Access the agenda for the date given by the time stamp or -range at
2927point (@pxref{Weekly/Daily agenda}). 3094point (@pxref{Weekly/Daily agenda}).
2928 3095@c
2929@kindex C-c C-d
2930@item C-c C-d
2931Insert @samp{DEADLINE} keyword along with a stamp. The insertion will
2932happen in the line directly following the headline.
2933@c FIXME Any CLOSED timestamp will be removed.????????
2934
2935@kindex C-c C-w
2936@cindex sparse tree, for deadlines
2937@item C-c C-w
2938Create a sparse tree with all deadlines that are either past-due, or
2939which will become due within @code{org-deadline-warning-days}.
2940With @kbd{C-u} prefix, show all deadlines in the file. With a numeric
2941prefix, check that many days. For example, @kbd{C-1 C-c C-w} shows
2942all deadlines due tomorrow.
2943
2944@kindex C-c C-s
2945@item C-c C-s
2946Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will
2947happen in the line directly following the headline. Any CLOSED
2948timestamp will be removed.
2949
2950@kindex S-@key{left} 3096@kindex S-@key{left}
2951@kindex S-@key{right} 3097@kindex S-@key{right}
2952@item S-@key{left} 3098@item S-@key{left}
2953@itemx S-@key{right} 3099@itemx S-@key{right}
2954Change date at cursor by one day. These key bindings conflict with 3100Change date at cursor by one day. These key bindings conflict with
2955CUA-mode (@pxref{Conflicts}). 3101CUA-mode (@pxref{Conflicts}).
2956 3102@c
2957@kindex S-@key{up} 3103@kindex S-@key{up}
2958@kindex S-@key{down} 3104@kindex S-@key{down}
2959@item S-@key{up} 3105@item S-@key{up}
@@ -2963,8 +3109,7 @@ year, month, day, hour or minute. Note that if the cursor is in a
2963headline and not at a time stamp, these same keys modify the priority of 3109headline and not at a time stamp, these same keys modify the priority of
2964an item. (@pxref{Priorities}). The key bindings also conflict with 3110an item. (@pxref{Priorities}). The key bindings also conflict with
2965CUA-mode (@pxref{Conflicts}). 3111CUA-mode (@pxref{Conflicts}).
2966 3112@c
2967
2968@kindex C-c C-y 3113@kindex C-c C-y
2969@cindex evaluate time range 3114@cindex evaluate time range
2970@item C-c C-y 3115@item C-c C-y
@@ -2976,9 +3121,10 @@ into the following column).
2976 3121
2977@menu 3122@menu
2978* The date/time prompt:: How org-mode helps you entering date and time 3123* The date/time prompt:: How org-mode helps you entering date and time
3124* Custom time format:: Making dates look differently
2979@end menu 3125@end menu
2980 3126
2981@node The date/time prompt, , Creating timestamps, Creating timestamps 3127@node The date/time prompt, Custom time format, Creating timestamps, Creating timestamps
2982@subsection The date/time prompt 3128@subsection The date/time prompt
2983@cindex date, reading in minibuffer 3129@cindex date, reading in minibuffer
2984@cindex time, reading in minibuffer 3130@cindex time, reading in minibuffer
@@ -3047,8 +3193,8 @@ One month back.
3047Choose date in calendar (only if nothing was typed into minibuffer). 3193Choose date in calendar (only if nothing was typed into minibuffer).
3048@end table 3194@end table
3049 3195
3050@node Custom time format, Repeating items, Creating timestamps, Timestamps 3196@node Custom time format, , The date/time prompt, Creating timestamps
3051@section Custom time format 3197@subsection Custom time format
3052@cindex custom date/time format 3198@cindex custom date/time format
3053@cindex time format, custom 3199@cindex time format, custom
3054@cindex date format, custom 3200@cindex date format, custom
@@ -3090,48 +3236,119 @@ using dates in tables, table alignment will be messed up. If the custom
3090format is shorter, things do work as expected. 3236format is shorter, things do work as expected.
3091@end itemize 3237@end itemize
3092 3238
3093@node Repeating items, Progress logging, Custom time format, Timestamps
3094@section Repeating items
3095@cindex TODO items, repeating
3096@cindex deadlines, repeating
3097@cindex scheduling, repeating
3098
3099Org-mode integrates with the Emacs calendar and diary to display cyclic
3100appointments, anniversaries and other special entries in the agenda
3101(@pxref{Weekly/Daily agenda}). However, it can be useful to have
3102certain deadlines and scheduling items to auto-repeat. The advantage of
3103a deadline or scheduled item is that the they produce warnings ahead of
3104time and automatically forward themselves in the agenda until they are
3105done. The abstract difference is therefore between cyclic
3106@i{appointments} and cyclic @i{action items}. For appointments you
3107should use the diary, for actions you can uses an org-mode deadline or
3108scheduling time stamp together with a REPEAT cookie. For example:
3109 3239
3240@node Deadlines and scheduling, Progress logging, Creating timestamps, Timestamps
3241@section Deadlines and Scheduling
3242
3243A time stamp may be preceded by special keywords to facilitate planning
3244of work:
3245
3246@table @var
3247@item DEADLINE
3248@cindex DEADLINE keyword
3249The task (most likely a TODO item) is supposed to be finished on that
3250date, and it will be listed then. In addition, the compilation for
3251@emph{today} will carry a warning about the approaching or missed
3252deadline, starting @code{org-deadline-warning-days} before the due date,
3253and continuing until the entry is marked DONE. An example:
3254
3255@example
3256*** TODO write article about the Earth for the Guide
3257 The editor in charge is [[bbdb:Ford Prefect]]
3258 DEADLINE: <2004-02-29 Sun>
3259@end example
3260
3261@item SCHEDULED
3262@cindex SCHEDULED keyword
3263You are planning to start working on that task on the given date. The
3264headline will be listed under the given date@footnote{It will still be
3265listed on that date after it has been marked DONE. If you don't like
3266this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In
3267addition, a reminder that the scheduled date has passed will be present
3268in the compilation for @emph{today}, until the entry is marked DONE.
3269I.e., the task will automatically be forwarded until completed.
3270
3271@example
3272*** TODO Call Trillian for a date on New Years Eve.
3273 SCHEDULED: <2004-12-25 Sat>
3274@end example
3275@end table
3276
3277@menu
3278* Inserting deadline/schedule::
3279* Repeated tasks::
3280@end menu
3281
3282@node Inserting deadline/schedule, Repeated tasks, Deadlines and scheduling, Deadlines and scheduling
3283@subsection Inserting deadline/schedule
3284
3285The following commands allow to quickly insert a deadline or to schedule
3286an item:
3287
3288@table @kbd
3289@c
3290@kindex C-c C-d
3291@item C-c C-d
3292Insert @samp{DEADLINE} keyword along with a stamp. The insertion will
3293happen in the line directly following the headline.
3294@c FIXME Any CLOSED timestamp will be removed.????????
3295@c
3296@kindex C-c C-w
3297@cindex sparse tree, for deadlines
3298@item C-c C-w
3299Create a sparse tree with all deadlines that are either past-due, or
3300which will become due within @code{org-deadline-warning-days}.
3301With @kbd{C-u} prefix, show all deadlines in the file. With a numeric
3302prefix, check that many days. For example, @kbd{C-1 C-c C-w} shows
3303all deadlines due tomorrow.
3304@c
3305@kindex C-c C-s
3306@item C-c C-s
3307Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will
3308happen in the line directly following the headline. Any CLOSED
3309timestamp will be removed.
3310@end table
3311
3312@node Repeated tasks, , Inserting deadline/schedule, Deadlines and scheduling
3313@subsection Repeated Tasks
3314
3315Some tasks need to be repeated again and again, and Org-mode therefore
3316allows to use a repeater in a DEADLINE or SCHEDULED time stamp, for
3317example:
3110@example 3318@example
3111* TODO Replace batteries in smoke detector REPEAT(+18m) 3319** TODO Pay the rent
3112 SCHEDULED: <2007-01-01 Mon> 3320 DEADLINE: <2005-10-01 Sat +1m>
3321@end example
3113 3322
3114* TODO Get dentist appointment REPEAT(+6m) 3323Deadlines and scheduled items produce entries in the agenda when they
3115 SCHEDULED: <2006-12-19 Tue> 3324are over-due, so it is important to be able to mark such an entry as
3325completed once you have done so. When you mark a DEADLINE or a SCHEDULE
3326with the todo keyword DONE, it will no longer produce entries in the
3327agenda. The problem with this is, however, that then also the
3328@emph{next} instance of the repeated entry will not be active. Org-mode
3329deals with this in the following way: When you try to mark such an entry
3330DONE (using @kbd{C-c C-t}), it will shift the base date of the repeating
3331time stamp by the repeater interval, and immediately set the entry state
3332back to TODO. In the example above, setting the state to DONE would
3333actually switch the date like this:
3116 3334
3117* TODO Tax report to IRS REPEAT(+1y) 3335@example
3118 DEADLINE: <2007-04-01 Sun> 3336** TODO Pay the rent
3337 DEADLINE: <2005-11-01 Tue +1m>
3119@end example 3338@end example
3120 3339
3121Each time you try to mark one of these entries DONE using @kbd{C-c C-t}, 3340You will also be prompted for a note that will be put under the DEADLINE
3122they will automatically switch back to the state TODO, and the 3341line to keep a record that you actually acted on the previous instance
3123deadline/scheduling will be shifted accordingly. The time units 3342of this deadline.
3124recognized by org-mode are year (y), month (m), week (w), and day (d). 3343
3125Org-mode will also prompt you for a note and record the fact that you 3344As a consequence of shifting the base date, this entry will no longer be
3126have closed this item in a note under the headline. 3345visible in the agenda when checking past dates, but all future instances
3346will be visible.
3127 3347
3128One unusual property of these repeating items is that only one instance 3348You may have both scheduling and deadline information for a specific
3129of each exist at any given time. So if you look back or ahead in the 3349task - just make sure that the repeater intervals on both are the same.
3130agenda, you will not find past and future instances, only the current
3131one will show up. Use a cyclic diary entry if you need all past and
3132future instances to be visible in the agenda.
3133 3350
3134@node Progress logging, , Repeating items, Timestamps 3351@node Progress logging, , Deadlines and scheduling, Timestamps
3135@section Progress Logging 3352@section Progress Logging
3136@cindex progress logging 3353@cindex progress logging
3137@cindex logging, of progress 3354@cindex logging, of progress
@@ -3199,6 +3416,7 @@ these into a separate file that starts with:
3199#+STARTUP: lognotestate 3416#+STARTUP: lognotestate
3200@end example 3417@end example
3201 3418
3419
3202@node Clocking work time, , Tracking TODO state changes, Progress logging 3420@node Clocking work time, , Tracking TODO state changes, Progress logging
3203@subsection Clocking work time 3421@subsection Clocking work time
3204 3422
@@ -3743,6 +3961,23 @@ Sunrise/Sunset times, show lunar phases and to convert to other
3743calendars, respectively. @kbd{c} can be used to switch back and forth 3961calendars, respectively. @kbd{c} can be used to switch back and forth
3744between calendar and agenda. 3962between calendar and agenda.
3745 3963
3964If you are using the diary only for sexp entries and holidays, it is
3965faster to not use the above setting, but instead to copy or even move
3966the entries into an Org-mode file. Org-mode evaluates diary-style sexp
3967entries, and does it faster because there is no overhead for first
3968creating the diary display. Note that the sexp entries must start at
3969the left margin, no white space is allowed before them. For example,
3970the following segment of an Org-mode file will be processed and entries
3971will be made in the agenda:
3972
3973@example
3974* Birthdays and similar stuff
3975#+CATEGORY: Holiday
3976%%(org-calendar-holiday) ; special function for holiday names
3977#+CATEGORY: Ann
3978%%(diary-anniversary 14 5 1956) Artur Dent %d is years old
3979%%(diary-anniversary 2 10 1869) Mahatma Gandhi would be %d years old
3980@end example
3746 3981
3747@node Global TODO list, Matching headline tags, Weekly/Daily agenda, Built-in agenda views 3982@node Global TODO list, Matching headline tags, Weekly/Daily agenda, Built-in agenda views
3748@subsection The global TODO list 3983@subsection The global TODO list
@@ -3762,10 +3997,12 @@ the TODO entries directly from that buffer (@pxref{Agenda commands}).
3762@kindex C-c a T 3997@kindex C-c a T
3763@item C-c a T 3998@item C-c a T
3764@cindex TODO keyword matching 3999@cindex TODO keyword matching
3765Like the above, but allows selection of a specific TODO keyword. You can 4000Like the above, but allows selection of a specific TODO keyword. You
3766also do this by specifying a prefix argument to @kbd{C-c a t}. With a 4001can also do this by specifying a prefix argument to @kbd{C-c a t}. With
3767@kbd{C-u} prefix you are prompted for a keyword. With a numeric 4002a @kbd{C-u} prefix you are prompted for a keyword, and you may also
3768prefix, the Nth keyword in @code{org-todo-keywords} is selected. 4003specify several keywords by separating them with @samp{|} as boolean OR
4004operator. With a numeric prefix, the Nth keyword in
4005@code{org-todo-keywords} is selected.
3769@kindex r 4006@kindex r
3770The @kbd{r} key in the agenda buffer regenerates it, and you can give 4007The @kbd{r} key in the agenda buffer regenerates it, and you can give
3771a prefix argument to this command to change the selected TODO keyword, 4008a prefix argument to this command to change the selected TODO keyword,
@@ -3875,16 +4112,18 @@ Lets assume that you, in your own way of using Org-mode, identify
3875projects with a tag PROJECT, and that you use a todo keyword MAYBE to 4112projects with a tag PROJECT, and that you use a todo keyword MAYBE to
3876indicate a project that should not be considered yet. Lets further 4113indicate a project that should not be considered yet. Lets further
3877assume that the todo keyword DONE marks finished projects, and that NEXT 4114assume that the todo keyword DONE marks finished projects, and that NEXT
3878and TODO indicate next actions. Finally, the tag @@SHOP indicates 4115and TODO indicate next actions. The tag @@SHOP indicates shopping and
3879shopping and is a next action even without the NEXT tag. In this case 4116is a next action even without the NEXT tag. Finally, if the project
3880you would start by identifying eligible projects with a tags/todo match 4117contains the special word IGNORE anywhere, it should not be listed
3881@samp{+PROJECT/-MAYBE-DONE}, and then check for TODO, NEXT and @@SHOP in 4118either. In this case you would start by identifying eligible projects
3882the subtree to identify projects that are not stuck. The correct 4119with a tags/todo match @samp{+PROJECT/-MAYBE-DONE}, and then check for
3883customization for this is 4120TODO, NEXT, @@SHOP, and IGNORE in the subtree to identify projects that
4121are not stuck. The correct customization for this is
3884 4122
3885@lisp 4123@lisp
3886(setq org-stuck-projects 4124(setq org-stuck-projects
3887 ("+PROJECT/-MAYBE-DONE" ("NEXT" "TODO") ("@@SHOP"))) 4125 '("+PROJECT/-MAYBE-DONE" ("NEXT" "TODO") ("@@SHOP")
4126 "\\<IGNORE\\>"))
3888@end lisp 4127@end lisp
3889 4128
3890 4129
@@ -4031,11 +4270,11 @@ Previous line (same as @key{down}).
4031@item mouse-3 4270@item mouse-3
4032@itemx @key{SPC} 4271@itemx @key{SPC}
4033Display the original location of the item in another window. 4272Display the original location of the item in another window.
4034 4273@c
4035@kindex L 4274@kindex L
4036@item L 4275@item L
4037Display original location and recenter that window. 4276Display original location and recenter that window.
4038 4277@c
4039@kindex mouse-2 4278@kindex mouse-2
4040@kindex mouse-1 4279@kindex mouse-1
4041@kindex @key{TAB} 4280@kindex @key{TAB}
@@ -4044,11 +4283,11 @@ Display original location and recenter that window.
4044@itemx @key{TAB} 4283@itemx @key{TAB}
4045Go to the original location of the item in another window. Under Emacs 4284Go to the original location of the item in another window. Under Emacs
404622, @kbd{mouse-1} will also works for this. 428522, @kbd{mouse-1} will also works for this.
4047 4286@c
4048@kindex @key{RET} 4287@kindex @key{RET}
4049@itemx @key{RET} 4288@itemx @key{RET}
4050Go to the original location of the item and delete other windows. 4289Go to the original location of the item and delete other windows.
4051 4290@c
4052@kindex f 4291@kindex f
4053@item f 4292@item f
4054Toggle Follow mode. In Follow mode, as you move the cursor through 4293Toggle Follow mode. In Follow mode, as you move the cursor through
@@ -4056,14 +4295,14 @@ the agenda buffer, the other window always shows the corresponding
4056location in the org file. The initial setting for this mode in new 4295location in the org file. The initial setting for this mode in new
4057agenda buffers can be set with the variable 4296agenda buffers can be set with the variable
4058@code{org-agenda-start-with-follow-mode}. 4297@code{org-agenda-start-with-follow-mode}.
4059 4298@c
4060@kindex b 4299@kindex b
4061@item b 4300@item b
4062Display the entire subtree of the current item in an indirect buffer. 4301Display the entire subtree of the current item in an indirect buffer.
4063With numerical prefix ARG, go up to this level and then take that tree. 4302With numerical prefix ARG, go up to this level and then take that tree.
4064If ARG is negative, go up that many levels. With @kbd{C-u} prefix, do 4303If ARG is negative, go up that many levels. With @kbd{C-u} prefix, do
4065not remove the previously used indirect buffer. 4304not remove the previously used indirect buffer.
4066 4305@c
4067@kindex l 4306@kindex l
4068@item l 4307@item l
4069Toggle Logbook mode. In Logbook mode, entries that where marked DONE while 4308Toggle Logbook mode. In Logbook mode, entries that where marked DONE while
@@ -4075,24 +4314,24 @@ as are entries that have been clocked on that day.
4075@kindex o 4314@kindex o
4076@item o 4315@item o
4077Delete other windows. 4316Delete other windows.
4078 4317@c
4079@kindex w 4318@kindex w
4080@item w 4319@item w
4081Switch to weekly view (7 days displayed together). 4320Switch to weekly view (7 days displayed together).
4082 4321@c
4083@kindex d 4322@kindex d
4084@item d 4323@item d
4085Switch to daily view (just one day displayed). 4324Switch to daily view (just one day displayed).
4086 4325@c
4087@kindex D 4326@kindex D
4088@item D 4327@item D
4089Toggle the inclusion of diary entries. See @ref{Weekly/Daily agenda}. 4328Toggle the inclusion of diary entries. See @ref{Weekly/Daily agenda}.
4090 4329@c
4091@kindex g 4330@kindex g
4092@item g 4331@item g
4093Toggle the time grid on and off. See also the variables 4332Toggle the time grid on and off. See also the variables
4094@code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}. 4333@code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}.
4095 4334@c
4096@kindex r 4335@kindex r
4097@item r 4336@item r
4098Recreate the agenda buffer, for example to reflect the changes 4337Recreate the agenda buffer, for example to reflect the changes
@@ -4100,21 +4339,21 @@ after modification of the time stamps of items with S-@key{left} and
4100S-@key{right}. When the buffer is the global todo list, a prefix 4339S-@key{right}. When the buffer is the global todo list, a prefix
4101argument is interpreted to create a selective list for a specific TODO 4340argument is interpreted to create a selective list for a specific TODO
4102keyword. 4341keyword.
4103 4342@c
4104@kindex s 4343@kindex s
4105@item s 4344@item s
4106Save all Org-mode buffers in the current Emacs session. 4345Save all Org-mode buffers in the current Emacs session.
4107 4346@c
4108@kindex @key{right} 4347@kindex @key{right}
4109@item @key{right} 4348@item @key{right}
4110Display the following @code{org-agenda-ndays} days. For example, if 4349Display the following @code{org-agenda-ndays} days. For example, if
4111the display covers a week, switch to the following week. With prefix 4350the display covers a week, switch to the following week. With prefix
4112arg, go forward that many times @code{org-agenda-ndays} days. 4351arg, go forward that many times @code{org-agenda-ndays} days.
4113 4352@c
4114@kindex @key{left} 4353@kindex @key{left}
4115@item @key{left} 4354@item @key{left}
4116Display the previous dates. 4355Display the previous dates.
4117 4356@c
4118@kindex . 4357@kindex .
4119@item . 4358@item .
4120Goto today. 4359Goto today.
@@ -4124,53 +4363,53 @@ Goto today.
4124 4363
4125@item 0-9 4364@item 0-9
4126Digit argument. 4365Digit argument.
4127 4366@c
4128@cindex undoing remote-editing events 4367@cindex undoing remote-editing events
4129@cindex remote editing, undo 4368@cindex remote editing, undo
4130@kindex C-_ 4369@kindex C-_
4131@item C-_ 4370@item C-_
4132Undo a change due to a remote editing command. The change is undone 4371Undo a change due to a remote editing command. The change is undone
4133both in the agenda buffer and in the remote buffer. 4372both in the agenda buffer and in the remote buffer.
4134 4373@c
4135@kindex t 4374@kindex t
4136@item t 4375@item t
4137Change the TODO state of the item, both in the agenda and in the 4376Change the TODO state of the item, both in the agenda and in the
4138original org file. 4377original org file.
4139 4378@c
4140@kindex C-k 4379@kindex C-k
4141@item C-k 4380@item C-k
4142Delete the current agenda item along with the entire subtree belonging 4381Delete the current agenda item along with the entire subtree belonging
4143to it in the original Org-mode file. If the text to be deleted remotely 4382to it in the original Org-mode file. If the text to be deleted remotely
4144is longer than one line, the kill needs to be confirmed by the user. See 4383is longer than one line, the kill needs to be confirmed by the user. See
4145variable @code{org-agenda-confirm-kill}. 4384variable @code{org-agenda-confirm-kill}.
4146 4385@c
4147@kindex $ 4386@kindex $
4148@item $ 4387@item $
4149Archive the subtree corresponding to the current headline. 4388Archive the subtree corresponding to the current headline.
4150 4389@c
4151@kindex T 4390@kindex T
4152@item T 4391@item T
4153Show all tags associated with the current item. Because of 4392Show all tags associated with the current item. Because of
4154inheritance, this may be more than the tags listed in the line itself. 4393inheritance, this may be more than the tags listed in the line itself.
4155 4394@c
4156@kindex : 4395@kindex :
4157@item : 4396@item :
4158Set tags for the current headline. 4397Set tags for the current headline.
4159 4398@c
4160@kindex a 4399@kindex a
4161@item a 4400@item a
4162Toggle the ARCHIVE tag for the current headline. 4401Toggle the ARCHIVE tag for the current headline.
4163 4402@c
4164@kindex , 4403@kindex ,
4165@item , 4404@item ,
4166Set the priority for the current item. Org-mode prompts for the 4405Set the priority for the current item. Org-mode prompts for the
4167priority character. If you reply with @key{SPC}, the priority cookie 4406priority character. If you reply with @key{SPC}, the priority cookie
4168is removed from the entry. 4407is removed from the entry.
4169 4408@c
4170@kindex P 4409@kindex P
4171@item P 4410@item P
4172Display weighted priority of current item. 4411Display weighted priority of current item.
4173 4412@c
4174@kindex + 4413@kindex +
4175@kindex S-@key{up} 4414@kindex S-@key{up}
4176@item + 4415@item +
@@ -4178,21 +4417,21 @@ Display weighted priority of current item.
4178Increase the priority of the current item. The priority is changed in 4417Increase the priority of the current item. The priority is changed in
4179the original buffer, but the agenda is not resorted. Use the @kbd{r} 4418the original buffer, but the agenda is not resorted. Use the @kbd{r}
4180key for this. 4419key for this.
4181 4420@c
4182@kindex - 4421@kindex -
4183@kindex S-@key{down} 4422@kindex S-@key{down}
4184@item - 4423@item -
4185@itemx S-@key{down} 4424@itemx S-@key{down}
4186Decrease the priority of the current item. 4425Decrease the priority of the current item.
4187 4426@c
4188@kindex C-c C-s 4427@kindex C-c C-s
4189@item C-c C-s 4428@item C-c C-s
4190Schedule this item 4429Schedule this item
4191 4430@c
4192@kindex C-c C-d 4431@kindex C-c C-d
4193@item C-c C-d 4432@item C-c C-d
4194Set a deadline for this item. 4433Set a deadline for this item.
4195 4434@c
4196@kindex S-@key{right} 4435@kindex S-@key{right}
4197@item S-@key{right} 4436@item S-@key{right}
4198Change the time stamp associated with the current line by one day into 4437Change the time stamp associated with the current line by one day into
@@ -4201,25 +4440,27 @@ example, @kbd{3 6 5 S-@key{right}} will change it by a year. The
4201stamp is changed in the original org file, but the change is not 4440stamp is changed in the original org file, but the change is not
4202directly reflected in the agenda buffer. Use the 4441directly reflected in the agenda buffer. Use the
4203@kbd{r} key to update the buffer. 4442@kbd{r} key to update the buffer.
4204 4443@c
4205@kindex S-@key{left} 4444@kindex S-@key{left}
4206@item S-@key{left} 4445@item S-@key{left}
4207Change the time stamp associated with the current line by one day 4446Change the time stamp associated with the current line by one day
4208into the past. 4447into the past.
4209 4448@c
4210@kindex > 4449@kindex >
4211@item > 4450@item >
4212Change the time stamp associated with the current line to today. 4451Change the time stamp associated with the current line to today.
4213The key @kbd{>} has been chosen, because it is the same as @kbd{S-.} 4452The key @kbd{>} has been chosen, because it is the same as @kbd{S-.}
4214on my keyboard. 4453on my keyboard.
4215 4454@c
4216@kindex I 4455@kindex I
4217@item I 4456@item I
4218Start the clock on the current item. If a clock is running already, it 4457Start the clock on the current item. If a clock is running already, it
4219is stopped first. 4458is stopped first.
4459@c
4220@kindex O 4460@kindex O
4221@item O 4461@item O
4222Stop the previously started clock. 4462Stop the previously started clock.
4463@c
4223@kindex X 4464@kindex X
4224@item X 4465@item X
4225Cancel the currently running clock. 4466Cancel the currently running clock.
@@ -4229,11 +4470,11 @@ Cancel the currently running clock.
4229@kindex c 4470@kindex c
4230@item c 4471@item c
4231Open the Emacs calendar and move to the date at the agenda cursor. 4472Open the Emacs calendar and move to the date at the agenda cursor.
4232 4473@c
4233@item c 4474@item c
4234When in the calendar, compute and show the Org-mode agenda for the 4475When in the calendar, compute and show the Org-mode agenda for the
4235date at the cursor. 4476date at the cursor.
4236 4477@c
4237@cindex diary entries, creating from agenda 4478@cindex diary entries, creating from agenda
4238@kindex i 4479@kindex i
4239@item i 4480@item i
@@ -4241,42 +4482,53 @@ Insert a new entry into the diary. Prompts for the type of entry
4241(day, weekly, monthly, yearly, anniversary, cyclic) and creates a new 4482(day, weekly, monthly, yearly, anniversary, cyclic) and creates a new
4242entry in the diary, just as @kbd{i d} etc. would do in the calendar. 4483entry in the diary, just as @kbd{i d} etc. would do in the calendar.
4243The date is taken from the cursor position. 4484The date is taken from the cursor position.
4244 4485@c
4245@kindex M 4486@kindex M
4246@item M 4487@item M
4247Show the phases of the moon for the three months around current date. 4488Show the phases of the moon for the three months around current date.
4248 4489@c
4249@kindex S 4490@kindex S
4250@item S 4491@item S
4251Show sunrise and sunset times. The geographical location must be set 4492Show sunrise and sunset times. The geographical location must be set
4252with calendar variables, see documentation of the Emacs calendar. 4493with calendar variables, see documentation of the Emacs calendar.
4253 4494@c
4254@kindex C 4495@kindex C
4255@item C 4496@item C
4256Convert the date at cursor into many other cultural and historic 4497Convert the date at cursor into many other cultural and historic
4257calendars. 4498calendars.
4258 4499@c
4259@kindex H 4500@kindex H
4260@item H 4501@item H
4261Show holidays for three month around the cursor date. 4502Show holidays for three month around the cursor date.
4262 4503@c
4263@c FIXME: This should be a different key. 4504@c FIXME: This should be a different key.
4264@kindex C-c C-x C-c 4505@kindex C-c C-x C-c
4265@item C-c C-x C-c 4506@item C-c C-x C-c
4266Export a single iCalendar file containing entries from all agenda files. 4507Export a single iCalendar file containing entries from all agenda files.
4267 4508
4509@tsubheading{Exporting to a file}
4510@kindex C-x C-w
4511@item C-x C-w
4512@cindex exporting agenda views
4513@cindex agenda views, exporting
4514Write the agenda view to a file. Depending on the extension of the
4515selected file name, the view will be exported as HTML (extension
4516@file{.html} or @file{.htm}), Postscript (extension @file{.ps}), or
4517plain text (any other extension). Use the variable
4518@code{org-agenda-exporter-settings} to set options for @file{ps-print}
4519and for @file{htmlize} to be used during export.
4520
4268@tsubheading{Quit and Exit} 4521@tsubheading{Quit and Exit}
4269@kindex q 4522@kindex q
4270@item q 4523@item q
4271Quit agenda, remove the agenda buffer. 4524Quit agenda, remove the agenda buffer.
4272 4525@c
4273@kindex x 4526@kindex x
4274@cindex agenda files, removing buffers 4527@cindex agenda files, removing buffers
4275@item x 4528@item x
4276Exit agenda, remove the agenda buffer and all buffers loaded by Emacs 4529Exit agenda, remove the agenda buffer and all buffers loaded by Emacs
4277for the compilation of the agenda. Buffers created by the user to 4530for the compilation of the agenda. Buffers created by the user to
4278visit org files will not be removed. 4531visit org files will not be removed.
4279
4280@end table 4532@end table
4281 4533
4282 4534
@@ -4294,7 +4546,8 @@ dispatcher (@pxref{Agenda dispatcher}), just like the default commands.
4294* Storing searches:: Type once, use often 4546* Storing searches:: Type once, use often
4295* Block agenda:: All the stuff you need in a single buffer 4547* Block agenda:: All the stuff you need in a single buffer
4296* Setting Options:: Changing the rules 4548* Setting Options:: Changing the rules
4297* Batch processing:: Agenda views from the command line 4549* Exporting Agenda Views:: Writing agendas to files.
4550* Extracting Agenda Information for other programs::
4298@end menu 4551@end menu
4299 4552
4300@node Storing searches, Block agenda, Custom agenda views, Custom agenda views 4553@node Storing searches, Block agenda, Custom agenda views, Custom agenda views
@@ -4386,7 +4639,7 @@ your agenda for the current week, all TODO items that carry the tag
4386command @kbd{C-c a o} provides a similar view for office tasks. 4639command @kbd{C-c a o} provides a similar view for office tasks.
4387 4640
4388 4641
4389@node Setting Options, Batch processing, Block agenda, Custom agenda views 4642@node Setting Options, Exporting Agenda Views, Block agenda, Custom agenda views
4390@subsection Setting Options for custom commands 4643@subsection Setting Options for custom commands
4391@cindex options, for custom agenda views 4644@cindex options, for custom agenda views
4392 4645
@@ -4434,7 +4687,8 @@ the results for GARDEN tags query in the opposite order,
4434 '(("h" "Agenda and Home-related tasks" 4687 '(("h" "Agenda and Home-related tasks"
4435 ((agenda) 4688 ((agenda)
4436 (tags-todo "HOME") 4689 (tags-todo "HOME")
4437 (tags "GARDEN" ((org-agenda-sorting-strategy '(priority-up))))) 4690 (tags "GARDEN"
4691 ((org-agenda-sorting-strategy '(priority-up)))))
4438 ((org-agenda-sorting-strategy '(priority-down)))) 4692 ((org-agenda-sorting-strategy '(priority-down))))
4439 ("o" "Agenda and Office-related tasks" 4693 ("o" "Agenda and Office-related tasks"
4440 ((agenda) 4694 ((agenda)
@@ -4450,36 +4704,234 @@ this interface, the @emph{values} are just lisp expressions. So if the
4450value is a string, you need to add the double quotes around the value 4704value is a string, you need to add the double quotes around the value
4451yourself. 4705yourself.
4452 4706
4453@node Batch processing, , Setting Options, Custom agenda views
4454@subsection Creating agenda views in batch processing
4455@cindex agenda, batch production
4456 4707
4457If you want to print or otherwise reprocess agenda views, it can be 4708@node Exporting Agenda Views, Extracting Agenda Information for other programs, Setting Options, Custom agenda views
4458useful to create an agenda from the command line. This is the purpose 4709@subsection Exporting Agenda Views
4459of the function @code{org-batch-agenda}. It takes as a parameter one of 4710@cindex agenda views, exporting
4460the strings that are the keys in @code{org-agenda-custom-commands}. For 4711
4461example, to directly print the current TODO list, you could use 4712If you are away from your computer, it can be very useful to have a
4713printed version of some agenda views to carry around. Org-mode can
4714export custom agenda views as plain text, HTML@footnote{You need to
4715install Hrvoje Niksic' @file{htmlize.el}.} and postscript. If you want
4716to do this only occasionally, use the commend
4717
4718@table @kbd
4719@kindex C-x C-w
4720@item C-x C-w
4721@cindex exporting agenda views
4722@cindex agenda views, exporting
4723Write the agenda view to a file. Depending on the extension of the
4724selected file name, the view will be exported as HTML (extension
4725@file{.html} or @file{.htm}), Postscript (extension @file{.ps}), or
4726plain text (any other extension). Use the variable
4727@code{org-agenda-exporter-settings} to set options for @file{ps-print}
4728and for @file{htmlize} to be used during export, for example
4729@lisp
4730(setq org-agenda-exporter-settings
4731 '((ps-number-of-columns 2)
4732 (ps-landscape-mode t)
4733 (htmlize-output-type 'css)))
4734@end lisp
4735@end table
4736
4737If you need to export certain agenda views frequently, you can associate
4738any custom agenda command with a list of output file names
4739@footnote{If you want to store standard views like the weekly agenda
4740or the global TODO list as well, you need to define custom commands for
4741them in order to be able to specify filenames.}. Here is an example
4742that first does define custom commands for the agenda and the global
4743todo list, together with a number of files to which to export them.
4744Then we define two block agenda commands and specify filenames for them
4745as well. File names can be relative to the current working directory,
4746or absolute.
4747
4748@lisp
4749@group
4750(setq org-agenda-custom-commands
4751 '(("X" agenda "" nil ("agenda.html" "agenda.ps"))
4752 ("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps"))
4753 ("h" "Agenda and Home-related tasks"
4754 ((agenda)
4755 (tags-todo "HOME")
4756 (tags "GARDEN"))
4757 nil
4758 ("~/views/home.html"))
4759 ("o" "Agenda and Office-related tasks"
4760 ((agenda)
4761 (tags-todo "WORK")
4762 (tags "OFFICE"))
4763 nil
4764 ("~/views/office.ps"))))
4765@end group
4766@end lisp
4767
4768The extension of the file name determines the type of export. If it is
4769@file{.html}, Org-mode will use the @file{htmlize.el} package to convert
4770the buffer to HTML and save it to this file name. If the extension is
4771@file{.ps}, @code{ps-print-buffer-with-faces} is used to produce
4772postscript output. Any other extension produces a plain ASCII file.
4773
4774The export files are @emph{not} created when you use one of those
4775commands interactively. Instead, there is a special command to produce
4776@emph{all} specified files in one step:
4777
4778@table @kbd
4779@kindex C-c a e
4780@item C-c a e
4781Export all agenda views that have export filenames associated with
4782them.
4783@end table
4784
4785You can use the options section of the custom agenda commands to also
4786set options for the export commands. For example:
4787
4788@lisp
4789(setq org-agenda-custom-commands
4790 '(("X" agenda ""
4791 ((ps-number-of-columns 2)
4792 (ps-landscape-mode t)
4793 (org-agenda-prefix-format " [ ] ")
4794 (org-agenda-with-colors nil)
4795 (org-agenda-remove-tags t))
4796 ("theagenda.ps"))))
4797@end lisp
4798
4799@noindent
4800This command sets two options for the postscript exporter, to make it
4801print in two columns in landscape format - the resulting page can be cut
4802in two and then used in a paper agenda. The remaining settings modify
4803the agenda prefix to omit category and scheduling information, and
4804instead include a checkbox to check off items. We also remove the tags
4805to make the lines compact, and we don't want to use colors for the
4806black-and-white printer. Settings specified in
4807@code{org-agenda-exporter-settings} will also apply, but the settings
4808in @code{org-agenda-custom-commands} take precedence.
4809
4810@noindent
4811From the command line you may also use
4812@example
4813emacs -f org-batch-store-agenda-views -kill
4814@end example
4815@noindent
4816or, if you need to modify some parameters
4817@example
4818emacs -eval '(org-batch-store-agenda-views \
4819 org-agenda-ndays 30 \
4820 org-agenda-include-diary nil \
4821 org-agenda-files (quote ("~/org/project.org")))' \
4822 -kill
4823@end example
4824@noindent
4825which will create the agenda views restricted to the file
4826@file{~/org/project.org}, without diary entries and with 30 days
4827extent.
4828
4829@node Extracting Agenda Information for other programs, , Exporting Agenda Views, Custom agenda views
4830@subsection Extracting Agenda Information for other programs
4831@cindex agenda, pipe
4832@cindex Scripts, for agenda processing
4833
4834Org-mode provides commands to access agenda information for the command
4835line in emacs batch mode. This extracted information can be sent
4836directly to a printer, or it can be read by a program that does further
4837processing of the data. The first of these commands is the function
4838@code{org-batch-agenda}, that produces an agenda view and sends it as
4839ASCII text to STDOUT. The command takes a single string as parameter.
4840If the string has length 1, it is used as a key to one of the commands
4841you have configured in @code{org-agenda-custom-commands}, basically any
4842key you can use after @kbd{C-c a}. For example, to directly print the
4843current TODO list, you could use
4462 4844
4463@example 4845@example
4464emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr 4846emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr
4465@end example 4847@end example
4466 4848
4849If the parameter is a string with 2 or more characters, it is used as a
4850tags/todo match string. For example, to print your local shopping list
4851(all items with the tag @samp{shop}, but excluding the tag
4852@samp{NewYork}), you could use
4853
4854@example
4855emacs -batch -l ~/.emacs \
4856 -eval '(org-batch-agenda "+shop-NewYork")' | lpr
4857@end example
4858
4467@noindent 4859@noindent
4468You may also modify parameters on the fly like this: 4860You may also modify parameters on the fly like this:
4469 4861
4470@example 4862@example
4471emacs -batch -l ~/.emacs \ 4863emacs -batch -l ~/.emacs \
4472 -eval '(org-batch-agenda "a" \ 4864 -eval '(org-batch-agenda "a" \
4473 org-agenda-ndays 300 \ 4865 org-agenda-ndays 30 \
4474 org-agenda-include-diary nil \ 4866 org-agenda-include-diary nil \
4475 org-agenda-files (quote ("~/org/project.org")))' \ 4867 org-agenda-files (quote ("~/org/project.org")))' \
4476 | lpr 4868 | lpr
4477@end example 4869@end example
4478 4870
4479@noindent 4871@noindent
4480which will produce a 300 day agenda, fully restricted to the Org file 4872which will produce a 30 day agenda, fully restricted to the Org file
4481@file{~/org/projects.org}, not even including the diary. 4873@file{~/org/projects.org}, not even including the diary.
4482 4874
4875If you want to process the agenda data in more sophisticated ways, you
4876can use the command @code{org-batch-agenda-csv} to get a comma-separated
4877list of values for each agenda item. Each line in the output will
4878contain a number of fields separated by commas. The fields in a line
4879are:
4880
4881@example
4882category @r{The category of the item}
4883head @r{The headline, without TODO kwd, TAGS and PRIORITY}
4884type @r{The type of the agenda entry, can be}
4885 todo @r{selected in TODO match}
4886 tagsmatch @r{selected in tags match}
4887 diary @r{imported from diary}
4888 deadline @r{a deadline}
4889 scheduled @r{scheduled}
4890 timestamp @r{appointment, selected by timestamp}
4891 closed @r{entry was closed on date}
4892 upcoming-deadline @r{warning about nearing deadline}
4893 past-scheduled @r{forwarded scheduled item}
4894 block @r{entry has date block including date}
4895todo @r{The todo keyword, if any}
4896tags @r{All tags including inherited ones, separated by colons}
4897date @r{The relevant date, like 2007-2-14}
4898time @r{The time, like 15:00-16:50}
4899extra @r{String with extra planning info}
4900priority-l @r{The priority letter if any was given}
4901priority-n @r{The computed numerical priority}
4902@end example
4903
4904@noindent
4905Time and date will only be given if a timestamp (or deadline/scheduled)
4906lead to the selection of the item.
4907
4908A CSV list like this is very easy to use in a post processing script.
4909For example, here is a Perl program that gets the TODO list from
4910Emacs/org-mode and prints all the items, preceded by a checkbox:
4911
4912@example
4913@group
4914#!/usr/bin/perl
4915
4916# define the Emacs command to run
4917$cmd = "emacs -batch -l ~/.emacs -eval '(org-batch-agenda-csv \"t\")'";
4918
4919# run it and capture the output
4920$agenda = qx@{$cmd 2>/dev/null@};
4921
4922# loop over all lines
4923foreach $line (split(/\n/,$agenda)) @{
4924
4925 # get the individual values
4926 ($category,$head,$type,$todo,$tags,$date,$time,$extra,
4927 $priority_l,$priority_n) = split(/,/,$line);
4928
4929 # proccess and print
4930 print "[ ] $head\n";
4931@}
4932@end group
4933@end example
4934
4483@node Embedded LaTeX, Exporting, Agenda views, Top 4935@node Embedded LaTeX, Exporting, Agenda views, Top
4484@chapter Embedded LaTeX 4936@chapter Embedded LaTeX
4485@cindex @TeX{} interpretation 4937@cindex @TeX{} interpretation
@@ -4566,7 +5018,9 @@ preview the typeset result of these fragments, and upon export to HTML,
4566all fragments will be converted to images and inlined into the HTML 5018all fragments will be converted to images and inlined into the HTML
4567document. For this to work you need to be on a system with a working 5019document. For this to work you need to be on a system with a working
4568La@TeX{} installation. You also need the @file{dvipng} program, 5020La@TeX{} installation. You also need the @file{dvipng} program,
4569available at @url{http://sourceforge.net/projects/dvipng/}. 5021available at @url{http://sourceforge.net/projects/dvipng/}. The LaTeX
5022header that will be used when processing a fragment can be configured
5023with the variable @code{org-format-latex-header}.
4570 5024
4571La@TeX{} fragments don't need any special marking at all. The following 5025La@TeX{} fragments don't need any special marking at all. The following
4572snippets will be identified as LaTeX source code: 5026snippets will be identified as LaTeX source code:
@@ -4773,7 +5227,7 @@ HTML formatting, in ways similar to John Grubers @emph{markdown}
4773language, but with additional support for tables. 5227language, but with additional support for tables.
4774 5228
4775@menu 5229@menu
4776* Export commands:: How to invode HTML export 5230* Export commands:: How to invoke HTML export
4777* Quoting HTML tags:: Using direct HTML in Org-mode 5231* Quoting HTML tags:: Using direct HTML in Org-mode
4778* Links:: How hyperlinks get transferred to HTML 5232* Links:: How hyperlinks get transferred to HTML
4779* Images:: To inline or not to inline? 5233* Images:: To inline or not to inline?
@@ -4793,11 +5247,27 @@ Export as HTML file @file{myfile.html}.
4793@kindex C-c C-e b 5247@kindex C-c C-e b
4794@item C-c C-e b 5248@item C-c C-e b
4795Export as HTML file and open it with a browser. 5249Export as HTML file and open it with a browser.
5250@kindex C-c C-e H
5251@item C-c C-e H
5252Export to a temporary buffer, do not create a file.
5253@kindex C-c C-e R
5254@item C-c C-e H
5255Export the active region to a temporary buffer. With prefix arg, do not
5256produce file header and foot, but just the plain HTML section for the
5257region. This is good for cut-and-paste operations.
4796@kindex C-c C-e v h 5258@kindex C-c C-e v h
4797@kindex C-c C-e v b 5259@kindex C-c C-e v b
5260@kindex C-c C-e v H
5261@kindex C-c C-e v R
4798@item C-c C-e v h 5262@item C-c C-e v h
4799@item C-c C-e v b 5263@item C-c C-e v b
5264@item C-c C-e v H
5265@item C-c C-e v R
4800Export only the visible part of the document. 5266Export only the visible part of the document.
5267@item M-x org-export-region-as-html
5268Convert the region to HTML under the assumption that it was org-mode
5269syntax before. This is a global command that can be invoked in any
5270buffer.
4801@end table 5271@end table
4802 5272
4803@cindex headline levels, for exporting 5273@cindex headline levels, for exporting
@@ -4975,19 +5445,20 @@ in order to produce better output.
4975 5445
4976@menu 5446@menu
4977* Comment lines:: Some lines will not be exported 5447* Comment lines:: Some lines will not be exported
5448* Initial text:: Text before the first headline
5449* Footnotes:: Numbers like [1]
4978* Enhancing text:: Subscripts, symbols and more 5450* Enhancing text:: Subscripts, symbols and more
4979* Export options:: How to influence the export settings 5451* Export options:: How to influence the export settings
4980@end menu 5452@end menu
4981 5453
4982@node Comment lines, Enhancing text, Text interpretation, Text interpretation 5454@node Comment lines, Initial text, Text interpretation, Text interpretation
4983@subsection Comment lines 5455@subsection Comment lines
4984@cindex comment lines 5456@cindex comment lines
4985@cindex exporting, not 5457@cindex exporting, not
4986 5458
4987Lines starting with @samp{#} in column zero are treated as comments 5459Lines starting with @samp{#} in column zero are treated as comments
4988and will never be exported. Also entire subtrees starting with the 5460and will never be exported. Also entire subtrees starting with the
4989word @samp{COMMENT} will never be exported. Finally, any text before 5461word @samp{COMMENT} will never be exported.
4990the first headline will not be exported either.
4991 5462
4992@table @kbd 5463@table @kbd
4993@kindex C-c ; 5464@kindex C-c ;
@@ -4995,7 +5466,70 @@ the first headline will not be exported either.
4995Toggle the COMMENT keyword at the beginning of an entry. 5466Toggle the COMMENT keyword at the beginning of an entry.
4996@end table 5467@end table
4997 5468
4998@node Enhancing text, Export options, Comment lines, Text interpretation 5469@node Initial text, Footnotes, Comment lines, Text interpretation
5470@subsection Text before the first headline
5471
5472Org-mode normally ignores any text before the first headline when
5473exporting, leaving this region for internal links to speed up navigation
5474etc. However, in publishing-oriented files, you might want to have some
5475text before the first headline, like a small introduction, special HTML
5476code with a navigation bar, etc. You can ask to have this part of the
5477file exported as well by setting the variable
5478@code{org-export-skip-text-before-1st-heading} to @code{nil}. On a
5479per-file basis, you can get the same effect with
5480
5481@example
5482#+OPTIONS: skip:nil
5483@end example
5484
5485The text before the first headline will be fully processed
5486(@pxref{Enhancing text}), and the first non-comment line becomes the
5487title of the exported document. If you need to include literal HTML,
5488use the special constructs described in @ref{Quoting HTML tags}. The
5489table of contents is normally inserted directly before the first
5490headline of the file. If you would like to get it to a different
5491location, insert the string @code{[TABLE-OF-CONTENTS]} on a line by
5492itself at the desired location.
5493
5494Finally, if you want to use the space before the first headline for
5495internal purposes, but @emph{still} want to place something before the
5496first headline when exporting the file, you can use the @code{#+TEXT}
5497construct:
5498
5499@example
5500#+OPTIONS: skip:t
5501#+TEXT: This text will go before the *first* headline.
5502#+TEXT: We place the table of contents here:
5503#+TEXT: [TABLE-OF-CONTENTS]
5504#+TEXT: This goes between the table of contents and the first headline
5505@end example
5506
5507@node Footnotes, Enhancing text, Initial text, Text interpretation
5508@subsection Footnotes
5509@cindex footnotes
5510@cindex @file{footnote.el}
5511
5512Numbers in square brackets are treated as footnotes, so that you can use
5513the Emacs package @file{footnote.el} to create footnotes. For example:
5514
5515@example
5516The org-mode homepage[1] clearly needs help from
5517a good web designer.
5518
5519[1] The link is: http://www.astro.uva.nl/~dominik/Tools/org
5520@end example
5521
5522@noindent
5523@kindex C-c !
5524Note that the @file{footnote} package uses @kbd{C-c !} to invoke its
5525commands. This binding conflicts with the org-mode command for
5526inserting inactive time stamps. You could use the variable
5527@code{footnote-prefix} to switch footnotes commands to another key. Or,
5528if you are too used to this binding, you could use
5529@code{org-replace-disputed-keys} and @code{org-disputed-keys} to change
5530the settings in Org-mode.
5531
5532@node Enhancing text, Export options, Footnotes, Text interpretation
4999@subsection Enhancing text for export 5533@subsection Enhancing text for export
5000@cindex enhancing text 5534@cindex enhancing text
5001@cindex richer text 5535@cindex richer text
@@ -5019,7 +5553,9 @@ backend supports lists. See @xref{Plain lists}.
5019@cindex italic text 5553@cindex italic text
5020@item 5554@item
5021You can make words @b{*bold*}, @i{/italic/}, _underlined_, 5555You can make words @b{*bold*}, @i{/italic/}, _underlined_,
5022@code{=code=}, and @samp{+strikethrough+}. 5556@code{=code=}, and even @samp{+strikethrough+}@footnote{but remember
5557that strikethrough is typographically evil and should @i{never} be
5558used.}.
5023 5559
5024@cindex horizontal rules, in exported files 5560@cindex horizontal rules, in exported files
5025@item 5561@item
@@ -5057,7 +5593,7 @@ this position.
5057@end itemize 5593@end itemize
5058 5594
5059If these conversions conflict with your habits of typing ASCII text, 5595If these conversions conflict with your habits of typing ASCII text,
5060they can all be turned off with corresponding variables (see the 5596they can all be turned off with corresponding variables. See the
5061customization group @code{org-export-general}, and the following section 5597customization group @code{org-export-general}, and the following section
5062which explains how to set export options with special lines in a 5598which explains how to set export options with special lines in a
5063buffer. 5599buffer.
@@ -5088,7 +5624,7 @@ Insert template with export options, see example below.
5088#+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language}) 5624#+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language})
5089#+TEXT: Some descriptive text to be inserted at the beginning. 5625#+TEXT: Some descriptive text to be inserted at the beginning.
5090#+TEXT: Several lines may be given. 5626#+TEXT: Several lines may be given.
5091#+OPTIONS: H:2 num:t toc:t \n:nil @@:t ::t |:t ^:t *:nil TeX:t LaTeX:t 5627#+OPTIONS: H:2 num:t toc:t \n:nil @@:t ::t |:t ^:t *:nil TeX:t LaTeX:t skip:t
5092@end example 5628@end example
5093 5629
5094@noindent 5630@noindent
@@ -5113,10 +5649,13 @@ toc: @r{turn on/off table of contents, or set level limit (integer)}
5113@@: @r{turn on/off quoted HTML tags} 5649@@: @r{turn on/off quoted HTML tags}
5114:: @r{turn on/off fixed-width sections} 5650:: @r{turn on/off fixed-width sections}
5115|: @r{turn on/off tables} 5651|: @r{turn on/off tables}
5116^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.} 5652^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts. If}
5653 @r{you write "^:@{@}", @code{a_@{b@}} will be interpreted, but}
5654 @r{the simple @code{a_b} will be left as it is.}
5117*: @r{turn on/off emphasized text (bold, italic, underlined)} 5655*: @r{turn on/off emphasized text (bold, italic, underlined)}
5118TeX: @r{turn on/off simple @TeX{} macros in plain text} 5656TeX: @r{turn on/off simple @TeX{} macros in plain text}
5119LaTeX: @r{turn on/off La@TeX{} fragments} 5657LaTeX: @r{turn on/off La@TeX{} fragments}
5658skip: @r{turn on/off skipping the text before the first heading}
5120@end example 5659@end example
5121 5660
5122@node Publishing, Miscellaneous, Exporting, Top 5661@node Publishing, Miscellaneous, Exporting, Top
@@ -5444,13 +5983,13 @@ Once org-publish is properly configured, you can publish with the
5444following functions: 5983following functions:
5445 5984
5446@table @kbd 5985@table @kbd
5447@item C-c C-e c 5986@item C-c C-e C
5448Prompt for a specific project and publish all files that belong to it. 5987Prompt for a specific project and publish all files that belong to it.
5449@item C-c C-e p 5988@item C-c C-e P
5450Publish the project containing the current file. 5989Publish the project containing the current file.
5451@item C-c C-e f 5990@item C-c C-e F
5452Publish only the current file. 5991Publish only the current file.
5453@item C-c C-e a 5992@item C-c C-e A
5454Publish all projects. 5993Publish all projects.
5455@end table 5994@end table
5456 5995
@@ -5584,11 +6123,15 @@ Logging TODO state changes and clock intervals (variable
5584@cindex @code{lognotedone}, STARTUP keyword 6123@cindex @code{lognotedone}, STARTUP keyword
5585@cindex @code{lognoteclock-out}, STARTUP keyword 6124@cindex @code{lognoteclock-out}, STARTUP keyword
5586@cindex @code{lognotestate}, STARTUP keyword 6125@cindex @code{lognotestate}, STARTUP keyword
6126@cindex @code{logrepeat}, STARTUP keyword
6127@cindex @code{nologrepeat}, STARTUP keyword
5587@example 6128@example
5588logging @r{record a timestamp when an item is marked DONE} 6129logging @r{record a timestamp when an item is marked DONE}
5589nologging @r{don't record when items are marked DONE} 6130nologging @r{don't record when items are marked DONE}
5590lognotedone @r{record timestamp and a note when DONE} 6131lognotedone @r{record timestamp and a note when DONE}
5591lognotestate @r{record timestamp, note when TODO state changes} 6132lognotestate @r{record timestamp, note when TODO state changes}
6133logrepeat @r{record a not when re-instating a repeating item}
6134nologrepeat @r{do not record when re-instating repeating item}
5592lognoteclock-out @r{record timestamp and a note when clocking out} 6135lognoteclock-out @r{record timestamp and a note when clocking out}
5593@end example 6136@end example
5594Here are the options for hiding leading stars in outline headings. The 6137Here are the options for hiding leading stars in outline headings. The
@@ -5612,6 +6155,14 @@ To turn on custom format overlays over time stamps (variables
5612@example 6155@example
5613customtime @r{overlay custom time format} 6156customtime @r{overlay custom time format}
5614@end example 6157@end example
6158The following options influence the table spreadsheet (variable
6159@code{constants-unit-system}).
6160@cindex @code{constcgs}, STARTUP keyword
6161@cindex @code{constSI}, STARTUP keyword
6162@example
6163constcgs @r{@file{constants.el} should use the c-g-s unit system}
6164constSI @r{@file{constants.el} should use the SI unit system}
6165@end example
5615@item #+SEQ_TODO: #+TYP_TODO: 6166@item #+SEQ_TODO: #+TYP_TODO:
5616These lines set the TODO keywords and their interpretation in the 6167These lines set the TODO keywords and their interpretation in the
5617current file. The corresponding variables are @code{org-todo-keywords} 6168current file. The corresponding variables are @code{org-todo-keywords}
@@ -5633,6 +6184,10 @@ This line sets the archive location for the agenda file. It applies for
5633all subsequent lines until the next @samp{#+CATEGORY} line, or the end 6184all subsequent lines until the next @samp{#+CATEGORY} line, or the end
5634of the file. The first such line also applies to any entries before it. 6185of the file. The first such line also applies to any entries before it.
5635The corresponding variable is @code{org-archive-location}. 6186The corresponding variable is @code{org-archive-location}.
6187@item #+PRIORITIES: highest lowest default
6188This line sets the limits and the default for the priorities. All three
6189must be either letters A-Z or numbers 0-9. The highest priority must
6190have a lower ASCII number that the lowest priority.
5636@item #+TBLFM: 6191@item #+TBLFM:
5637This line contains the formulas for the table directly above the line. 6192This line contains the formulas for the table directly above the line.
5638@item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+OPTIONS: 6193@item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+OPTIONS:
@@ -5816,10 +6371,12 @@ rather use @kbd{C-c .} to re-insert the timestamp.
5816@item @kbd{S-@key{RET}} @tab @kbd{C-c C-x c} @tab 6371@item @kbd{S-@key{RET}} @tab @kbd{C-c C-x c} @tab
5817@item @kbd{M-@key{RET}} @tab @kbd{C-c C-x m} @tab @kbd{@key{Esc} @key{RET}} 6372@item @kbd{M-@key{RET}} @tab @kbd{C-c C-x m} @tab @kbd{@key{Esc} @key{RET}}
5818@item @kbd{M-S-@key{RET}} @tab @kbd{C-c C-x M} @tab 6373@item @kbd{M-S-@key{RET}} @tab @kbd{C-c C-x M} @tab
5819@item @kbd{S-@key{left}} @tab @kbd{C-c C-x @key{left}} @tab 6374@item @kbd{S-@key{left}} @tab @kbd{C-c @key{left}} @tab
5820@item @kbd{S-@key{right}} @tab @kbd{C-c C-x @key{right}} @tab 6375@item @kbd{S-@key{right}} @tab @kbd{C-c @key{right}} @tab
5821@item @kbd{S-@key{up}} @tab @kbd{C-c C-x @key{up}} @tab 6376@item @kbd{S-@key{up}} @tab @kbd{C-c @key{up}} @tab
5822@item @kbd{S-@key{down}} @tab @kbd{C-c C-x @key{down}} @tab 6377@item @kbd{S-@key{down}} @tab @kbd{C-c @key{down}} @tab
6378@item @kbd{C-S-@key{left}} @tab @kbd{C-c C-x @key{left}} @tab
6379@item @kbd{C-S-@key{right}} @tab @kbd{C-c C-x @key{right}} @tab
5823@end multitable 6380@end multitable
5824 6381
5825@node Interaction, Bugs, TTY keys, Miscellaneous 6382@node Interaction, Bugs, TTY keys, Miscellaneous
@@ -5887,7 +6444,7 @@ to execute Org-mode-related commands, leave the table.
5887@item C-c C-c 6444@item C-c C-c
5888Recognize @file{table.el} table. Works when the cursor is in a 6445Recognize @file{table.el} table. Works when the cursor is in a
5889table.el table. 6446table.el table.
5890 6447@c
5891@kindex C-c ~ 6448@kindex C-c ~
5892@item C-c ~ 6449@item C-c ~
5893Insert a table.el table. If there is already a table at point, this 6450Insert a table.el table. If there is already a table at point, this
@@ -5897,6 +6454,10 @@ format. See the documentation string of the command
5897possible. 6454possible.
5898@end table 6455@end table
5899@file{table.el} is part of Emacs 22. 6456@file{table.el} is part of Emacs 22.
6457@cindex @file{footnote.el}
6458@item @file{footnote.el} by Steven L. Baur
6459Org-mode recognizes numerical footnotes as provided by this package
6460(@pxref{Footnotes}).
5900@end table 6461@end table
5901 6462
5902@node Conflicts, , Cooperation, Interaction 6463@node Conflicts, , Cooperation, Interaction
@@ -5927,7 +6488,6 @@ during date selection).
5927@example 6488@example
5928S-UP -> M-p S-DOWN -> M-n 6489S-UP -> M-p S-DOWN -> M-n
5929S-LEFT -> M-- S-RIGHT -> M-+ 6490S-LEFT -> M-- S-RIGHT -> M-+
5930S-RET -> C-S-RET
5931@end example 6491@end example
5932 6492
5933Yes, these are unfortunately more difficult to remember. If you want 6493Yes, these are unfortunately more difficult to remember. If you want
@@ -5937,6 +6497,16 @@ to have other replacement keys, look at the variable
5937@cindex @file{windmove.el} 6497@cindex @file{windmove.el}
5938Also this package uses the @kbd{S-<cursor>} keys, so everything written 6498Also this package uses the @kbd{S-<cursor>} keys, so everything written
5939in the paragraph above about CUA mode also applies here. 6499in the paragraph above about CUA mode also applies here.
6500
6501@cindex @file{footnote.el}
6502@item @file{footnote.el} by Steven L. Baur
6503Org-mode supports the syntax of the footnote package, but only the
6504numerical footnote markers. Also, the default key for footnote
6505commands, @kbd{C-c !} is already used by org-mode. You could use the
6506variable @code{footnote-prefix} to switch footnotes commands to another
6507key. Or, you could use @code{org-replace-disputed-keys} and
6508@code{org-disputed-keys} to change the settings in Org-mode.
6509
5940@end table 6510@end table
5941 6511
5942 6512
@@ -6417,7 +6987,7 @@ MATCH is being ignored."
6417@end lisp 6987@end lisp
6418 6988
6419 6989
6420@node History and Acknowledgments, GNU Free Documentation License, Extensions and Hacking, Top 6990@node History and Acknowledgments, Index, Extensions and Hacking, Top
6421@appendix History and Acknowledgments 6991@appendix History and Acknowledgments
6422@cindex acknowledgments 6992@cindex acknowledgments
6423@cindex history 6993@cindex history
@@ -6478,6 +7048,9 @@ asked for a way to narrow wide table columns.
6478@i{Christian Egli} converted the documentation into TeXInfo format, 7048@i{Christian Egli} converted the documentation into TeXInfo format,
6479patched CSS formatting into the HTML exporter, and inspired the agenda. 7049patched CSS formatting into the HTML exporter, and inspired the agenda.
6480@item 7050@item
7051@i{David Emery} provided a patch for custom CSS support in exported
7052HTML agendas.
7053@item
6481@i{Nic Ferrier} contributed mailcap and XOXO support. 7054@i{Nic Ferrier} contributed mailcap and XOXO support.
6482@item 7055@item
6483@i{John Foerch} figured out how to make incremental search show context 7056@i{John Foerch} figured out how to make incremental search show context
@@ -6490,13 +7063,19 @@ translated David O'Toole's tutorial into French.
6490@item 7063@item
6491@i{Kai Grossjohann} pointed out key-binding conflicts with other packages. 7064@i{Kai Grossjohann} pointed out key-binding conflicts with other packages.
6492@item 7065@item
6493@i{Shidai Liu} (``Leo'') provided extensive feedback and some patches. 7066@i{Shidai Liu} ("Leo") asked for embedded LaTeX and tested it. He also
7067provided frequent feedback and some patches.
6494@item 7068@item
6495@i{Leon Liu} asked for embedded LaTeX and tested it. 7069@i{Jason F. McBrayer} suggested agenda export to CSV format.
7070@item
7071@i{Dmitri Minaev} sent a patch to set priority limits on a per-file
7072basis.
6496@item 7073@item
6497@i{Stefan Monnier} provided a patch to keep the Emacs-Lisp compiler 7074@i{Stefan Monnier} provided a patch to keep the Emacs-Lisp compiler
6498happy. 7075happy.
6499@item 7076@item
7077@i{Rick Moynihan} proposed to allow multiple TODO sequences in a file.
7078@item
6500@i{Todd Neal} provided patches for links to Info files and elisp forms. 7079@i{Todd Neal} provided patches for links to Info files and elisp forms.
6501@item 7080@item
6502@i{Tim O'Callaghan} suggested in-file links, search options for general 7081@i{Tim O'Callaghan} suggested in-file links, search options for general
@@ -6568,12 +7147,8 @@ work on a tty.
6568and contributed various ideas and code snippets. 7147and contributed various ideas and code snippets.
6569@end itemize 7148@end itemize
6570 7149
6571@node GNU Free Documentation License, Index, History and Acknowledgments, Top
6572@appendix GNU Free Documentation License
6573@include doclicense.texi
6574
6575 7150
6576@node Index, Key Index, GNU Free Documentation License, Top 7151@node Index, Key Index, History and Acknowledgments, Top
6577@unnumbered Index 7152@unnumbered Index
6578 7153
6579@printindex cp 7154@printindex cp