aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Dominik2008-01-18 15:20:31 +0000
committerCarsten Dominik2008-01-18 15:20:31 +0000
commitdbc28aaa524182e9a4eee0d1696b893a41b0d22d (patch)
treec82456a375355ea4f41f632dde714afba962b537
parentdb9c3fb18e09517bea7c6f1872d661f579c3cd86 (diff)
downloademacs-dbc28aaa524182e9a4eee0d1696b893a41b0d22d.tar.gz
emacs-dbc28aaa524182e9a4eee0d1696b893a41b0d22d.zip
(Property inheritance): New section
(Conventions): New section. (Structure editing): Document C-RET, the prefix arg to the cut/cpy commands, and the new bindings for refiling. (Sparse trees): Document the new special command for sparse trees. (References): Be more clear about the counting of hilines. (Handling links): Document M-p/n for accessing links. (Fast access to TODO states): New section. (Per file keywords): New section. (Property inheritance): New section. (Column attributes): New summary types. (Capturing Column View): New section. (The date/time prompt): Cover the new features in the date/time prompt. Compactify the table of keys for the calendar remote control. (Clocking work time): Document the new :scope parameter. (Remember): Promoted to chapter. (Quoted examples): New section. (Enhancing text): New verbatim environments.
-rw-r--r--doc/misc/org.texi2056
-rw-r--r--etc/ChangeLog4
-rw-r--r--etc/refcards/orgcard.tex41
3 files changed, 1387 insertions, 714 deletions
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index cee6bf24cf0..3583009e3c2 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -3,8 +3,8 @@
3@setfilename ../../info/org 3@setfilename ../../info/org
4@settitle Org Mode Manual 4@settitle Org Mode Manual
5 5
6@set VERSION 5.07 6@set VERSION 5.19
7@set DATE August 2007 7@set DATE January 2008
8 8
9@dircategory Emacs 9@dircategory Emacs
10@direntry 10@direntry
@@ -12,11 +12,11 @@
12@end direntry 12@end direntry
13 13
14@c Version and Contact Info 14@c Version and Contact Info
15@set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage} 15@set MAINTAINERSITE @uref{http://orgmode.org,maintainers webpage}
16@set AUTHOR Carsten Dominik 16@set AUTHOR Carsten Dominik
17@set MAINTAINER Carsten Dominik 17@set MAINTAINER Carsten Dominik
18@set MAINTAINEREMAIL @email{dominik at science dot uva dot nl} 18@set MAINTAINEREMAIL @email{carsten at orgmode dot org}
19@set MAINTAINERCONTACT @uref{mailto:dominik at science dot uva dot nl,contact the maintainer} 19@set MAINTAINERCONTACT @uref{mailto:carsten at orgmode dot org,contact the maintainer}
20@c %**end of header 20@c %**end of header
21@finalout 21@finalout
22 22
@@ -35,7 +35,7 @@
35@copying 35@copying
36This manual is for Org-mode (version @value{VERSION}). 36This manual is for Org-mode (version @value{VERSION}).
37 37
38Copyright @copyright{} 2004, 2005, 2006, 2007 Free Software Foundation 38Copyright @copyright{} 2004, 2005, 2006, 2007, 2008 Free Software Foundation
39 39
40@quotation 40@quotation
41Permission is granted to copy, distribute and/or modify this document 41Permission is granted to copy, distribute and/or modify this document
@@ -81,8 +81,9 @@ Software Foundation raise funds for GNU development.''
81* Hyperlinks:: Notes in context 81* Hyperlinks:: Notes in context
82* TODO items:: Every tree branch can be a TODO item 82* TODO items:: Every tree branch can be a TODO item
83* Tags:: Tagging headlines and matching sets of tags 83* Tags:: Tagging headlines and matching sets of tags
84* Properties and columns:: 84* Properties and columns:: Storing information about an entry
85* Timestamps:: Assign date and time to items 85* Dates and times:: Making items useful for planning
86* Remember:: Quickly adding nodes to the outline tree
86* Agenda views:: Collecting information into views 87* Agenda views:: Collecting information into views
87* Embedded LaTeX:: LaTeX fragments and formulas 88* Embedded LaTeX:: LaTeX fragments and formulas
88* Exporting:: Sharing and publishing of notes 89* Exporting:: Sharing and publishing of notes
@@ -90,7 +91,7 @@ Software Foundation raise funds for GNU development.''
90* Miscellaneous:: All the rest which did not fit elsewhere 91* Miscellaneous:: All the rest which did not fit elsewhere
91* Extensions and Hacking:: It is possible to write add-on code 92* Extensions and Hacking:: It is possible to write add-on code
92* History and Acknowledgments:: How Org-mode came into being 93* History and Acknowledgments:: How Org-mode came into being
93* Index:: The fast road to specific information 94* Main Index::
94* Key Index:: Key bindings and where they are described 95* Key Index:: Key bindings and where they are described
95 96
96@detailmenu 97@detailmenu
@@ -102,6 +103,7 @@ Introduction
102* Installation:: How to install a downloaded version of Org-mode 103* Installation:: How to install a downloaded version of Org-mode
103* Activation:: How to activate Org-mode for certain buffers. 104* Activation:: How to activate Org-mode for certain buffers.
104* Feedback:: Bug reports, ideas, patches etc. 105* Feedback:: Bug reports, ideas, patches etc.
106* Conventions:: Type-setting conventions in the manual
105 107
106Document Structure 108Document Structure
107 109
@@ -150,22 +152,16 @@ Hyperlinks
150* Link abbreviations:: Shortcuts for writing complex links 152* Link abbreviations:: Shortcuts for writing complex links
151* Search options:: Linking to a specific location 153* Search options:: Linking to a specific location
152* Custom searches:: When the default search is not enough 154* Custom searches:: When the default search is not enough
153* Remember:: Org-trees store quick notes
154 155
155Internal links 156Internal links
156 157
157* Radio targets:: Make targets trigger links in plain text. 158* Radio targets:: Make targets trigger links in plain text.
158 159
159Remember
160
161* Setting up remember:: Some code for .emacs to get things going
162* Remember templates:: Define the outline of different note types
163* Storing notes:: Directly get the note to where it belongs
164
165TODO items 160TODO items
166 161
167* TODO basics:: Marking and displaying TODO entries 162* TODO basics:: Marking and displaying TODO entries
168* TODO extensions:: Workflow and assignments 163* TODO extensions:: Workflow and assignments
164* Progress logging:: Dates and notes for progress
169* Priorities:: Some things are more important than others 165* Priorities:: Some things are more important than others
170* Breaking down tasks:: Splitting a task into manageable pieces 166* Breaking down tasks:: Splitting a task into manageable pieces
171* Checkboxes:: Tick-off lists 167* Checkboxes:: Tick-off lists
@@ -173,9 +169,16 @@ TODO items
173Extended use of TODO keywords 169Extended use of TODO keywords
174 170
175* Workflow states:: From TODO to DONE in steps 171* Workflow states:: From TODO to DONE in steps
176* TODO types:: I do this, Fred the rest 172* TODO types:: I do this, Fred does the rest
177* Multiple sets in one file:: Mixing it all, and still finding your way 173* Multiple sets in one file:: Mixing it all, and still finding your way
178* Per file keywords:: Different files, different requirements 174* Fast access to TODO states:: Single letter selection of a state
175* Per-file keywords:: Different files, different requirements
176* Faces for TODO keywords:: Highlighting states
177
178Progress Logging
179
180* Closing items:: When was this entry marked DONE?
181* Tracking TODO state changes:: When did the status change?
179 182
180Tags 183Tags
181 184
@@ -188,6 +191,7 @@ Properties and Columns
188* Property syntax:: How properties are spelled out 191* Property syntax:: How properties are spelled out
189* Special properties:: Access to other Org-mode features 192* Special properties:: Access to other Org-mode features
190* Property searches:: Matching property values 193* Property searches:: Matching property values
194* Property inheritance:: Passing values down the tree
191* Column view:: Tabular viewing and editing 195* Column view:: Tabular viewing and editing
192* Property API:: Properties for Lisp programmers 196* Property API:: Properties for Lisp programmers
193 197
@@ -195,18 +199,19 @@ Column View
195 199
196* Defining columns:: The COLUMNS format property 200* Defining columns:: The COLUMNS format property
197* Using column view:: How to create and use column view 201* Using column view:: How to create and use column view
202* Capturing Column View:: A dynamic block for column view
198 203
199Defining Columns 204Defining Columns
200 205
201* Scope of column definitions:: Where defined, where valid? 206* Scope of column definitions:: Where defined, where valid?
202* Column attributes:: Appearance and content of a column 207* Column attributes:: Appearance and content of a column
203 208
204Timestamps 209Dates and Times
205 210
206* Time stamps:: Assigning a time to a tree entry 211* Time stamps:: Assigning a time to a tree entry
207* Creating timestamps:: Commands which insert timestamps 212* Creating timestamps:: Commands which insert timestamps
208* Deadlines and scheduling:: Planning your work 213* Deadlines and scheduling:: Planning your work
209* Progress logging:: Documenting when what work was done. 214* Clocking work time::
210 215
211Creating timestamps 216Creating timestamps
212 217
@@ -218,11 +223,12 @@ Deadlines and Scheduling
218* Inserting deadline/schedule:: Planning items 223* Inserting deadline/schedule:: Planning items
219* Repeated tasks:: Items that show up again and again 224* Repeated tasks:: Items that show up again and again
220 225
221Progress Logging 226Remember
222 227
223* Closing items:: When was this entry marked DONE? 228* Setting up remember:: Some code for .emacs to get things going
224* Tracking TODO state changes:: When did the status change? 229* Remember templates:: Define the outline of different note types
225* Clocking work time:: When exactly did you work on this item? 230* Storing notes:: Directly get the note to where it belongs
231* Refiling notes:: Moving a note or task to a project
226 232
227Agenda Views 233Agenda Views
228 234
@@ -284,12 +290,14 @@ LaTeX export
284 290
285* LaTeX export commands:: How to invoke LaTeX export 291* LaTeX export commands:: How to invoke LaTeX export
286* Quoting LaTeX code:: Incorporating literal LaTeX code 292* Quoting LaTeX code:: Incorporating literal LaTeX code
293* Sectioning structure::
287 294
288Text interpretation by the exporter 295Text interpretation by the exporter
289 296
290* Comment lines:: Some lines will not be exported 297* Comment lines:: Some lines will not be exported
291* Initial text:: Text before the first headline 298* Initial text:: Text before the first headline
292* Footnotes:: Numbers like [1] 299* Footnotes:: Numbers like [1]
300* Quoted examples:: Inserting quoted chnuks of text
293* Enhancing text:: Subscripts, symbols and more 301* Enhancing text:: Subscripts, symbols and more
294* Export options:: How to influence the export settings 302* Export options:: How to influence the export settings
295 303
@@ -339,11 +347,12 @@ Extensions, Hooks and Hacking
339* Special agenda views:: Customized views 347* Special agenda views:: Customized views
340* Using the property API:: Writing programs that use entry properties 348* Using the property API:: Writing programs that use entry properties
341 349
342Tables in arbitrary syntax 350Tables and Lists in arbitrary syntax
343 351
344* Radio tables:: Sending and receiving 352* Radio tables:: Sending and receiving
345* A LaTeX example:: Step by step, almost a tutorial 353* A LaTeX example:: Step by step, almost a tutorial
346* Translator functions:: Copy and modify 354* Translator functions:: Copy and modify
355* Radio lists:: Doing the same for lists.
347 356
348@end detailmenu 357@end detailmenu
349@end menu 358@end menu
@@ -357,6 +366,7 @@ Tables in arbitrary syntax
357* Installation:: How to install a downloaded version of Org-mode 366* Installation:: How to install a downloaded version of Org-mode
358* Activation:: How to activate Org-mode for certain buffers. 367* Activation:: How to activate Org-mode for certain buffers.
359* Feedback:: Bug reports, ideas, patches etc. 368* Feedback:: Bug reports, ideas, patches etc.
369* Conventions:: Type-setting conventions in the manual
360@end menu 370@end menu
361 371
362@node Summary, Installation, Introduction, Introduction 372@node Summary, Installation, Introduction, Introduction
@@ -377,7 +387,7 @@ agenda that utilizes and smoothly integrates much of the Emacs calendar
377and diary. Plain text URL-like links connect to websites, emails, 387and diary. Plain text URL-like links connect to websites, emails,
378Usenet messages, BBDB entries, and any files related to the projects. 388Usenet messages, BBDB entries, and any files related to the projects.
379For printing and sharing of notes, an Org-mode file can be exported as a 389For printing and sharing of notes, an Org-mode file can be exported as a
380structured ASCII file, as HTML, or (todo and agenda items only) as an 390structured ASCII file, as HTML, or (TODO and agenda items only) as an
381iCalendar file. It can also serve as a publishing tool for a set of 391iCalendar file. It can also serve as a publishing tool for a set of
382linked webpages. 392linked webpages.
383 393
@@ -404,7 +414,7 @@ example as:
404@r{@bullet{} full agenda and planner with deadlines and work scheduling} 414@r{@bullet{} full agenda and planner with deadlines and work scheduling}
405@r{@bullet{} environment to implement David Allen's GTD system} 415@r{@bullet{} environment to implement David Allen's GTD system}
406@r{@bullet{} a basic database application} 416@r{@bullet{} a basic database application}
407@r{@bullet{} simple hypertext system, with HTML export} 417@r{@bullet{} simple hypertext system, with HTML and LaTeX export}
408@r{@bullet{} publishing tool to create a set of interlinked webpages} 418@r{@bullet{} publishing tool to create a set of interlinked webpages}
409@end example 419@end example
410 420
@@ -419,7 +429,7 @@ the minor Orgstruct-mode.
419There is a website for Org-mode which provides links to the newest 429There is a website for Org-mode which provides links to the newest
420version of Org-mode, as well as additional information, frequently asked 430version of Org-mode, as well as additional information, frequently asked
421questions (FAQ), links to tutorials etc. This page is located at 431questions (FAQ), links to tutorials etc. This page is located at
422@uref{http://www.astro.uva.nl/~dominik/Tools/org/}. 432@uref{http://orgmode.org}.
423 433
424@page 434@page
425 435
@@ -524,7 +534,7 @@ MY PROJECTS -*- mode: org; -*-
524the file's name is. See also the variable 534the file's name is. See also the variable
525@code{org-insert-mode-line-in-empty-file}. 535@code{org-insert-mode-line-in-empty-file}.
526 536
527@node Feedback, , Activation, Introduction 537@node Feedback, Conventions, Activation, Introduction
528@section Feedback 538@section Feedback
529@cindex feedback 539@cindex feedback
530@cindex bug reports 540@cindex bug reports
@@ -581,6 +591,27 @@ screen. Save this buffer to a file (for example using @kbd{C-x C-w}) and
581attach it to your bug report. 591attach it to your bug report.
582@end enumerate 592@end enumerate
583 593
594@node Conventions, , Feedback, Introduction
595@section Typesetting conventions used in this manual
596
597Org-mode uses three types of keywords: TODO keywords, tags, and property
598names. In this manual we use the following conventions:
599
600@table @code
601@item TODO
602@itemx WAITING
603TODO keywords are written with all capitals, even if they are
604user-defined.
605@item boss
606@itemx ARCHIVE
607User-defined tags are written in lowercase; built-in tags with special
608meaning are written with all capitals.
609@item Release
610@itemx PRIORITY
611User-defined properties are capitalized; built-in properties with
612special meaning are written with all capitals.
613@end table
614
584@node Document structure, Tables, Introduction, Top 615@node Document structure, Tables, Introduction, Top
585@chapter Document Structure 616@chapter Document Structure
586@cindex document structure 617@cindex document structure
@@ -708,8 +739,10 @@ Show all.
708@item C-c C-r 739@item C-c C-r
709Reveal context around point, showing the current entry, the following 740Reveal context around point, showing the current entry, the following
710heading and the hierarchy above. Useful for working near a location 741heading and the hierarchy above. Useful for working near a location
711exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda 742that has been exposed by a sparse tree command (@pxref{Sparse trees}) or
712command (@pxref{Agenda commands}). With prefix arg show, on each 743an agenda command (@pxref{Agenda commands}). With prefix arg show, on
744each
745
713level, all sibling headings. 746level, all sibling headings.
714@kindex C-c C-x b 747@kindex C-c C-x b
715@item C-c C-x b 748@item C-c C-x b
@@ -806,6 +839,10 @@ the beginning of any other line, the content of that line is made the
806new heading. If the command is used at the end of a folded subtree 839new heading. If the command is used at the end of a folded subtree
807(i.e. behind the ellipses at the end of a headline), then a headline 840(i.e. behind the ellipses at the end of a headline), then a headline
808like the current one will be inserted after the end of the subtree. 841like the current one will be inserted after the end of the subtree.
842@kindex C-@key{RET}
843@item C-@key{RET}
844Insert a new heading after the current subtree, same level as the
845current headline. This command works from anywhere in the entry.
809@kindex M-S-@key{RET} 846@kindex M-S-@key{RET}
810@item M-S-@key{RET} 847@item M-S-@key{RET}
811Insert new TODO entry with same level as current heading. 848Insert new TODO entry with same level as current heading.
@@ -833,22 +870,27 @@ Move subtree down (swap with next subtree of same level).
833@item C-c C-x C-w 870@item C-c C-x C-w
834@itemx C-c C-x C-k 871@itemx C-c C-x C-k
835Kill subtree, i.e. remove it from buffer but save in kill ring. 872Kill subtree, i.e. remove it from buffer but save in kill ring.
873With prefix arg, kill N sequential subtrees.
836@kindex C-c C-x M-w 874@kindex C-c C-x M-w
837@item C-c C-x M-w 875@item C-c C-x M-w
838Copy subtree to kill ring. 876Copy subtree to kill ring. With prefix arg, copy N sequential subtrees.
839@kindex C-c C-x C-y 877@kindex C-c C-x C-y
840@item C-c C-x C-y 878@item C-c C-x C-y
841Yank subtree from kill ring. This does modify the level of the subtree to 879Yank subtree from kill ring. This does modify the level of the subtree to
842make sure the tree fits in nicely at the yank position. The yank 880make sure the tree fits in nicely at the yank position. The yank
843level can also be specified with a prefix arg, or by yanking after a 881level can also be specified with a prefix arg, or by yanking after a
844headline marker like @samp{****}. 882headline marker like @samp{****}.
883@kindex C-c C-w
884@item C-c C-w
885Refile entry to a different location. @xref{Refiling notes}.
845@kindex C-c ^ 886@kindex C-c ^
846@item C-c ^ 887@item C-c ^
847Sort same-level entries. When there is an active region, all entries in 888Sort same-level entries. When there is an active region, all entries in
848the region will be sorted. Otherwise the children of the current 889the region will be sorted. Otherwise the children of the current
849headline are sorted. The command prompts for the sorting method, which 890headline are sorted. The command prompts for the sorting method, which
850can be alphabetically, numerically, by time (using the first time stamp 891can be alphabetically, numerically, by time (using the first time stamp
851in each entry), by priority, and each of these in reverse order. With a 892in each entry), by priority, and each of these in reverse order. You
893can also supply your own function to extract the sorting key. With a
852@kbd{C-u} prefix, sorting will be case-sensitive. With two @kbd{C-u 894@kbd{C-u} prefix, sorting will be case-sensitive. With two @kbd{C-u
853C-u} prefixes, duplicate entries will also be removed. 895C-u} prefixes, duplicate entries will also be removed.
854@end table 896@end table
@@ -956,16 +998,22 @@ current file, with the name derived by appending @file{_archive} to the
956current file name. For information and examples on how to change this, 998current file name. For information and examples on how to change this,
957see the documentation string of the variable 999see the documentation string of the variable
958@code{org-archive-location}. There is also an in-buffer option for 1000@code{org-archive-location}. There is also an in-buffer option for
959setting this variable, for example 1001setting this variable, for example@footnote{For backward compatibility,
1002the following also works: If there are several such lines in a file,
1003each specifies the archive location for the text below it. The first
1004such line also applies to any text before its definition. However,
1005using this method is @emph{strongly} deprecated as it is incompatible
1006with the outline structure of the document. The correct method for
1007setting multiple archive locations in a buffer is using a property.}:
960 1008
961@example 1009@example
962#+ARCHIVE: %s_done:: 1010#+ARCHIVE: %s_done::
963@end example 1011@end example
964 1012
965@noindent 1013@noindent
966You may have several such lines in the buffer, they will then be valid 1014If you would like to have a special ARCHIVE location for a single entry
967for the entries following the line (the first will also apply to any 1015or a (sub)tree, give the entry an @code{:ARCHIVE:} property with the
968text before it). 1016location as the value (@pxref{Properties and columns}).
969 1017
970@node Sparse trees, Plain lists, Archiving, Document structure 1018@node Sparse trees, Plain lists, Archiving, Document structure
971@section Sparse trees 1019@section Sparse trees
@@ -975,21 +1023,23 @@ text before it).
975@cindex occur, command 1023@cindex occur, command
976 1024
977An important feature of Org-mode is the ability to construct 1025An important feature of Org-mode is the ability to construct
978@emph{sparse trees} for selected information in an outline tree. A 1026@emph{sparse trees} for selected information in an outline tree, so that
979sparse tree means that the entire document is folded as much as 1027the entire document is folded as much as possible, but the selected
980possible, but the selected information is made visible along with the 1028information is made visible along with the headline structure above
981headline structure above it@footnote{See also the variables 1029it@footnote{See also the variables @code{org-show-hierarchy-above},
982@code{org-show-hierarchy-above}, @code{org-show-following-heading}, and 1030@code{org-show-following-heading}, and @code{org-show-siblings} for
983@code{org-show-siblings} for detailed control on how much context is 1031detailed control on how much context is shown around each match.}. Just
984shown around each match.}. Just try it out and you will see immediately 1032try it out and you will see immediately how it works.
985how it works. 1033
986 1034Org-mode contains several commands creating such trees, all these
987Org-mode contains several commands creating such trees. The most 1035commands can be accessed through a dispatcher:
988basic one is @command{org-occur}:
989 1036
990@table @kbd 1037@table @kbd
991@kindex C-c / 1038@kindex C-c /
992@item C-c / 1039@item C-c /
1040This prompts for an extra key to select a sparse-tree creating command.
1041@kindex C-c / r
1042@item C-c / r
993Occur. Prompts for a regexp and shows a sparse tree with all matches. 1043Occur. Prompts for a regexp and shows a sparse tree with all matches.
994If the match is in a headline, the headline is made visible. If the 1044If the match is in a headline, the headline is made visible. If the
995match is in the body of an entry, headline and body are made visible. 1045match is in the body of an entry, headline and body are made visible.
@@ -1000,6 +1050,7 @@ when the buffer is changed by an editing command, or by pressing
1000@kbd{C-c C-c}. When called with a @kbd{C-u} prefix argument, previous 1050@kbd{C-c C-c}. When called with a @kbd{C-u} prefix argument, previous
1001highlights are kept, so several calls to this command can be stacked. 1051highlights are kept, so several calls to this command can be stacked.
1002@end table 1052@end table
1053
1003@noindent 1054@noindent
1004For frequently used sparse trees of specific search strings, you can 1055For frequently used sparse trees of specific search strings, you can
1005use the variable @code{org-agenda-custom-commands} to define fast 1056use the variable @code{org-agenda-custom-commands} to define fast
@@ -1015,8 +1066,8 @@ For example:
1015@noindent will define the key @kbd{C-c a f} as a shortcut for creating 1066@noindent will define the key @kbd{C-c a f} as a shortcut for creating
1016a sparse tree matching the string @samp{FIXME}. 1067a sparse tree matching the string @samp{FIXME}.
1017 1068
1018Other commands use sparse trees as well. For example @kbd{C-c 1069The other sparse tree commands select headings based on TODO keywords,
1019C-v} creates a sparse TODO tree (@pxref{TODO basics}). 1070tags, or properties and will be discussed later in this manual.
1020 1071
1021@kindex C-c C-e v 1072@kindex C-c C-e v
1022@cindex printing sparse trees 1073@cindex printing sparse trees
@@ -1038,7 +1089,7 @@ part of the document and print the resulting file.
1038Within an entry of the outline tree, hand-formatted lists can provide 1089Within an entry of the outline tree, hand-formatted lists can provide
1039additional structure. They also provide a way to create lists of 1090additional structure. They also provide a way to create lists of
1040checkboxes (@pxref{Checkboxes}). Org-mode supports editing such lists, 1091checkboxes (@pxref{Checkboxes}). Org-mode supports editing such lists,
1041and the HTML exporter (@pxref{Exporting}) does parse and format them. 1092and the HTML exporter (@pxref{Exporting}) parses and formats them.
1042 1093
1043Org-mode knows ordered and unordered lists. Unordered list items start 1094Org-mode knows ordered and unordered lists. Unordered list items start
1044with @samp{-}, @samp{+}, or @samp{*}@footnote{When using @samp{*} as a 1095with @samp{-}, @samp{+}, or @samp{*}@footnote{When using @samp{*} as a
@@ -1046,8 +1097,9 @@ bullet, lines must be indented or they will be seen as top-level
1046headlines. Also, when you are hiding leading stars to get a clean 1097headlines. Also, when you are hiding leading stars to get a clean
1047outline view, plain list items starting with a star are visually 1098outline view, plain list items starting with a star are visually
1048indistinguishable from true headlines. In short: even though @samp{*} 1099indistinguishable from true headlines. In short: even though @samp{*}
1049is supported, it may be better not to use it for plain list items.} as 1100is supported, it may be better to not use it for plain list items.} as
1050bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items 1101bullets. Ordered list items start with a numeral followed by either a
1102period or a right parenthesis, such as @samp{1.} or @samp{1)}. Items
1051belonging to the same list must have the same indentation on the first 1103belonging to the same list must have the same indentation on the first
1052line. In particular, if an ordered list reaches number @samp{10.}, then 1104line. In particular, if an ordered list reaches number @samp{10.}, then
1053the 2--digit numbers must be written left-aligned with the other numbers 1105the 2--digit numbers must be written left-aligned with the other numbers
@@ -1131,9 +1183,9 @@ the command chain with a cursor motion or so.
1131@kindex C-c C-c 1183@kindex C-c C-c
1132@item C-c C-c 1184@item C-c C-c
1133If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the 1185If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the
1134state of the checkbox. If not, make this command makes sure that all 1186state of the checkbox. If not, this command makes sure that all the
1135the items on this list level use the same bullet. Furthermore, if this 1187items on this list level use the same bullet. Furthermore, if this is
1136is an ordered list, make sure the numbering is ok. 1188an ordered list, make sure the numbering is ok.
1137@kindex C-c - 1189@kindex C-c -
1138@item C-c - 1190@item C-c -
1139Cycle the entire list level through the different itemize/enumerate 1191Cycle the entire list level through the different itemize/enumerate
@@ -1148,7 +1200,9 @@ With prefix arg, select the nth bullet from this list.
1148 1200
1149Sometimes you want to keep information associated with an entry, but you 1201Sometimes you want to keep information associated with an entry, but you
1150normally don't want to see it. For this, Org-mode has @emph{drawers}. 1202normally don't want to see it. For this, Org-mode has @emph{drawers}.
1151Drawers need to be configured with the variable @code{org-drawers}, and 1203Drawers need to be configured with the variable
1204@code{org-drawers}@footnote{You can define drawers on a per-file basis
1205with a line like @code{#+DRAWERS: HIDDEN PROPERTIES STATE}}. Drawers
1152look like this: 1206look like this:
1153 1207
1154@example 1208@example
@@ -1194,9 +1248,16 @@ silently in the shadow.
1194@cindex tables 1248@cindex tables
1195@cindex editing tables 1249@cindex editing tables
1196 1250
1197Org-mode has a very fast and intuitive table editor built-in. 1251Org-mode comes with a fast and intuitive table editor. Spreadsheet-like
1198Spreadsheet-like calculations are supported in connection with the 1252calculations are supported in connection with the Emacs @file{calc}
1199Emacs @file{calc} package. 1253package
1254@ifinfo
1255(@pxref{Calc,,,calc,Gnu Emacs Calculator Manual}).
1256@end ifinfo
1257@ifnotinfo
1258(see the Emacs Calculator manual for more information about the Emacs
1259calculator).
1260@end ifnotinfo
1200 1261
1201@menu 1262@menu
1202* Built-in table editor:: Simple tables 1263* Built-in table editor:: Simple tables
@@ -1254,9 +1315,12 @@ unpredictable for you, configure the variables
1254@item C-c | 1315@item C-c |
1255Convert the active region to table. If every line contains at least one 1316Convert the active region to table. If every line contains at least one
1256TAB character, the function assumes that the material is tab separated. 1317TAB character, the function assumes that the material is tab separated.
1318If every line contains a comma, comma-separated values (CSV) are assumed.
1257If not, lines are split at whitespace into fields. You can use a prefix 1319If not, lines are split at whitespace into fields. You can use a prefix
1258argument to indicate the minimum number of consecutive spaces required 1320argument to force a specific separator: @kbd{C-u} forces CSV, @kbd{C-u
1259to identify a field separator (default: just one).@* 1321C-u} forces TAB, and a numeric argument N indicates that at least N
1322consequtive spaces, or alternatively a TAB will be the separator.
1323@*
1260If there is no active region, this command creates an empty Org-mode 1324If there is no active region, this command creates an empty Org-mode
1261table. But it's easier just to start typing, like 1325table. But it's easier just to start typing, like
1262@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}. 1326@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}.
@@ -1388,18 +1452,14 @@ that are not fully visible (@pxref{Narrow columns}). When called with a
1388@kbd{C-u} prefix, just make the full field visible, so that it can be 1452@kbd{C-u} prefix, just make the full field visible, so that it can be
1389edited in place. 1453edited in place.
1390@c 1454@c
1391@kindex C-c @key{TAB}
1392@item C-c @key{TAB}
1393This is an alias for @kbd{C-u C-c `} to make the current field fully
1394visible.
1395@c
1396@item M-x org-table-import 1455@item M-x org-table-import
1397Import a file as a table. The table should be TAB- or whitespace 1456Import a file as a table. The table should be TAB- or whitespace
1398separated. Useful, for example, to import an Excel table or data from a 1457separated. Useful, for example, to import a spreadsheet table or data
1399database, because these programs generally can write TAB-separated text 1458from a database, because these programs generally can write
1400files. This command works by inserting the file into the buffer and 1459TAB-separated text files. This command works by inserting the file into
1401then converting the region to a table. Any prefix argument is passed on 1460the buffer and then converting the region to a table. Any prefix
1402to the converter, which uses it to determine the separator. 1461argument is passed on to the converter, which uses it to determine the
1462separator.
1403@item C-c | 1463@item C-c |
1404Tables can also be imported by pasting tabular text into the org-mode 1464Tables can also be imported by pasting tabular text into the org-mode
1405buffer, selecting the pasted text with @kbd{C-x C-x} and then using the 1465buffer, selecting the pasted text with @kbd{C-x C-x} and then using the
@@ -1407,7 +1467,7 @@ buffer, selecting the pasted text with @kbd{C-x C-x} and then using the
1407@c 1467@c
1408@item M-x org-table-export 1468@item M-x org-table-export
1409Export the table as a TAB-separated file. Useful for data exchange with, 1469Export the table as a TAB-separated file. Useful for data exchange with,
1410for example, Excel or database programs. 1470for example, spreadsheet or database programs.
1411@end table 1471@end table
1412 1472
1413If you don't like the automatic table editor because it gets in your 1473If you don't like the automatic table editor because it gets in your
@@ -1583,13 +1643,15 @@ The row specification only counts data lines and ignores horizontal
1583separator lines (hlines). You can use absolute row numbers 1643separator lines (hlines). You can use absolute row numbers
1584@samp{1}...@samp{N}, and row numbers relative to the current row like 1644@samp{1}...@samp{N}, and row numbers relative to the current row like
1585@samp{+3} or @samp{-1}. Or specify the row relative to one of the 1645@samp{+3} or @samp{-1}. Or specify the row relative to one of the
1586hlines: @samp{I} refers to the first hline, @samp{II} to the second etc. 1646hlines: @samp{I} refers to the first hline@footnote{Note that only
1587@samp{-I} refers to the first such line above the current line, 1647hlines are counted that @emph{separate} table lines. If the table
1588@samp{+I} to the first such line below the current line. You can also 1648starts with a hline above the header, it does not count.}, @samp{II} to
1589write @samp{III+2} which is the second data line after the third hline 1649the second etc. @samp{-I} refers to the first such line above the
1590in the table. Relative row numbers like @samp{-3} will not cross hlines 1650current line, @samp{+I} to the first such line below the current line.
1591if the current line is too close to the hline. Instead, the value 1651You can also write @samp{III+2} which is the second data line after the
1592directly at the hline is used. 1652third hline in the table. Relative row numbers like @samp{-3} will not
1653cross hlines if the current line is too close to the hline. Instead,
1654the value directly at the hline is used.
1593 1655
1594@samp{0} refers to the current row and column. Also, if you omit 1656@samp{0} refers to the current row and column. Also, if you omit
1595either the column or the row part of the reference, the current 1657either the column or the row part of the reference, the current
@@ -1656,8 +1718,8 @@ line like
1656 1718
1657@noindent 1719@noindent
1658Also properties (@pxref{Properties and columns}) can be used as 1720Also properties (@pxref{Properties and columns}) can be used as
1659constants in table formulas: For a property @samp{:XYZ:} use the name 1721constants in table formulas: For a property @samp{:Xyz:} use the name
1660@samp{$PROP_XYZ}, and the property will be searched in the current 1722@samp{$PROP_Xyz}, and the property will be searched in the current
1661outline entry and in the hierarchy above it. If you have the 1723outline entry and in the hierarchy above it. If you have the
1662@file{constants.el} package, it will also be used to resolve constants, 1724@file{constants.el} package, it will also be used to resolve constants,
1663including natural constants like @samp{$h} for Planck's constant, and 1725including natural constants like @samp{$h} for Planck's constant, and
@@ -2087,8 +2149,8 @@ series of degree @code{n} at location @code{x} for a couple of functions
2087@chapter Hyperlinks 2149@chapter Hyperlinks
2088@cindex hyperlinks 2150@cindex hyperlinks
2089 2151
2090Just like HTML, Org-mode provides links inside a file, and external 2152Like HTML, Org-mode provides links inside a file, external links to
2091links to other files, Usenet articles, emails, and much more. 2153other files, Usenet articles, emails, and much more.
2092 2154
2093@menu 2155@menu
2094* Link format:: How links in Org-mode are formatted 2156* Link format:: How links in Org-mode are formatted
@@ -2099,7 +2161,6 @@ links to other files, Usenet articles, emails, and much more.
2099* Link abbreviations:: Shortcuts for writing complex links 2161* Link abbreviations:: Shortcuts for writing complex links
2100* Search options:: Linking to a specific location 2162* Search options:: Linking to a specific location
2101* Custom searches:: When the default search is not enough 2163* Custom searches:: When the default search is not enough
2102* Remember:: Org-trees store quick notes
2103@end menu 2164@end menu
2104 2165
2105@node Link format, Internal links, Hyperlinks, Hyperlinks 2166@node Link format, Internal links, Hyperlinks, Hyperlinks
@@ -2304,20 +2365,21 @@ Insert a link. This prompts for a link to be inserted into the buffer.
2304You can just type a link, using text for an internal link, or one of the 2365You can just type a link, using text for an internal link, or one of the
2305link type prefixes mentioned in the examples above. All links stored 2366link type prefixes mentioned in the examples above. All links stored
2306during the current session are part of the history for this prompt, so 2367during the current session are part of the history for this prompt, so
2307you can access them with @key{up} and @key{down}. Completion, on the 2368you can access them with @key{up} and @key{down} (or @kbd{M-p/n}).
2308other hand, will help you to insert valid link prefixes like 2369Completion, on the other hand, will help you to insert valid link
2309@samp{http:} or @samp{ftp:}, including the prefixes defined through link 2370prefixes like @samp{http:} or @samp{ftp:}, including the prefixes
2310abbreviations (@pxref{Link abbreviations}). The link will be inserted 2371defined through link abbreviations (@pxref{Link abbreviations}). The
2311into the buffer@footnote{After insertion of a stored link, the link will 2372link will be inserted into the buffer@footnote{After insertion of a
2312be removed from the list of stored links. To keep it in the list later 2373stored link, the link will be removed from the list of stored links. To
2313use, use a triple @kbd{C-u} prefix to @kbd{C-c C-l}, or configure the 2374keep it in the list later use, use a triple @kbd{C-u} prefix to @kbd{C-c
2314option @code{org-keep-stored-link-after-insertion}.}, along with a 2375C-l}, or configure the option
2315descriptive text. If some text was selected when this command is 2376@code{org-keep-stored-link-after-insertion}.}, along with a descriptive
2316called, the selected text becomes the default description.@* Note that 2377text. If some text was selected when this command is called, the
2317you don't have to use this command to insert a link. Links in Org-mode 2378selected text becomes the default description.@* Note that you don't
2318are plain text, and you can type or paste them straight into the buffer. 2379have to use this command to insert a link. Links in Org-mode are plain
2319By using this command, the links are automatically enclosed in double 2380text, and you can type or paste them straight into the buffer. By using
2320brackets, and you will be asked for the optional descriptive text. 2381this command, the links are automatically enclosed in double brackets,
2382and you will be asked for the optional descriptive text.
2321@c 2383@c
2322@c If the link is a @samp{file:} link and 2384@c If the link is a @samp{file:} link and
2323@c the linked file is located in the same directory as the current file or 2385@c the linked file is located in the same directory as the current file or
@@ -2513,7 +2575,7 @@ to search the current file. For example, @code{[[file:::find me]]} does
2513a search for @samp{find me} in the current file, just as 2575a search for @samp{find me} in the current file, just as
2514@samp{[[find me]]} would. 2576@samp{[[find me]]} would.
2515 2577
2516@node Custom searches, Remember, Search options, Hyperlinks 2578@node Custom searches, , Search options, Hyperlinks
2517@section Custom Searches 2579@section Custom Searches
2518@cindex custom search strings 2580@cindex custom search strings
2519@cindex search strings, custom 2581@cindex search strings, custom
@@ -2537,194 +2599,26 @@ an implementation example. Search for @samp{BibTeX links} in the source
2537file. 2599file.
2538 2600
2539 2601
2540@node Remember, , Custom searches, Hyperlinks
2541@section Remember
2542@cindex @file{remember.el}
2543
2544Another way to create org entries with links to other files is through
2545the @i{remember} package by John Wiegley. @i{Remember} lets you store
2546quick notes with little interruption of your work flow. See
2547@uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
2548information. The notes produced by @i{Remember} can be stored in
2549different ways, and Org-mode files are a good target. Org-mode
2550significantly expands the possibilities of @i{remember}: You may define
2551templates for different note types, and to associate target files and
2552headlines with specific templates. It also allows you to select the
2553location where a note should be stored interactively, on the fly.
2554
2555@menu
2556* Setting up remember:: Some code for .emacs to get things going
2557* Remember templates:: Define the outline of different note types
2558* Storing notes:: Directly get the note to where it belongs
2559@end menu
2560
2561@node Setting up remember, Remember templates, Remember, Remember
2562@subsection Setting up remember
2563
2564The following customization will tell @i{remember} to use org files as
2565target, and to create annotations compatible with Org-mode links.
2566
2567@example
2568(setq org-directory "~/path/to/my/orgfiles/")
2569(setq org-default-notes-file "~/.notes")
2570(setq remember-annotation-functions '(org-remember-annotation))
2571(setq remember-handler-functions '(org-remember-handler))
2572(add-hook 'remember-mode-hook 'org-remember-apply-template)
2573@end example
2574
2575@node Remember templates, Storing notes, Setting up remember, Remember
2576@subsection Remember templates
2577@cindex templates, for remember
2578
2579In combination with Org-mode, you can use templates to generate
2580different types of @i{remember} notes. For example, if you would like
2581to use one template to create general TODO entries, another one for
2582journal entries, and a third one for collecting random ideas, you could
2583use:
2584
2585@example
2586(setq org-remember-templates
2587 '((?t "* TODO %?\n %i\n %a" "~/org/TODO.org")
2588 (?j "* %U %?\n\n %i\n %a" "~/org/JOURNAL.org")
2589 (?i "* %^@{Title@}\n %i\n %a" "~/org/JOURNAL.org" "New Ideas")))
2590@end example
2591
2592@noindent In these entries, the character specifies how to select the
2593template. The first string specifies the template. Two more (optional)
2594strings give the file in which, and the headline under which the new
2595note should be stored. The file defaults (if not present or @code{nil})
2596to @code{org-default-notes-file}, the heading to
2597@code{org-remember-default-headline}. Both defaults help to get to the
2598storing location quickly, but you can change the location interactively
2599while storing the note.
2600
2601When you call @kbd{M-x remember} (or @kbd{M-x org-remember}) to remember
2602something, org will prompt for a key to select the template (if you have
2603more than one template) and then prepare the buffer like
2604@example
2605* TODO
2606 [[file:link to where you called remember]]
2607@end example
2608
2609@noindent or
2610
2611@example
2612* [2006-03-21 Tue 15:37]
2613
2614 [[file:link to where you called remember]]
2615@end example
2616
2617@noindent
2618During expansion of the template, special @kbd{%}-escapes allow dynamic
2619insertion of content:
2620@example
2621%^@{prompt@} @r{prompt the user for a string and replace this sequence with it.}
2622%t @r{time stamp, date only}
2623%T @r{time stamp with date and time}
2624%u, %U @r{like the above, but inactive time stamps}
2625%^t @r{like @code{%t}, but prompt for date. Similarly @code{%^T}, @code{%^u}, @code{%^U}}
2626 @r{You may define a prompt like @code{%^@{Birthday@}t}}
2627%n @r{user name (taken from @code{user-full-name})}
2628%a @r{annotation, normally the link created with @code{org-store-link}}
2629%i @r{initial content, the region when remember is called with C-u.}
2630 @r{The entire text will be indented like @code{%i} itself.}
2631%^g @r{prompt for tags, with completion on tags in target file.}
2632%^G @r{prompt for tags, with completion all tags in all agenda files.}
2633%:keyword @r{specific information for certain link types, see below}
2634@end example
2635
2636@noindent
2637For specific link types, the following keywords will be defined:
2638
2639@example
2640Link type | Available keywords
2641-------------------+----------------------------------------------
2642bbdb | %:name %:company
2643vm, wl, mh, rmail | %:type %:subject %:message-id
2644 | %:from %:fromname %:fromaddress
2645 | %:to %:toname %:toaddress
2646 | %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user. See the variable @code{org-from-is-user-regexp}.}}
2647gnus | %:group, @r{for messages also all email fields}
2648w3, w3m | %:url
2649info | %:file %:node
2650calendar | %:date"
2651@end example
2652
2653@noindent
2654To place the cursor after template expansion use:
2655
2656@example
2657%? @r{After completing the template, position cursor here.}
2658@end example
2659
2660@noindent
2661If you change you mind about which template to use, call
2662@code{org-remember} in the remember buffer. You may then select a new
2663template that will be filled with the previous context information.
2664
2665@node Storing notes, , Remember templates, Remember
2666@subsection Storing notes
2667
2668When you are finished preparing a note with @i{remember}, you have to press
2669@kbd{C-c C-c} to file the note away. The handler first prompts for a
2670target file - if you press @key{RET}, the value specified for the
2671template is used. Then the command offers the headings tree of the
2672selected file, with the cursor position at the default headline (if you
2673had specified one in the template). You can either immediately press
2674@key{RET} to get the note placed there. Or you can use the following
2675keys to find a better location:
2676@example
2677@key{TAB} @r{Cycle visibility.}
2678@key{down} / @key{up} @r{Next/previous visible headline.}
2679n / p @r{Next/previous visible headline.}
2680f / b @r{Next/previous headline same level.}
2681u @r{One level up.}
2682@c 0-9 @r{Digit argument.}
2683@end example
2684@noindent
2685Pressing @key{RET} or @key{left} or @key{right}
2686then leads to the following result.
2687
2688@multitable @columnfractions 0.2 0.15 0.65
2689@item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted}
2690@item buffer-start @tab @key{RET} @tab as level 2 heading at end of file
2691@item on headline @tab @key{RET} @tab as sublevel of the heading at cursor
2692@item @tab @key{left}/@key{right} @tab as same level, before/after current heading
2693@item not on headline @tab @key{RET}
2694 @tab at cursor position, level taken from context.
2695@end multitable
2696
2697So a fast way to store the note to its default location is to press
2698@kbd{C-c C-c @key{RET} @key{RET}}. Even shorter would be @kbd{C-u C-c
2699C-c}, which does the same without even asking for a file or showing the
2700tree.
2701
2702Before inserting the text into a tree, the function ensures that the
2703text has a headline, i.e. a first line that starts with a @samp{*}.
2704If not, a headline is constructed from the current date and some
2705additional data. If the variable @code{org-adapt-indentation} is
2706non-nil, the entire text is also indented so that it starts in the
2707same column as the headline (after the asterisks).
2708
2709 2602
2710@node TODO items, Tags, Hyperlinks, Top 2603@node TODO items, Tags, Hyperlinks, Top
2711@chapter TODO items 2604@chapter TODO items
2712@cindex TODO items 2605@cindex TODO items
2713 2606
2714Org-mode does not maintain TODO lists as a separate document. TODO 2607Org-mode does not maintain TODO lists as separate documents. Instead,
2715items are an integral part of the notes file, because TODO items 2608TODO items are an integral part of the notes file, because TODO items
2716usually come up while taking notes! With Org-mode, you simply mark 2609usually come up while taking notes! With Org-mode, simply mark any
2717any entry in a tree as being a TODO item. In this way, the 2610entry in a tree as being a TODO item. In this way, information is not
2718information is not duplicated, and the entire context from which the 2611duplicated, and the entire context from which the TODO item emerged is
2719item emerged is always present when you check. 2612always present.
2720 2613
2721Of course, this technique causes TODO items to be scattered throughout 2614Of course, this technique for managing TODO items scatters them
2722your file. Org-mode provides methods to give you an overview over all 2615throughout your notes file. Org-mode compensates for this by providing
2723things you have to do. 2616methods to give you an overview of all the things that you have to do.
2724 2617
2725@menu 2618@menu
2726* TODO basics:: Marking and displaying TODO entries 2619* TODO basics:: Marking and displaying TODO entries
2727* TODO extensions:: Workflow and assignments 2620* TODO extensions:: Workflow and assignments
2621* Progress logging:: Dates and notes for progress
2728* Priorities:: Some things are more important than others 2622* Priorities:: Some things are more important than others
2729* Breaking down tasks:: Splitting a task into manageable pieces 2623* Breaking down tasks:: Splitting a task into manageable pieces
2730* Checkboxes:: Tick-off lists 2624* Checkboxes:: Tick-off lists
@@ -2733,8 +2627,8 @@ things you have to do.
2733@node TODO basics, TODO extensions, TODO items, TODO items 2627@node TODO basics, TODO extensions, TODO items, TODO items
2734@section Basic TODO functionality 2628@section Basic TODO functionality
2735 2629
2736Any headline can become a TODO item by starting it with the word TODO, 2630Any headline becomes a TODO item when it starts with the word
2737for example: 2631@samp{TODO}, for example:
2738 2632
2739@example 2633@example
2740*** TODO Write letter to Sam Fortune 2634*** TODO Write letter to Sam Fortune
@@ -2756,61 +2650,72 @@ Rotate the TODO state of the current item among
2756 2650
2757The same rotation can also be done ``remotely'' from the timeline and 2651The same rotation can also be done ``remotely'' from the timeline and
2758agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}). 2652agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}).
2653
2654@kindex C-u C-c C-t
2655@item C-u C-c C-t
2656Select a specific keyword using completion or (if it has been set up)
2657the fast selection interface.
2658
2759@kindex S-@key{right} 2659@kindex S-@key{right}
2760@kindex S-@key{left} 2660@kindex S-@key{left}
2761@item S-@key{right} 2661@item S-@key{right}
2762@itemx S-@key{left} 2662@itemx S-@key{left}
2763Select the following/preceding TODO state, similar to cycling. Mostly 2663Select the following/preceding TODO state, similar to cycling. Useful
2764useful if more than two TODO states are possible (@pxref{TODO 2664mostly if more than two TODO states are possible (@pxref{TODO
2765extensions}). 2665extensions}).
2766@kindex C-c C-c 2666@kindex C-c C-c
2767@item C-c C-c 2667@item C-c C-c
2768Use the fast tag interface to quickly and directly select a specific 2668Use the fast tag interface to directly select a specific TODO state.
2769TODO state. For this you need to assign keys to TODO state, like this: 2669For this you need to assign keys to TODO states, like this:
2770@example 2670@example
2771#+SEQ_TODO: TODO(t) STARTED(s) WAITING(w) | DONE(d) 2671#+SEQ_TODO: TODO(t) STARTED(s) WAITING(w) | DONE(d)
2772@end example 2672@end example
2773@noindent See @ref{Per file keywords} and @ref{Setting tags} for more 2673@noindent See @ref{Per-file keywords} and @ref{Setting tags} for more
2774information. 2674information.
2775@kindex C-c C-v 2675@kindex C-c C-v
2676@kindex C-c / t
2776@cindex sparse tree, for TODO 2677@cindex sparse tree, for TODO
2777@item C-c C-v 2678@item C-c C-v
2679@itemx C-c / t
2778View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds 2680View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds
2779the entire buffer, but shows all TODO items and the headings hierarchy 2681the entire buffer, but shows all TODO items and the headings hierarchy
2780above them. With prefix arg, search for a specific TODO. You will be 2682above them. With prefix arg, search for a specific TODO. You will be
2781prompted for the keyword, and you can also give a list of keywords like 2683prompted for the keyword, and you can also give a list of keywords like
2782@code{kwd1|kwd2|...}. With numerical prefix N, show the tree for the 2684@code{KWD1|KWD2|...}. With numerical prefix N, show the tree for the
2783Nth keyword in the variable @code{org-todo-keywords}. With two prefix 2685Nth keyword in the variable @code{org-todo-keywords}. With two prefix
2784args, find all TODO and DONE entries. 2686args, find all TODO and DONE entries.
2785@kindex C-c a t 2687@kindex C-c a t
2786@item C-c a t 2688@item C-c a t
2787Show the global TODO list. This collects the TODO items from all 2689Show the global TODO list. Collects the TODO items from all agenda
2788agenda files (@pxref{Agenda views}) into a single buffer. The buffer is in 2690files (@pxref{Agenda views}) into a single buffer. The new buffer will
2789@code{agenda-mode}, so there are commands to examine and manipulate 2691be in @code{agenda-mode}, which provides commands to examine and
2790the TODO entries directly from that buffer (@pxref{Agenda commands}). 2692manipulate the TODO entries from the new buffer (@pxref{Agenda
2791@xref{Global TODO list}, for more information. 2693commands}). @xref{Global TODO list}, for more information.
2792@kindex S-M-@key{RET} 2694@kindex S-M-@key{RET}
2793@item S-M-@key{RET} 2695@item S-M-@key{RET}
2794Insert a new TODO entry below the current one. 2696Insert a new TODO entry below the current one.
2795@end table 2697@end table
2796 2698
2797@node TODO extensions, Priorities, TODO basics, TODO items 2699@node TODO extensions, Progress logging, TODO basics, TODO items
2798@section Extended use of TODO keywords 2700@section Extended use of TODO keywords
2799@cindex extended TODO keywords 2701@cindex extended TODO keywords
2800 2702
2801The default implementation of TODO entries is just two states: TODO and 2703By default, marked TODO entries have one of only two states: TODO and
2802DONE. You can use the TODO feature for more complicated things by 2704DONE. Org-mode allows you to classify TODO items in more complex ways
2803configuring the variable @code{org-todo-keywords}. With special setup, 2705with @emph{TODO keywords} (stored in @code{org-todo-keywords}). With
2804the TODO keyword system can work differently in different files. 2706special setup, the TODO keyword system can work differently in different
2707files.
2805 2708
2806Note that @i{tags} are another way to classify headlines in general and 2709Note that @i{tags} are another way to classify headlines in general and
2807TODO items in particular (@pxref{Tags}). 2710TODO items in particular (@pxref{Tags}).
2808 2711
2809@menu 2712@menu
2810* Workflow states:: From TODO to DONE in steps 2713* Workflow states:: From TODO to DONE in steps
2811* TODO types:: I do this, Fred the rest 2714* TODO types:: I do this, Fred does the rest
2812* Multiple sets in one file:: Mixing it all, and still finding your way 2715* Multiple sets in one file:: Mixing it all, and still finding your way
2813* Per file keywords:: Different files, different requirements 2716* Fast access to TODO states:: Single letter selection of a state
2717* Per-file keywords:: Different files, different requirements
2718* Faces for TODO keywords:: Highlighting states
2814@end menu 2719@end menu
2815 2720
2816@node Workflow states, TODO types, TODO extensions, TODO extensions 2721@node Workflow states, TODO types, TODO extensions, TODO extensions
@@ -2875,7 +2780,7 @@ would use @kbd{C-3 C-c C-v}. To collect Lucy's items from all agenda
2875files into a single buffer, you would use the prefix arg as well when 2780files into a single buffer, you would use the prefix arg as well when
2876creating the global todo list: @kbd{C-3 C-c t}. 2781creating the global todo list: @kbd{C-3 C-c t}.
2877 2782
2878@node Multiple sets in one file, Per file keywords, TODO types, TODO extensions 2783@node Multiple sets in one file, Fast access to TODO states, TODO types, TODO extensions
2879@subsection Multiple keyword sets in one file 2784@subsection Multiple keyword sets in one file
2880@cindex todo keyword sets 2785@cindex todo keyword sets
2881 2786
@@ -2918,10 +2823,34 @@ These keys jump from one TODO subset to the next. In the above example,
2918would switch from @code{DONE} to @code{REPORT} in the example above. 2823would switch from @code{DONE} to @code{REPORT} in the example above.
2919@end table 2824@end table
2920 2825
2921@node Per file keywords, , Multiple sets in one file, TODO extensions 2826@node Fast access to TODO states, Per-file keywords, Multiple sets in one file, TODO extensions
2827@subsection Fast access to TODO states
2828
2829If you would like to quickly change an entry to an arbitrary TODO state
2830instead of cycling through the states, you can set up keys for
2831single-letter access to the states. This is done by adding the section
2832key after each keyword, in parenthesis. For example:
2833
2834@lisp
2835(setq org-todo-keywords
2836 '((sequence "TODO(t)" "|" "DONE(d)")
2837 (sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)")
2838 (sequence "|" "CANCELED(c)")))
2839@end lisp
2840
2841If you then press @code{C-u C-c C-t} followed by the selection key, the
2842entry will be switched to this state. @key{SPC} can be used to remove
2843any TODO keyword from an entry. Should you like this way of selecting
2844TODO states a lot, you might want to set the variable
2845@code{org-use-fast-todo-selection} to @code{t} and make this behavior
2846the default. Check also the variable
2847@code{org-fast-tag-selection-include-todo}, it allows to change the TODO
2848state through the tags interface (@pxref{Setting tags}).
2849
2850@node Per-file keywords, Faces for TODO keywords, Fast access to TODO states, TODO extensions
2922@subsection Setting up keywords for individual files 2851@subsection Setting up keywords for individual files
2923@cindex keyword options 2852@cindex keyword options
2924@cindex per file keywords 2853@cindex per-file keywords
2925 2854
2926It can be very useful to use different aspects of the TODO mechanism in 2855It can be very useful to use different aspects of the TODO mechanism in
2927different files. For file-local settings, you need to add special lines 2856different files. For file-local settings, you need to add special lines
@@ -2961,24 +2890,124 @@ Org-mode is activated after visiting a file. @kbd{C-c C-c} with the
2961cursor in a line starting with @samp{#+} is simply restarting Org-mode 2890cursor in a line starting with @samp{#+} is simply restarting Org-mode
2962for the current buffer.}. 2891for the current buffer.}.
2963 2892
2964@node Priorities, Breaking down tasks, TODO extensions, TODO items 2893@node Faces for TODO keywords, , Per-file keywords, TODO extensions
2894@subsection Faces for TODO keywords
2895@cindex faces, for TODO keywords
2896
2897Org-mode highlights TODO keywords with special faces: @code{org-todo}
2898for keywords indicating that an item still has to be acted upon, and
2899@code{org-done} for keywords indicating that an item is finished. If
2900you are using more than 2 different states, you might want to use
2901special faces for some of them. This can be done using the variable
2902@code{org-todo-keyword-faces}. For example:
2903
2904@lisp
2905(setq org-todo-keyword-faces
2906 '(("TODO" . org-warning)
2907 ("DEFERRED" . shadow)
2908 ("CANCELED" . (:foreground "blue" :weight bold))))
2909@end lisp
2910
2911@page
2912@node Progress logging, Priorities, TODO extensions, TODO items
2913@section Progress Logging
2914@cindex progress logging
2915@cindex logging, of progress
2916
2917Org-mode can automatically record a time stamp and even a note when you
2918mark a TODO item as DONE, or even each time you change the state of
2919a TODO item.
2920
2921@menu
2922* Closing items:: When was this entry marked DONE?
2923* Tracking TODO state changes:: When did the status change?
2924@end menu
2925
2926@node Closing items, Tracking TODO state changes, Progress logging, Progress logging
2927@subsection Closing items
2928
2929If you want to keep track of @emph{when} a certain TODO item was
2930finished, turn on logging with@footnote{The corresponding in-buffer
2931setting is: @code{#+STARTUP: logdone}. You may also set this for the
2932scope of a subtree by adding a @code{:LOGGING:} property with one or more
2933of the logging keywords in the value.}
2934
2935@lisp
2936(setq org-log-done t)
2937@end lisp
2938
2939@noindent
2940Then each time you turn a TODO entry into DONE using either @kbd{C-c
2941C-t} in the Org-mode buffer or @kbd{t} in the agenda buffer, a line
2942@samp{CLOSED: [timestamp]} will be inserted just after the headline. If
2943you turn the entry back into a TODO item through further state cycling,
2944that line will be removed again. In the timeline (@pxref{Timeline}) and
2945in the agenda (@pxref{Weekly/Daily agenda}), you can then use the
2946@kbd{l} key to display the TODO items closed on each day, giving you an
2947overview of what has been done on a day. If you want to record a note
2948along with the timestamp, use@footnote{The corresponding in-buffer
2949setting is: @code{#+STARTUP: lognotedone}}
2950
2951@lisp
2952(setq org-log-done '(done))
2953@end lisp
2954
2955@node Tracking TODO state changes, , Closing items, Progress logging
2956@subsection Tracking TODO state changes
2957
2958When TODO keywords are used as workflow states (@pxref{Workflow
2959states}), you might want to keep track of when a state change occurred
2960and record a note about this change. With the setting@footnote{The
2961corresponding in-buffer setting is: @code{#+STARTUP: lognotestate}.}
2962
2963@lisp
2964(setq org-log-done '(state))
2965@end lisp
2966
2967@noindent
2968each state change will prompt you for a note that will be attached to
2969the current headline. If you press @kbd{C-c C-c} without typing
2970anything into the note buffer, only the time of the state change will be
2971noted. Very likely you do not want this verbose tracking all the time,
2972so it is probably better to configure this behavior with in-buffer
2973options. For example, if you are tracking purchases, put these into a
2974separate file that contains:
2975
2976@example
2977#+SEQ_TODO: TODO(t) ORDERED(o) INVOICE(i) PAYED(p) | RECEIVED(r)
2978#+STARTUP: lognotestate
2979@end example
2980
2981If you only need to take a note for some of the states, mark those
2982states with an additional @samp{@@}, like this:
2983
2984@example
2985#+SEQ_TODO: TODO(t) ORDERED(o@@) INVOICE(i@@) PAYED(p) | RECEIVED(r)
2986#+STARTUP: lognotestate
2987@end example
2988
2989@node Priorities, Breaking down tasks, Progress logging, TODO items
2965@section Priorities 2990@section Priorities
2966@cindex priorities 2991@cindex priorities
2967 2992
2968If you use Org-mode extensively to organize your work, you may end up 2993If you use Org-mode extensively, you may end up enough TODO items that
2969with a number of TODO entries so large that you'd like to prioritize 2994it starts to make sense to prioritize them. Prioritizing can be done by
2970them. This can be done by placing a @emph{priority cookie} into the 2995placing a @emph{priority cookie} into the headline of a TODO item, like
2971headline, like this 2996this
2972 2997
2973@example 2998@example
2974*** TODO [#A] Write letter to Sam Fortune 2999*** TODO [#A] Write letter to Sam Fortune
2975@end example 3000@end example
2976 3001
2977@noindent 3002@noindent
2978With its standard setup, Org-mode supports priorities @samp{A}, 3003By default, Org-mode supports three priorities: @samp{A}, @samp{B}, and
2979@samp{B}, and @samp{C}. @samp{A} is the highest priority. An entry 3004@samp{C}. @samp{A} is the highest priority. An entry without a cookie
2980without a cookie is treated as priority @samp{B}. Priorities make a 3005is treated as priority @samp{B}. Priorities make a difference only in
2981difference only in the agenda (@pxref{Weekly/Daily agenda}). 3006the agenda (@pxref{Weekly/Daily agenda}); outside the agenda, they have
3007no inherent meaning to Org-mode.
3008
3009Priorities can be attached to any outline tree entries; they do not need
3010to be TODO items.
2982 3011
2983@table @kbd 3012@table @kbd
2984@kindex @kbd{C-c ,} 3013@kindex @kbd{C-c ,}
@@ -2993,8 +3022,9 @@ agenda buffer with the @kbd{,} command (@pxref{Agenda commands}).
2993@kindex S-@key{down} 3022@kindex S-@key{down}
2994@item S-@key{up} 3023@item S-@key{up}
2995@itemx S-@key{down} 3024@itemx S-@key{down}
2996Increase/decrease priority of current headline. Note that these keys 3025Increase/decrease priority of current headline@footnote{See also the
2997are also used to modify time stamps (@pxref{Creating timestamps}). 3026option @code{org-priority-start-cycle-with-default'}.}. Note that these
3027keys are also used to modify time stamps (@pxref{Creating timestamps}).
2998Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}). 3028Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}).
2999@end table 3029@end table
3000 3030
@@ -3026,13 +3056,15 @@ of checkboxes to identify (a hierarchy of) a large number of subtasks
3026@section Checkboxes 3056@section Checkboxes
3027@cindex checkboxes 3057@cindex checkboxes
3028 3058
3029Every item in a plain list (@pxref{Plain lists}) can be made a checkbox 3059Every item in a plain list (@pxref{Plain lists}) can be made into a
3030by starting it with the string @samp{[ ]}. This feature is similar to 3060checkbox by starting it with the string @samp{[ ]}. This feature is
3031TODO items (@pxref{TODO items}), but more lightweight. Checkboxes are 3061similar to TODO items (@pxref{TODO items}), but is more lightweight.
3032not included into the global TODO list, so they are often great to split 3062Checkboxes are not included into the global TODO list, so they are often
3033a task into a number of simple steps. Or you can use them in a shopping 3063great to split a task into a number of simple steps. Or you can use
3034list. To toggle a checkbox, use @kbd{C-c C-c}, or try Piotr Zielinski's 3064them in a shopping list. To toggle a checkbox, use @kbd{C-c C-c}, or
3035@file{org-mouse.el}. Here is an example of a checkbox list. 3065use the mouse (thanks to Piotr Zielinski's @file{org-mouse.el}).
3066
3067Here is an example of a checkbox list.
3036 3068
3037@example 3069@example
3038* TODO Organize party [3/6] 3070* TODO Organize party [3/6]
@@ -3048,16 +3080,17 @@ list. To toggle a checkbox, use @kbd{C-c C-c}, or try Piotr Zielinski's
3048@cindex statistics, for checkboxes 3080@cindex statistics, for checkboxes
3049@cindex checkbox statistics 3081@cindex checkbox statistics
3050The @samp{[3/6]} and @samp{[1/3]} in the first and second line are 3082The @samp{[3/6]} and @samp{[1/3]} in the first and second line are
3051cookies indicating how many checkboxes are present in this entry, and 3083cookies indicating how many checkboxes present in this entry have been
3052how many of them have been checked off. This can give you an idea on 3084checked off, and the total number of checkboxes are present. This can
3053how many checkboxes remain, even without opening a folded entry. The 3085give you an idea on how many checkboxes remain, even without opening a
3054cookies can be placed into a headline or into (the first line of) a 3086folded entry. The cookies can be placed into a headline or into (the
3055plain list item. Each cookie covers all checkboxes structurally below 3087first line of) a plain list item. Each cookie covers all checkboxes
3056that headline/item. You have to insert the cookie yourself by typing 3088structurally below the headline/item on which the cookie appear. You
3057either @samp{[/]} or @samp{[%]}. In the first case you get an @samp{n 3089have to insert the cookie yourself by typing either @samp{[/]} or
3058out of m} result, in the second case you get information about the 3090@samp{[%]}. With @samp{[/]} you get an @samp{n out of m} result, as in
3091the examples above. With @samp{[%]} you get information about the
3059percentage of checkboxes checked (in the above example, this would be 3092percentage of checkboxes checked (in the above example, this would be
3060@samp{[50%]} and @samp{[33%], respectively}). 3093@samp{[50%]} and @samp{[33%]}, respectively).
3061 3094
3062@noindent The following commands work with checkboxes: 3095@noindent The following commands work with checkboxes:
3063 3096
@@ -3096,7 +3129,6 @@ delete boxes or add/change them by hand, use this command to get things
3096back into synch. Or simply toggle any checkbox twice with @kbd{C-c C-c}. 3129back into synch. Or simply toggle any checkbox twice with @kbd{C-c C-c}.
3097@end table 3130@end table
3098 3131
3099
3100@node Tags, Properties and columns, TODO items, Top 3132@node Tags, Properties and columns, TODO items, Top
3101@chapter Tags 3133@chapter Tags
3102@cindex tags 3134@cindex tags
@@ -3104,14 +3136,15 @@ back into synch. Or simply toggle any checkbox twice with @kbd{C-c C-c}.
3104@cindex matching, tags 3136@cindex matching, tags
3105@cindex sparse tree, tag based 3137@cindex sparse tree, tag based
3106 3138
3107If you wish to implement a system of labels and contexts for 3139An excellent way to implement labels and contexts for cross-correlating
3108cross-correlating information, an excellent way is to assign @i{tags} to 3140information is to assign @i{tags} to headlines. Org-mode has extensive
3109headlines. Org-mode has extensive support for using tags. 3141support for tags.
3110 3142
3111Every headline can contain a list of tags, at the end of the headline. 3143Every headline can contain a list of tags; they occur at the end of the
3112Tags are normal words containing letters, numbers, @samp{_}, and 3144headline. Tags are normal words containing letters, numbers, @samp{_},
3113@samp{@@}. Tags must be preceded and followed by a single colon; like 3145and @samp{@@}. Tags must be preceded and followed by a single colon,
3114@samp{:WORK:}. Several tags can be specified like @samp{:WORK:URGENT:}. 3146e.g., @samp{:WORK:}. Several tags can be specified, as in
3147@samp{:work:URGENT:}.
3115 3148
3116@menu 3149@menu
3117* Tag inheritance:: Tags use the tree structure of the outline 3150* Tag inheritance:: Tags use the tree structure of the outline
@@ -3121,6 +3154,7 @@ Tags are normal words containing letters, numbers, @samp{_}, and
3121 3154
3122@node Tag inheritance, Setting tags, Tags, Tags 3155@node Tag inheritance, Setting tags, Tags, Tags
3123@section Tag inheritance 3156@section Tag inheritance
3157@cindex tag inheritance
3124@cindex inheritance, of tags 3158@cindex inheritance, of tags
3125@cindex sublevels, inclusion into tags match 3159@cindex sublevels, inclusion into tags match
3126 3160
@@ -3129,20 +3163,21 @@ heading has a certain tag, all subheadings will inherit the tag as
3129well. For example, in the list 3163well. For example, in the list
3130 3164
3131@example 3165@example
3132* Meeting with the French group :WORK: 3166* Meeting with the French group :work:
3133** Summary by Frank :BOSS:NOTES: 3167** Summary by Frank :boss:notes:
3134*** TODO Prepare slides for him :ACTION: 3168*** TODO Prepare slides for him :action:
3135@end example 3169@end example
3136 3170
3137@noindent 3171@noindent
3138the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:}, 3172the final heading will have the tags @samp{:work:}, @samp{:boss:},
3139@samp{:NOTES:}, and @samp{:ACTION:}. When executing tag searches and 3173@samp{:notes:}, and @samp{:action:} even though the final heading is not
3174explicitly marked with those tags. When executing tag searches and
3140Org-mode finds that a certain headline matches the search criterion, it 3175Org-mode finds that a certain headline matches the search criterion, it
3141will not check any sublevel headline, assuming that these likely also 3176will not check any sublevel headline, assuming that these also match and
3142match, and that the list of matches can become very long. This may 3177that the list of matches could become very long because of that. If you
3143not be what you want, however, and you can influence inheritance and 3178do want the subevels be tested and listed as well, you may set the
3144searching using the variables @code{org-use-tag-inheritance} and 3179variable @code{org-tags-match-list-sublevels}. To turn off tag
3145@code{org-tags-match-list-sublevels}. 3180inheritance entirely, use the variable @code{org-use-tag-inheritance}.
3146 3181
3147@node Setting tags, Tag searches, Tag inheritance, Tags 3182@node Setting tags, Tag searches, Tag inheritance, Tags
3148@section Setting tags 3183@section Setting tags
@@ -3174,13 +3209,13 @@ of tags with the variable @code{org-tag-alist}. Finally you can set
3174the default tags for a given file with lines like 3209the default tags for a given file with lines like
3175 3210
3176@example 3211@example
3177#+TAGS: @@WORK @@HOME @@TENNISCLUB 3212#+TAGS: @@work @@home @@tennisclub
3178#+TAGS: Laptop Car PC Sailboat 3213#+TAGS: laptop car pc sailboat
3179@end example 3214@end example
3180 3215
3181If you have globally defined your preferred set of tags using the 3216If you have globally defined your preferred set of tags using the
3182variable @code{org-tag-alist}, but would like to use a dynamic tag list 3217variable @code{org-tag-alist}, but would like to use a dynamic tag list
3183in a specific file: Just add an empty TAGS option line to that file: 3218in a specific file, add an empty TAGS option line to that file:
3184 3219
3185@example 3220@example
3186#+TAGS: 3221#+TAGS:
@@ -3193,13 +3228,13 @@ single key per tag. To function efficiently, you should assign unique
3193keys to most tags. This can be done globally with 3228keys to most tags. This can be done globally with
3194 3229
3195@lisp 3230@lisp
3196(setq org-tag-alist '(("@@WORK" . ?w) ("@@HOME" . ?h) ("Laptop" . ?l))) 3231(setq org-tag-alist '(("@@work" . ?w) ("@@home" . ?h) ("laptop" . ?l)))
3197@end lisp 3232@end lisp
3198 3233
3199@noindent or on a per-file basis with 3234@noindent or on a per-file basis with
3200 3235
3201@example 3236@example
3202#+TAGS: @@WORK(w) @@HOME(h) @@TENNISCLUB(t) Laptop(l) PC(p) 3237#+TAGS: @@work(w) @@home(h) @@tennisclub(t) laptop(l) pc(p)
3203@end example 3238@end example
3204 3239
3205@noindent 3240@noindent
@@ -3209,11 +3244,11 @@ curly braces@footnote{In @code{org-mode-alist} use
3209groups are allowed.} 3244groups are allowed.}
3210 3245
3211@example 3246@example
3212#+TAGS: @{ @@WORK(w) @@HOME(h) @@TENNISCLUB(t) @} Laptop(l) PC(p) 3247#+TAGS: @{ @@work(w) @@home(h) @@tennisclub(t) @} laptop(l) pc(p)
3213@end example 3248@end example
3214 3249
3215@noindent you indicate that at most one of @samp{@@WORK}, @samp{@@HOME}, 3250@noindent you indicate that at most one of @samp{@@work}, @samp{@@home},
3216and @samp{@@TENNISCLUB} should be selected. 3251and @samp{@@tennisclub} should be selected.
3217 3252
3218@noindent Don't forget to press @kbd{C-c C-c} with the cursor in one of 3253@noindent Don't forget to press @kbd{C-c C-c} with the cursor in one of
3219these lines to activate any changes. 3254these lines to activate any changes.
@@ -3255,10 +3290,10 @@ selection window.
3255 3290
3256@noindent 3291@noindent
3257This method lets you assign tags to a headline with very few keys. With 3292This method lets you assign tags to a headline with very few keys. With
3258the above setup, you could clear the current tags and set @samp{@@HOME}, 3293the above setup, you could clear the current tags and set @samp{@@home},
3259@samp{Laptop} and @samp{PC} tags with just the following keys: @kbd{C-c 3294@samp{laptop} and @samp{pc} tags with just the following keys: @kbd{C-c
3260C-c @key{SPC} h l p @key{RET}}. Switching from @samp{@@HOME} to 3295C-c @key{SPC} h l p @key{RET}}. Switching from @samp{@@home} to
3261@samp{@@WORK} would be done with @kbd{C-c C-c w @key{RET}} or 3296@samp{@@work} would be done with @kbd{C-c C-c w @key{RET}} or
3262alternatively with @kbd{C-c C-c C-c w}. Adding the non-predefined tag 3297alternatively with @kbd{C-c C-c C-c w}. Adding the non-predefined tag
3263@samp{Sarah} could be done with @kbd{C-c C-c @key{TAB} S a r a h 3298@samp{Sarah} could be done with @kbd{C-c C-c @key{TAB} S a r a h
3264@key{RET} @key{RET}}. 3299@key{RET} @key{RET}}.
@@ -3279,12 +3314,14 @@ when you press an extra @kbd{C-c}.
3279@cindex tag searches 3314@cindex tag searches
3280@cindex searching for tags 3315@cindex searching for tags
3281 3316
3282Once a tags system has been set up, it can be used to collect related 3317Once a system of tags has been set up, it can be used to collect related
3283information into special lists. 3318information into special lists.
3284 3319
3285@table @kbd 3320@table @kbd
3286@kindex C-c \ 3321@kindex C-c \
3322@kindex C-c / T
3287@item C-c \ 3323@item C-c \
3324@itemx C-c / T
3288Create a sparse tree with all headlines matching a tags search. With a 3325Create a sparse tree with all headlines matching a tags search. With a
3289@kbd{C-u} prefix argument, ignore headlines that are not a TODO line. 3326@kbd{C-u} prefix argument, ignore headlines that are not a TODO line.
3290@kindex C-c a m 3327@kindex C-c a m
@@ -3307,14 +3344,14 @@ positive selection. The AND operator @samp{&} is optional when @samp{+}
3307or @samp{-} is present. Examples: 3344or @samp{-} is present. Examples:
3308 3345
3309@table @samp 3346@table @samp
3310@item +WORK-BOSS 3347@item +work-boss
3311Select headlines tagged @samp{:WORK:}, but discard those also tagged 3348Select headlines tagged @samp{:work:}, but discard those also tagged
3312@samp{:BOSS:}. 3349@samp{:boss:}.
3313@item WORK|LAPTOP 3350@item work|laptop
3314Selects lines tagged @samp{:WORK:} or @samp{:LAPTOP:}. 3351Selects lines tagged @samp{:work:} or @samp{:laptop:}.
3315@item WORK|LAPTOP&NIGHT 3352@item work|laptop&night
3316Like before, but require the @samp{:LAPTOP:} lines to be tagged also 3353Like before, but require the @samp{:laptop:} lines to be tagged also
3317@samp{NIGHT}. 3354@samp{:night:}.
3318@end table 3355@end table
3319 3356
3320@cindex TODO keyword matching, with tags search 3357@cindex TODO keyword matching, with tags search
@@ -3330,48 +3367,65 @@ M}, or equivalently start the todo part after the slash with @samp{!}.
3330Examples: 3367Examples:
3331 3368
3332@table @samp 3369@table @samp
3333@item WORK/WAITING 3370@item work/WAITING
3334Select @samp{:WORK:}-tagged TODO lines with the specific TODO 3371Select @samp{:work:}-tagged TODO lines with the specific TODO
3335keyword @samp{WAITING}. 3372keyword @samp{WAITING}.
3336@item WORK/!-WAITING-NEXT 3373@item work/!-WAITING-NEXT
3337Select @samp{:WORK:}-tagged TODO lines that are neither @samp{WAITING} 3374Select @samp{:work:}-tagged TODO lines that are neither @samp{WAITING}
3338nor @samp{NEXT} 3375nor @samp{NEXT}
3339@item WORK/+WAITING|+NEXT 3376@item work/+WAITING|+NEXT
3340Select @samp{:WORK:}-tagged TODO lines that are either @samp{WAITING} or 3377Select @samp{:work:}-tagged TODO lines that are either @samp{WAITING} or
3341@samp{NEXT}. 3378@samp{NEXT}.
3342@end table 3379@end table
3343 3380
3344@cindex regular expressions, with tags search 3381@cindex regular expressions, with tags search
3345Any element of the tag/todo match can be a regular expression - in this 3382Any element of the tag/todo match can be a regular expression - in this
3346case it must be enclosed in curly braces. For example, 3383case it must be enclosed in curly braces. For example,
3347@samp{WORK+@{^BOSS.*@}} matches headlines that contain the tag 3384@samp{work+@{^boss.*@}} matches headlines that contain the tag
3348@samp{WORK} and any tag @i{starting} with @samp{BOSS}. 3385@samp{:work:} and any tag @i{starting} with @samp{boss}.
3349 3386
3350@cindex level, require for tags match 3387@cindex level, require for tags/property match
3351You can also require a headline to be of a certain level, by writing 3388@cindex category, require for tags/property match
3352instead of any TAG an expression like @samp{LEVEL=3}. For example, a 3389You can also require a headline to be of a certain level or category, by
3353search @samp{+LEVEL=3+BOSS/-DONE} lists all level three headlines that 3390writing instead of any TAG an expression like @samp{LEVEL=3} or
3354have the tag BOSS and are @emph{not} marked with the todo keyword DONE. 3391@samp{CATEGORY="work"}, respectively. For example, a search
3355 3392@samp{+LEVEL=3+boss/-DONE} lists all level three headlines that have the
3356@node Properties and columns, Timestamps, Tags, Top 3393tag @samp{boss} and are @emph{not} marked with the todo keyword DONE.
3394
3395@node Properties and columns, Dates and times, Tags, Top
3357@chapter Properties and Columns 3396@chapter Properties and Columns
3358@cindex properties 3397@cindex properties
3359 3398
3360Properties are a set of key-value pairs associated with an entry. There 3399Properties are a set of key-value pairs associated with an entry. There
3361are two main applications for properties in Org-mode. First, properties 3400are two main applications for properties in Org-mode. First, properties
3362are like tags, but with a value. For example, in a file where you 3401are like tags, but with a value. Second, you can use properties to
3363document bugs and plan releases of a piece of software, instead of using 3402implement (very basic) database capabilities in an Org-mode buffer. For
3364tags like @code{:release_1:}, @code{:release_2:}, it can be more 3403an example of the first application, imagine maintaining a file where
3365efficient to use a property @code{RELEASE} with a value @code{1.0} or 3404you document bugs and plan releases of a piece of software. Instead of
3366@code{2.0}. Second, you can use properties to implement (very basic) 3405using tags like @code{:release_1:}, @code{:release_2:}, one can use a
3367database capabilities in an Org-mode buffer, for example to create a 3406property, say @code{:Release:}, that in different subtrees has different
3368list of Music CD's you own. You can edit and view properties 3407values, such as @code{1.0} or @code{2.0}. For an example of the second
3408application of properties, imagine keeping track of one's music CD's,
3409where properties could be things such as the album artist, date of
3410release, number of tracks, and so on.
3411
3412Properties can be conveiently edited and viewed in column view
3413(@pxref{Column view}).
3414
3415Properties are like tags, but with a value. For example, in a file
3416where you document bugs and plan releases of a piece of software,
3417instead of using tags like @code{:release_1:}, @code{:release_2:}, it
3418can be more efficient to use a property @code{:Release:} with a value
3419@code{1.0} or @code{2.0}. Second, you can use properties to implement
3420(very basic) database capabilities in an Org-mode buffer, for example to
3421create a list of Music CD's you own. You can edit and view properties
3369conveniently in column view (@pxref{Column view}). 3422conveniently in column view (@pxref{Column view}).
3370 3423
3371@menu 3424@menu
3372* Property syntax:: How properties are spelled out 3425* Property syntax:: How properties are spelled out
3373* Special properties:: Access to other Org-mode features 3426* Special properties:: Access to other Org-mode features
3374* Property searches:: Matching property values 3427* Property searches:: Matching property values
3428* Property inheritance:: Passing values down the tree
3375* Column view:: Tabular viewing and editing 3429* Column view:: Tabular viewing and editing
3376* Property API:: Properties for Lisp programmers 3430* Property API:: Properties for Lisp programmers
3377@end menu 3431@end menu
@@ -3399,8 +3453,8 @@ first, and the value after it. Here is an example:
3399 :END: 3453 :END:
3400@end example 3454@end example
3401 3455
3402You may define the allowed values for a particular property @samp{XYZ} 3456You may define the allowed values for a particular property @samp{:Xyz:}
3403by setting a property @samp{XYZ_ALL}. This special property is 3457by setting a property @samp{:Xyz_ALL:}. This special property is
3404@emph{inherited}, so if you set it in a level 1 entry, it will apply to 3458@emph{inherited}, so if you set it in a level 1 entry, it will apply to
3405the entire tree. When allowed values are defined, setting the 3459the entire tree. When allowed values are defined, setting the
3406corresponding property becomes easier and is less prone to typing 3460corresponding property becomes easier and is less prone to typing
@@ -3434,6 +3488,10 @@ The following commands help to work with properties:
3434@item M-@key{TAB} 3488@item M-@key{TAB}
3435After an initial colon in a line, complete property keys. All keys used 3489After an initial colon in a line, complete property keys. All keys used
3436in the current file will be offered as possible completions. 3490in the current file will be offered as possible completions.
3491@kindex C-c C-x p
3492@item C-c C-x p
3493Set a property. This prompts for a property name and a value. If
3494necessary, the property drawer is created as well.
3437@item M-x org-insert-property-drawer 3495@item M-x org-insert-property-drawer
3438Insert a property drawer into the current entry. The drawer will be 3496Insert a property drawer into the current entry. The drawer will be
3439inserted early in the entry, but after the lines with planning 3497inserted early in the entry, but after the lines with planning
@@ -3452,6 +3510,9 @@ Switch property at point to the next/previous allowed value.
3452Remove a property from the current entry. 3510Remove a property from the current entry.
3453@item C-c C-c D 3511@item C-c C-c D
3454Globally remove a property, from all entries in the current file. 3512Globally remove a property, from all entries in the current file.
3513@item C-c C-c c
3514Compute the property at point, using the operator and scope from the
3515nearest column format definition.
3455@end table 3516@end table
3456 3517
3457@node Special properties, Property searches, Property syntax, Properties and columns 3518@node Special properties, Property searches, Property syntax, Properties and columns
@@ -3461,9 +3522,9 @@ Globally remove a property, from all entries in the current file.
3461Special properties provide alternative access method to Org-mode 3522Special properties provide alternative access method to Org-mode
3462features discussed in the previous chapters, like the TODO state or the 3523features discussed in the previous chapters, like the TODO state or the
3463priority of an entry. This interface exists so that you can include 3524priority of an entry. This interface exists so that you can include
3464these states into columns view (@pxref{Column view}). The following 3525these states into columns view (@pxref{Column view}), or to use them in
3465property names are special and should not be used as keys in the 3526queries. The following property names are special and should not be
3466properties drawer: 3527used as keys in the properties drawer:
3467 3528
3468@example 3529@example
3469TODO @r{The TODO keyword of the entry.} 3530TODO @r{The TODO keyword of the entry.}
@@ -3472,27 +3533,81 @@ ALLTAGS @r{All tags, including inherited ones.}
3472PRIORITY @r{The priority of the entry, a string with a single letter.} 3533PRIORITY @r{The priority of the entry, a string with a single letter.}
3473DEADLINE @r{The deadline time string, without the angular brackets.} 3534DEADLINE @r{The deadline time string, without the angular brackets.}
3474SCHEDULED @r{The scheduling time stamp, without the angular brackets.} 3535SCHEDULED @r{The scheduling time stamp, without the angular brackets.}
3536TIMESTAMP @r{The first keyword-less time stamp in the entry.}
3537TIMESTAMP_IA @r{The first inactive time stamp in the entry.}
3538CLOCKSUM @r{The sum of CLOCK intervals in the subtree. @code{org-clock-sum}}
3539 @r{must be run first to compute the values.}
3475@end example 3540@end example
3476 3541
3477@node Property searches, Column view, Special properties, Properties and columns 3542@node Property searches, Property inheritance, Special properties, Properties and columns
3478@section Property searches 3543@section Property searches
3479@cindex properties, searching 3544@cindex properties, searching
3545@cindex properties, inheritance
3546@cindex searching, of properties
3547@cindex inheritance, of properties
3480 3548
3481To create sparse trees and special lists with selection based on 3549To create sparse trees and special lists with selection based on
3482properties, the same commands are used as for tag searches (@pxref{Tag 3550properties, the same commands are used as for tag searches (@pxref{Tag
3483searches}), and the same logic applies. For example, a search string 3551searches}), and the same logic applies. For example, a search string
3484 3552
3485@example 3553@example
3486+WORK-BOSS+PRIORITY="A"+coffee="unlimited"+with=@{Sarah\|Denny@} 3554+work-boss+PRIORITY="A"+Coffee="unlimited"+With=@{Sarah\|Denny@}
3487@end example 3555@end example
3488 3556
3489@noindent 3557@noindent
3490finds entries tagged @samp{:WORK:} but not @samp{:BOSS:}, which 3558finds entries tagged @samp{:work:} but not @samp{:boss:}, which
3491also have a priority value @samp{A}, a @samp{:coffee:} property with the 3559also have a priority value @samp{A}, a @samp{:Coffee:} property with the
3492value @samp{unlimited}, and a @samp{:with:} property that is matched by 3560value @samp{unlimited}, and a @samp{:With:} property that is matched by
3493the regular expression @samp{Sarah\|Denny}. 3561the regular expression @samp{Sarah\|Denny}.
3494 3562
3495@node Column view, Property API, Property searches, Properties and columns 3563You can configure Org-mode to use property inheritance during a search,
3564see @ref{Property inheritance} for details.
3565
3566There is also a special command for creating sparse trees based on a
3567single property:
3568
3569@table @kbd
3570@kindex C-c / p
3571@item C-c / p
3572Create a sparse tree based on the value of a property. This first
3573prompts for the name of a property, and then for a value. A sparse tree
3574is created with all entries that define this property with the given
3575value. If you enclose the value into curly braces, it is interpreted as
3576a regular expression and matched against the property values.
3577@end table
3578
3579@node Property inheritance, Column view, Property searches, Properties and columns
3580@section Property Inheritance
3581
3582The outline structure of Org-mode documents lends itself for an
3583inheritance model of properties: If the parent in a tree has a certain
3584property, the children can inherit this property. Org-mode does not
3585turn this on by default, because it can slow down property searches
3586significantly and is often not needed. However, if you find inheritance
3587useful, you can turn it on by setting the variable
3588@code{org-use-property-inheritance}. It may be set to @code{t}, to make
3589all properties inherited from the parent, or to a list of properties
3590that should be inherited.
3591
3592Org-mode has a few properties for which inheritance is hard-coded, at
3593least for the special applications for which they are used:
3594
3595@table @code
3596@item COLUMNS
3597The @code{:COLUMNS:} property defines the format of column view
3598(@pxref{Column view}). It is inherited in the sense that the level
3599where a @code{:COLUMNS:} property is defined is used as the starting
3600point for a column view table, independently of the location in the
3601subtree from where columns view is turned on.
3602@item CATEGORY
3603For agenda view, a category set through a @code{:CATEGORY:} property
3604applies to the entire subtree.
3605@item ARCHIVE
3606For archiving, the @code{:ARCHIVE:} property may define the archive
3607location for the entire subtree (@pxref{Moving subtrees}).
3608@end table
3609
3610@node Column view, Property API, Property inheritance, Properties and columns
3496@section Column View 3611@section Column View
3497 3612
3498A great way to view and edit properties in an outline tree is 3613A great way to view and edit properties in an outline tree is
@@ -3512,6 +3627,7 @@ queries have collected selected items, possibly from a number of files.
3512@menu 3627@menu
3513* Defining columns:: The COLUMNS format property 3628* Defining columns:: The COLUMNS format property
3514* Using column view:: How to create and use column view 3629* Using column view:: How to create and use column view
3630* Capturing Column View:: A dynamic block for column view
3515@end menu 3631@end menu
3516 3632
3517@node Defining columns, Using column view, Column view, Column view 3633@node Defining columns, Using column view, Column view, Column view
@@ -3536,8 +3652,9 @@ To define a column format for an entire file, use a line like
3536#+COLUMNS: %25ITEM %TAGS %PRIORITY %TODO 3652#+COLUMNS: %25ITEM %TAGS %PRIORITY %TODO
3537@end example 3653@end example
3538 3654
3539To specify a format that only applies to a specific tree, add a COLUMNS 3655To specify a format that only applies to a specific tree, add a
3540property to the top node of that tree, for example 3656@code{:COLUMNS:} property to the top node of that tree, for example:
3657
3541@example 3658@example
3542** Top node for columns view 3659** Top node for columns view
3543 :PROPERTIES: 3660 :PROPERTIES:
@@ -3545,7 +3662,7 @@ property to the top node of that tree, for example
3545 :END: 3662 :END:
3546@end example 3663@end example
3547 3664
3548If a @code{COLUMNS} property is present in an entry, it defines columns 3665If a @code{:COLUMNS:} property is present in an entry, it defines columns
3549for the entry itself, and for the entire subtree below it. Since the 3666for the entry itself, and for the entire subtree below it. Since the
3550column definition is part of the hierarchical structure of the document, 3667column definition is part of the hierarchical structure of the document,
3551you can define columns on level 1 that are general enough for all 3668you can define columns on level 1 that are general enough for all
@@ -3574,9 +3691,11 @@ property @r{The property that should be edited in this column.}
3574@{summary-type@} @r{The summary type. If specified, the column values for} 3691@{summary-type@} @r{The summary type. If specified, the column values for}
3575 @r{parent nodes are computed from the children.} 3692 @r{parent nodes are computed from the children.}
3576 @r{Supported summary types are:} 3693 @r{Supported summary types are:}
3577 @{+@} @r{Sum numbers in this column.} 3694 @{+@} @r{Sum numbers in this column.}
3578 @{:@} @r{Sum times, HH:MM:SS, plain numbers are hours.} 3695 @{+;%.1f@} @r{Like @samp{+}, but format result with @samp{%.1f}.}
3579 @{X@} @r{Checkbox status, [X] if all children are [X].} 3696 @{$@} @r{Currency, short for @samp{+;%.2f}.}
3697 @{:@} @r{Sum times, HH:MM:SS, plain numbers are hours.}
3698 @{X@} @r{Checkbox status, [X] if all children are [X].}
3580@end example 3699@end example
3581 3700
3582@noindent 3701@noindent
@@ -3584,7 +3703,8 @@ Here is an example for a complete columns definition, along with allowed
3584values. 3703values.
3585 3704
3586@example 3705@example
3587:COLUMNS: %20ITEM %9Approved(Approved?)@{X@} %Owner %11Status %10Time_Spent@{:@} 3706:COLUMNS: %20ITEM %9Approved(Approved?)@{X@} %Owner %11Status \@footnote{Please note that the COLUMNS definition must be on a single line - it is wrapped here only because of formatting constraints.}
3707 %10Time_Estimate@{:@} %CLOCKSUM
3588:Owner_ALL: Tammy Mark Karl Lisa Don 3708:Owner_ALL: Tammy Mark Karl Lisa Don
3589:Status_ALL: "In progress" "Not started yet" "Finished" "" 3709:Status_ALL: "In progress" "Not started yet" "Finished" ""
3590:Approved_ALL: "[ ]" "[X]" 3710:Approved_ALL: "[ ]" "[X]"
@@ -3599,11 +3719,13 @@ field @samp{Approved}. When no width is given after the @samp{%}
3599character, the column will be exactly as wide as it needs to be in order 3719character, the column will be exactly as wide as it needs to be in order
3600to fully display all values. The @samp{Approved} column does have a 3720to fully display all values. The @samp{Approved} column does have a
3601modified title (@samp{Approved?}, with a question mark). Summaries will 3721modified title (@samp{Approved?}, with a question mark). Summaries will
3602be created for the @samp{Time_Spent} column by adding time duration 3722be created for the @samp{Time_Estimate} column by adding time duration
3603expressions like HH:MM, and for the @samp{Approved} column, by providing 3723expressions like HH:MM, and for the @samp{Approved} column, by providing
3604an @samp{[X]} status if all children have been checked. 3724an @samp{[X]} status if all children have been checked. The
3725@samp{CLOCKSUM} column is special, it lists the sum of CLOCK intervals
3726in the subtree.
3605 3727
3606@node Using column view, , Defining columns, Column view 3728@node Using column view, Capturing Column View, Defining columns, Column view
3607@subsection Using Column View 3729@subsection Using Column View
3608 3730
3609@table @kbd 3731@table @kbd
@@ -3611,9 +3733,9 @@ an @samp{[X]} status if all children have been checked.
3611@kindex C-c C-x C-c 3733@kindex C-c C-x C-c
3612@item C-c C-x C-c 3734@item C-c C-x C-c
3613Create the column view for the local environment. This command searches 3735Create the column view for the local environment. This command searches
3614the hierarchy, up from point, for a @code{COLUMNS} property that defines 3736the hierarchy, up from point, for a @code{:COLUMNS:} property that defines
3615a format. When one is found, the column view table is established for 3737a format. When one is found, the column view table is established for
3616the entire tree, starting from the entry that contains the @code{COLUMNS} 3738the entire tree, starting from the entry that contains the @code{:COLUMNS:}
3617property. If none is found, the format is taken from the @code{#+COLUMNS} 3739property. If none is found, the format is taken from the @code{#+COLUMNS}
3618line or from the variable @code{org-columns-default-format}, and column 3740line or from the variable @code{org-columns-default-format}, and column
3619view is established for the current entry and its subtree. 3741view is established for the current entry and its subtree.
@@ -3638,6 +3760,9 @@ Edit the property at point. For the special properties, this will
3638invoke the same interface that you normally use to change that 3760invoke the same interface that you normally use to change that
3639property. For example, when editing a TAGS property, the tag completion 3761property. For example, when editing a TAGS property, the tag completion
3640or fast selection interface will pop up. 3762or fast selection interface will pop up.
3763@kindex C-c C-c
3764@item C-c C-c
3765When there is a checkbox at point, toggle it.
3641@kindex v 3766@kindex v
3642@item v 3767@item v
3643View the full value of this property. This is useful if the width of 3768View the full value of this property. This is useful if the width of
@@ -3661,6 +3786,62 @@ Insert a new column, to the right of the current column.
3661Delete the current column. 3786Delete the current column.
3662@end table 3787@end table
3663 3788
3789@node Capturing Column View, , Using column view, Column view
3790@subsection Capturing Column View
3791
3792Since column view is just an overlay over a buffer, it cannot be
3793exported or printed directly. If you want to capture a column view, use
3794the dynamic block (@pxref{Dynamic blocks}). The frame of this block
3795looks like this:
3796
3797@example
3798* The column view
3799#+BEGIN: columnview :hlines 1 :id "label"
3800
3801#+END:
3802@end example
3803
3804@noindent This dynamic block has the following parameters:
3805
3806@table @code
3807@item :id
3808This is most important parameter. Column view is a feature that is
3809often localized to a certain (sub)tree, and the capture block might be
3810in a different location in the file. To identify the tree whose view to
3811capture, you can use 3 values:
3812@example
3813local @r{use the tree in which the capture block is located}
3814global @r{make a global view, including all headings in the file}
3815"label" @r{call column view in the tree that has and @code{:ID:}}
3816 @r{property with the value @i{label}}
3817@end example
3818@item :hlines
3819When @code{t}, insert a hline after every line. When a number N, insert
3820a hline before each headline with level @code{<= N}.
3821@item :vlines
3822When set to @code{t}, enforce column groups to get vertical lines.
3823@end table
3824
3825@noindent
3826The following commands insert or update the dynamic block:
3827
3828@table @kbd
3829@kindex C-c C-x r
3830@item C-c C-x r
3831Insert a dynamic block capturing a column view. You will be prompted
3832for the scope or id of the view.
3833@kindex C-c C-c
3834@item C-c C-c
3835@kindex C-c C-x C-u
3836@itemx C-c C-x C-u
3837Update dynamical block at point. The cursor needs to be in the
3838@code{#+BEGIN} line of the dynamic block.
3839@kindex C-u C-c C-x C-u
3840@item C-u C-c C-x C-u
3841Update all dynamic blocks (@pxref{Dynamic blocks}). This is useful if
3842you have several clocktable blocks in a buffer.
3843@end table
3844
3664@node Property API, , Column view, Properties and columns 3845@node Property API, , Column view, Properties and columns
3665@section The Property API 3846@section The Property API
3666@cindex properties, API 3847@cindex properties, API
@@ -3671,23 +3852,29 @@ be used by Emacs Lisp programs to work with properties and to implement
3671features based on them. For more information see @ref{Using the 3852features based on them. For more information see @ref{Using the
3672property API}. 3853property API}.
3673 3854
3674@node Timestamps, Agenda views, Properties and columns, Top 3855@node Dates and times, Remember, Properties and columns, Top
3675@chapter Timestamps 3856@chapter Dates and Times
3857@cindex dates
3858@cindex times
3676@cindex time stamps 3859@cindex time stamps
3677@cindex date stamps 3860@cindex date stamps
3678 3861
3679Items can be labeled with timestamps to make them useful for project 3862To assist project planning, TODO items can be labeled with a date and/or
3680planning. 3863a time. The specially formatted string carrying the date and time
3864information is called a @emph{timestamp} in Org-mode. This may be a
3865little confusing because timestamp is often used as indicating when
3866something was created or last changed. However, in Org-mode this term
3867is used in a much wider sense.
3681 3868
3682@menu 3869@menu
3683* Time stamps:: Assigning a time to a tree entry 3870* Time stamps:: Assigning a time to a tree entry
3684* Creating timestamps:: Commands which insert timestamps 3871* Creating timestamps:: Commands which insert timestamps
3685* Deadlines and scheduling:: Planning your work 3872* Deadlines and scheduling:: Planning your work
3686* Progress logging:: Documenting when what work was done. 3873* Clocking work time::
3687@end menu 3874@end menu
3688 3875
3689 3876
3690@node Time stamps, Creating timestamps, Timestamps, Timestamps 3877@node Time stamps, Creating timestamps, Dates and times, Dates and times
3691@section Time stamps, deadlines and scheduling 3878@section Time stamps, deadlines and scheduling
3692@cindex time stamps 3879@cindex time stamps
3693@cindex ranges, time 3880@cindex ranges, time
@@ -3698,20 +3885,19 @@ planning.
3698A time stamp is a specification of a date (possibly with time or a range 3885A time stamp is a specification of a date (possibly with time or a range
3699of times) in a special format, either @samp{<2003-09-16 Tue>} or 3886of times) in a special format, either @samp{<2003-09-16 Tue>} or
3700@samp{<2003-09-16 Tue 09:39>} or @samp{<2003-09-16 Tue 3887@samp{<2003-09-16 Tue 09:39>} or @samp{<2003-09-16 Tue
370112:00-12:30>}@footnote{This is the standard ISO date/time format. If 388812:00-12:30>}@footnote{This is the standard ISO date/time format. To
3702you cannot get used to these, see @ref{Custom time format}}. A time 3889use an alternative format, see @ref{Custom time format}.}. A time stamp
3703stamp can appear anywhere in the headline or body of an org-tree entry. 3890can appear anywhere in the headline or body of an org-tree entry. Its
3704Its presence causes entries to be shown on specific dates in the agenda 3891presence causes entries to be shown on specific dates in the agenda
3705(@pxref{Weekly/Daily agenda}). We distinguish: 3892(@pxref{Weekly/Daily agenda}). We distinguish:
3706 3893
3707@table @var 3894@table @var
3708@item Plain time stamp 3895@item Plain time stamp; Event; Appointment
3709@cindex timestamp 3896@cindex timestamp
3710A simple time stamp just assigns a date/time to an item. This is just 3897A simple time stamp just assigns a date/time to an item. This is just
3711like writing down an appointment in a paper agenda, or like writing down 3898like writing down an appointment or event in a paper agenda. In the
3712an event in a diary, when you want to take note of when something 3899timeline and agenda displays, the headline of an entry associated with a
3713happened. In the timeline and agenda displays, the headline of an entry 3900plain time stamp will be shown exactly on that date.
3714associated with a plain time stamp will be shown exactly on that date.
3715 3901
3716@example 3902@example
3717* Meet Peter at the movies <2006-11-01 Wed 19:15> 3903* Meet Peter at the movies <2006-11-01 Wed 19:15>
@@ -3764,7 +3950,7 @@ angular ones. These time stamps are inactive in the sense that they do
3764 3950
3765@end table 3951@end table
3766 3952
3767@node Creating timestamps, Deadlines and scheduling, Time stamps, Timestamps 3953@node Creating timestamps, Deadlines and scheduling, Time stamps, Dates and times
3768@section Creating timestamps 3954@section Creating timestamps
3769@cindex creating timestamps 3955@cindex creating timestamps
3770@cindex timestamps, creating 3956@cindex timestamps, creating
@@ -3842,22 +4028,52 @@ into the following column).
3842@cindex date, reading in minibuffer 4028@cindex date, reading in minibuffer
3843@cindex time, reading in minibuffer 4029@cindex time, reading in minibuffer
3844 4030
3845When Org-mode prompts for a date/time, the prompt suggests to enter an 4031When Org-mode prompts for a date/time, the default is shown as an ISO
3846ISO date. But it will in fact accept any string containing some date 4032date, and the prompt therefore seems to ask for an ISO date. But it
3847and/or time information. You can, for example, use @kbd{C-y} to paste a 4033will in fact accept any string containing some date and/or time
3848(possibly multi-line) string copied from an email message. Org-mode 4034information, and it is really smart about interpreting your input. You
3849will find whatever information is in there and will replace anything not 4035can, for example, use @kbd{C-y} to paste a (possibly multi-line) string
3850specified with the current date and time. For example: 4036copied from an email message. Org-mode will find whatever information
3851 4037is in there and derive anything you have not specified from the
3852@example 4038@emph{default date and time}. The default is usually the current date
3853 3-2-5 --> 2003-02-05 4039and time, but when modifying an existing time stamp, or when entering
3854 feb 15 --> currentyear-02-15 4040the second stamp of a range, it is taken from the stamp in the buffer.
3855 sep 12 9 --> 2009-09-12 4041When filling in information, Org-mode assumes that most of the time you
3856 12:45 --> today 12:45 4042will want to enter a date in the future: If you omit the month/year and
3857 22 sept 0:34 --> currentyear-09-22 0:34 4043the given day/month is @i{before} today, it will assume that you mean a
3858 12 --> currentyear-currentmonth-12 4044future date@footnote{See the variable
3859 Fri --> nearest Friday (today or later) 4045@code{org-read-date-prefer-future}.}.
3860 +4 --> 4 days from now (if +N is the only thing given) 4046
4047For example, lets assume that today is @b{June 13, 2006}. Here is how
4048various inputs will be interpreted, the items filled in by Org-mode are
4049in @b{bold}.
4050
4051@example
40523-2-5 --> 2003-02-05
405314 --> @b{2006}-@b{06}-14
405412 --> @b{2006}-@b{07}-12
4055Fri --> nearest Friday (defaultdate or later)
4056sep 15 --> @b{2006}-11-15
4057feb 15 --> @b{2007}-02-15
4058sep 12 9 --> 2009-09-12
405912:45 --> @b{2006}-@b{06}-@b{13} 12:45
406022 sept 0:34 --> @b{2006}-09-22 0:34
4061@end example
4062
4063Furthermore you can specify a relative date by giving, as the
4064@emph{first} thing in the input: a plus/minus sign, a number and a
4065letter [dwmy] to indicate change in days weeks, months, years. With a
4066single plus or minus, the date is always relative to today. With a
4067double plus or minus, it is relative to the default date. If instead of
4068a single letter, you use the abbreviation of day name, the date will be
4069the nth such day. E.g.
4070
4071@example
4072+4d --> four days from today
4073+4 --> same as above
4074+2w --> two weeks from today
4075++5 --> five days from default date
4076+2tue --> second tuesday from now.
3861@end example 4077@end example
3862 4078
3863The function understands English month and weekday abbreviations. If 4079The function understands English month and weekday abbreviations. If
@@ -3873,38 +4089,30 @@ prompt, either by clicking on a date in the calendar, or by pressing
3873information entered at the prompt. You can control the calendar fully 4089information entered at the prompt. You can control the calendar fully
3874from the minibuffer: 4090from the minibuffer:
3875 4091
3876@table @kbd
3877@kindex < 4092@kindex <
3878@item <
3879Scroll calendar backwards by one month.
3880@kindex > 4093@kindex >
3881@item >
3882Scroll calendar forwards by one month.
3883@kindex mouse-1 4094@kindex mouse-1
3884@item mouse-1
3885Select date by clicking on it.
3886@kindex S-@key{right} 4095@kindex S-@key{right}
3887@item S-@key{right}
3888One day forward.
3889@kindex S-@key{left} 4096@kindex S-@key{left}
3890@item S-@key{left}
3891One day back.
3892@kindex S-@key{down} 4097@kindex S-@key{down}
3893@item S-@key{down}
3894One week forward.
3895@kindex S-@key{up} 4098@kindex S-@key{up}
3896@item S-@key{up}
3897One week back.
3898@kindex M-S-@key{right} 4099@kindex M-S-@key{right}
3899@item M-S-@key{right}
3900One month forward.
3901@kindex M-S-@key{left} 4100@kindex M-S-@key{left}
3902@item M-S-@key{left}
3903One month back.
3904@kindex @key{RET} 4101@kindex @key{RET}
3905@item @key{RET} 4102@example
3906Choose date in calendar (only if nothing was typed into minibuffer). 4103> / < @r{Scroll calendar forward/backward by one month.}
3907@end table 4104mouse-1 @r{Select date by clicking on it.}
4105S-@key{right}/@key{left} @r{One day forward/backward.}
4106S-@key{down}/@key{up} @r{One week forward/backward.}
4107M-S-@key{right}/@key{left} @r{One month forward/backward.}
4108@key{RET} @r{Choose date in calendar.}
4109@end example
4110
4111The actions of the date/time prompt may seem complex, but I asure you
4112they will grow on you. To help you understand what is going on, the
4113current interpretation of your input will be displayed live in the
4114minibuffer@footnote{If you find this distracting, turn the display of
4115with @code{org-read-date-display-live}.}.
3908 4116
3909@node Custom time format, , The date/time prompt, Creating timestamps 4117@node Custom time format, , The date/time prompt, Creating timestamps
3910@subsection Custom time format 4118@subsection Custom time format
@@ -3953,20 +4161,23 @@ format is shorter, things do work as expected.
3953@end itemize 4161@end itemize
3954 4162
3955 4163
3956@node Deadlines and scheduling, Progress logging, Creating timestamps, Timestamps 4164@node Deadlines and scheduling, Clocking work time, Creating timestamps, Dates and times
3957@section Deadlines and Scheduling 4165@section Deadlines and Scheduling
3958 4166
3959A time stamp may be preceded by special keywords to facilitate planning 4167A time stamp may be preceded by special keywords to facilitate planning:
3960of work:
3961 4168
3962@table @var 4169@table @var
3963@item DEADLINE 4170@item DEADLINE
3964@cindex DEADLINE keyword 4171@cindex DEADLINE keyword
3965The task (most likely a TODO item) is supposed to be finished on that 4172
3966date, and it will be listed then. In addition, the compilation for 4173Meaning: the task (most likely a TODO item, though not necessarily) is supposed
3967@emph{today} will carry a warning about the approaching or missed 4174to be finished on that date.
3968deadline, starting @code{org-deadline-warning-days} before the due date, 4175
3969and continuing until the entry is marked DONE. An example: 4176On the deadline date, the task will be listed in the agenda. In
4177addition, the agenda for @emph{today} will carry a warning about the
4178approaching or missed deadline, starting
4179@code{org-deadline-warning-days} before the due date, and continuing
4180until the entry is marked DONE. An example:
3970 4181
3971@example 4182@example
3972*** TODO write article about the Earth for the Guide 4183*** TODO write article about the Earth for the Guide
@@ -3980,9 +4191,12 @@ period of 5 days @code{DEADLINE: <2004-02-29 Sun -5d>}.
3980 4191
3981@item SCHEDULED 4192@item SCHEDULED
3982@cindex SCHEDULED keyword 4193@cindex SCHEDULED keyword
3983You are planning to start working on that task on the given date. The 4194
3984headline will be listed under the given date@footnote{It will still be 4195Meaning: you are planning to start working on that task on the given
3985listed on that date after it has been marked DONE. If you don't like 4196date.
4197
4198The headline will be listed under the given date@footnote{It will still
4199be listed on that date after it has been marked DONE. If you don't like
3986this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In 4200this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In
3987addition, a reminder that the scheduled date has passed will be present 4201addition, a reminder that the scheduled date has passed will be present
3988in the compilation for @emph{today}, until the entry is marked DONE. 4202in the compilation for @emph{today}, until the entry is marked DONE.
@@ -3992,8 +4206,29 @@ I.e., the task will automatically be forwarded until completed.
3992*** TODO Call Trillian for a date on New Years Eve. 4206*** TODO Call Trillian for a date on New Years Eve.
3993 SCHEDULED: <2004-12-25 Sat> 4207 SCHEDULED: <2004-12-25 Sat>
3994@end example 4208@end example
4209
4210@noindent
4211@b{Important:} Scheduling an item in Org-mode should @i{not} be
4212understood in the same way that we understand @i{scheduling a meeting}.
4213Setting a date for a meeting is just a simple appointment, you should
4214mark this entry with a simple plain time stamp, to get this item shown
4215on the date where it applies. This is a frequent mis-understanding from
4216Org-users. In Org-mode, @i{scheduling} means setting a date when you
4217want to start working on an action item.
3995@end table 4218@end table
3996 4219
4220You may use time stamps with repeaters in scheduling and deadline
4221entries. Org-mode will issue early and late warnings based on the
4222assumption that the time stamp represents the @i{nearest instance} of
4223the repeater. However, the use of diary sexp entries like
4224@c
4225@code{<%%(diary-float t 42)>}
4226@c
4227in scheduling and deadline timestamps is limited. Org-mode does not
4228know enough about the internals of each sexp function to issue early and
4229late warnings. However, it will show the item on each day where the
4230sexp entry matches.
4231
3997@menu 4232@menu
3998* Inserting deadline/schedule:: Planning items 4233* Inserting deadline/schedule:: Planning items
3999* Repeated tasks:: Items that show up again and again 4234* Repeated tasks:: Items that show up again and again
@@ -4010,35 +4245,40 @@ an item:
4010@kindex C-c C-d 4245@kindex C-c C-d
4011@item C-c C-d 4246@item C-c C-d
4012Insert @samp{DEADLINE} keyword along with a stamp. The insertion will 4247Insert @samp{DEADLINE} keyword along with a stamp. The insertion will
4013happen in the line directly following the headline. 4248happen in the line directly following the headline. When called with a
4249prefix arg, an existing deadline will be removed from the entry.
4014@c FIXME Any CLOSED timestamp will be removed.???????? 4250@c FIXME Any CLOSED timestamp will be removed.????????
4015@c 4251@c
4016@kindex C-c C-w 4252@kindex C-c / d
4017@cindex sparse tree, for deadlines 4253@cindex sparse tree, for deadlines
4018@item C-c C-w 4254@item C-c / d
4019Create a sparse tree with all deadlines that are either past-due, or 4255Create a sparse tree with all deadlines that are either past-due, or
4020which will become due within @code{org-deadline-warning-days}. 4256which will become due within @code{org-deadline-warning-days}.
4021With @kbd{C-u} prefix, show all deadlines in the file. With a numeric 4257With @kbd{C-u} prefix, show all deadlines in the file. With a numeric
4022prefix, check that many days. For example, @kbd{C-1 C-c C-w} shows 4258prefix, check that many days. For example, @kbd{C-1 C-c / d} shows
4023all deadlines due tomorrow. 4259all deadlines due tomorrow.
4024@c 4260@c
4025@kindex C-c C-s 4261@kindex C-c C-s
4026@item C-c C-s 4262@item C-c C-s
4027Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will 4263Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will
4028happen in the line directly following the headline. Any CLOSED 4264happen in the line directly following the headline. Any CLOSED
4029timestamp will be removed. 4265timestamp will be removed. When called with a prefix argument, remove
4266the scheduling date from the entry.
4030@end table 4267@end table
4031 4268
4032@node Repeated tasks, , Inserting deadline/schedule, Deadlines and scheduling 4269@node Repeated tasks, , Inserting deadline/schedule, Deadlines and scheduling
4033@subsection Repeated Tasks 4270@subsection Repeated Tasks
4034 4271
4035Some tasks need to be repeated again and again, and Org-mode therefore 4272Some tasks need to be repeated again and again. Org-mode helps to
4036allows to use a repeater in a DEADLINE or SCHEDULED time stamp, for 4273organize such tasks using a so-called repeater in a DEADLINE or
4037example: 4274SCHEDULED time stamp. In the following example
4038@example 4275@example
4039** TODO Pay the rent 4276** TODO Pay the rent
4040 DEADLINE: <2005-10-01 Sat +1m> 4277 DEADLINE: <2005-10-01 Sat +1m>
4041@end example 4278@end example
4279the @code{+1m} is a repeater; the intended interpretation is that the
4280task has a deadline on <2005-10-01> and repeats itself every (one) month
4281starting from that time.
4042 4282
4043Deadlines and scheduled items produce entries in the agenda when they 4283Deadlines and scheduled items produce entries in the agenda when they
4044are over-due, so it is important to be able to mark such an entry as 4284are over-due, so it is important to be able to mark such an entry as
@@ -4057,9 +4297,11 @@ actually switch the date like this:
4057 DEADLINE: <2005-11-01 Tue +1m> 4297 DEADLINE: <2005-11-01 Tue +1m>
4058@end example 4298@end example
4059 4299
4060You will also be prompted for a note that will be put under the DEADLINE 4300You will also be prompted for a note@footnote{You can change this using
4061line to keep a record that you actually acted on the previous instance 4301the option @code{org-log-repeat}, or the @code{#+STARTUP} options
4062of this deadline. 4302@code{logrepeat} and @code{nologrepeat}.} that will be put under the
4303DEADLINE line to keep a record that you actually acted on the previous
4304instance of this deadline.
4063 4305
4064As a consequence of shifting the base date, this entry will no longer be 4306As a consequence of shifting the base date, this entry will no longer be
4065visible in the agenda when checking past dates, but all future instances 4307visible in the agenda when checking past dates, but all future instances
@@ -4068,77 +4310,8 @@ will be visible.
4068You may have both scheduling and deadline information for a specific 4310You may have both scheduling and deadline information for a specific
4069task - just make sure that the repeater intervals on both are the same. 4311task - just make sure that the repeater intervals on both are the same.
4070 4312
4071@node Progress logging, , Deadlines and scheduling, Timestamps 4313@node Clocking work time, , Deadlines and scheduling, Dates and times
4072@section Progress Logging 4314@section Clocking work time
4073@cindex progress logging
4074@cindex logging, of progress
4075
4076Org-mode can automatically record a time stamp when you mark a TODO item
4077as DONE, or even each time when you change the state of a TODO item.
4078You can also measure precisely the time you spent on specific items in a
4079project by starting and stopping a clock when you start and stop working
4080on an aspect of a project.
4081
4082@menu
4083* Closing items:: When was this entry marked DONE?
4084* Tracking TODO state changes:: When did the status change?
4085* Clocking work time:: When exactly did you work on this item?
4086@end menu
4087
4088@node Closing items, Tracking TODO state changes, Progress logging, Progress logging
4089@subsection Closing items
4090
4091If you want to keep track of @emph{when} a certain TODO item was
4092finished, turn on logging with@footnote{The corresponding in-buffer
4093setting is: @code{#+STARTUP: logdone}}
4094
4095@lisp
4096(setq org-log-done t)
4097@end lisp
4098
4099@noindent
4100Then each time you turn a TODO entry into DONE using either @kbd{C-c
4101C-t} in the Org-mode buffer or @kbd{t} in the agenda buffer, a line
4102@samp{CLOSED: [timestamp]} will be inserted just after the headline. If
4103you turn the entry back into a TODO item through further state cycling,
4104that line will be removed again. In the timeline (@pxref{Timeline}) and
4105in the agenda (@pxref{Weekly/Daily agenda}), you can then use the
4106@kbd{l} key to display the TODO items closed on each day, giving you an
4107overview of what has been done on a day. If you want to record a note
4108along with the timestamp, use@footnote{The corresponding in-buffer
4109setting is: @code{#+STARTUP: lognotedone}}
4110
4111@lisp
4112(setq org-log-done '(done))
4113@end lisp
4114
4115@node Tracking TODO state changes, Clocking work time, Closing items, Progress logging
4116@subsection Tracking TODO state changes
4117
4118When TODO keywords are used as workflow states (@pxref{Workflow
4119states}), you might want to keep track of when a state change occurred,
4120and you may even want to attach notes to that state change. With the
4121setting
4122
4123@lisp
4124(setq org-log-done '(state))
4125@end lisp
4126
4127@noindent
4128each state change will prompt you for a note that will be attached to
4129the current headline. Very likely you do not want this verbose tracking
4130all the time, so it is probably better to configure this behavior with
4131in-buffer options. For example, if you are tracking purchases, put
4132these into a separate file that starts with:
4133
4134@example
4135#+SEQ_TODO: TODO ORDERED INVOICE PAYED RECEIVED SENT
4136#+STARTUP: lognotestate
4137@end example
4138
4139
4140@node Clocking work time, , Tracking TODO state changes, Progress logging
4141@subsection Clocking work time
4142 4315
4143Org-mode allows you to clock the time you spent on specific tasks in a 4316Org-mode allows you to clock the time you spent on specific tasks in a
4144project. When you start working on an item, you can start the clock. 4317project. When you start working on an item, you can start the clock.
@@ -4150,7 +4323,10 @@ also computes the total time spent on each subtree of a project.
4150@kindex C-c C-x C-i 4323@kindex C-c C-x C-i
4151@item C-c C-x C-i 4324@item C-c C-x C-i
4152Start the clock on the current item (clock-in). This inserts the CLOCK 4325Start the clock on the current item (clock-in). This inserts the CLOCK
4153keyword together with a timestamp. 4326keyword together with a timestamp. If this is not the first clocking of
4327this item, the multiple CLOCK lines will be wrapped into a
4328@code{:CLOCK:} drawer (see also the variable
4329@code{org-clock-into-drawer}.
4154@kindex C-c C-x C-o 4330@kindex C-c C-x C-o
4155@item C-c C-x C-o 4331@item C-c C-x C-o
4156Stop the clock (clock-out). The inserts another timestamp at the same 4332Stop the clock (clock-out). The inserts another timestamp at the same
@@ -4173,6 +4349,10 @@ if it is running in this same item.
4173@item C-c C-x C-x 4349@item C-c C-x C-x
4174Cancel the current clock. This is useful if a clock was started by 4350Cancel the current clock. This is useful if a clock was started by
4175mistake, or if you ended up working on something else. 4351mistake, or if you ended up working on something else.
4352@kindex C-c C-x C-j
4353@item C-c C-x C-j
4354Jump to the entry that contains the currently running clock, an another
4355window.
4176@kindex C-c C-x C-d 4356@kindex C-c C-x C-d
4177@item C-c C-x C-d 4357@item C-c C-x C-d
4178Display time summaries for each subtree in the current buffer. This 4358Display time summaries for each subtree in the current buffer. This
@@ -4184,18 +4364,29 @@ when you change the buffer (see variable
4184@kindex C-c C-x C-r 4364@kindex C-c C-x C-r
4185@item C-c C-x C-r 4365@item C-c C-x C-r
4186Insert a dynamic block (@pxref{Dynamic blocks}) containing a clock 4366Insert a dynamic block (@pxref{Dynamic blocks}) containing a clock
4187report as an org-mode table into the current file. 4367report as an org-mode table into the current file. When the cursor is
4368at an existing clock table, just update it. When called with a prefix
4369argument, jump to the first clock report in the current document and
4370update it.
4188@example 4371@example
4189#+BEGIN: clocktable :maxlevel 2 :emphasize nil 4372#+BEGIN: clocktable :maxlevel 2 :emphasize nil :scope file
4190 4373
4191#+END: clocktable 4374#+END: clocktable
4192@end example 4375@end example
4193@noindent 4376@noindent
4194If such a block already exists, its content is replaced by the new 4377If such a block already exists at point, its content is replaced by the
4195table. The @samp{BEGIN} line can specify options: 4378new table. The @samp{BEGIN} line can specify options:
4196@example 4379@example
4197:maxlevels @r{Maximum level depth to which times are listed in the table.} 4380:maxlevel @r{Maximum level depth to which times are listed in the table.}
4198:emphasize @r{When @code{t}, emphasize level one and level two items} 4381:emphasize @r{When @code{t}, emphasize level one and level two items}
4382:scope @r{The scope to consider. This can be any of the following:}
4383 nil @r{the current buffer or narrowed region}
4384 file @r{the full current buffer}
4385 subtree @r{the subtree where the clocktable is located}
4386 treeN @r{the surrounding level N tree, for example @code{tree3}}
4387 tree @r{the surrounding level 1 tree}
4388 agenda @r{all agenda files}
4389 ("file"..) @r{scan these files}
4199:block @r{The time block to consider. This block is specified relative} 4390:block @r{The time block to consider. This block is specified relative}
4200 @r{to the current time and may be any of these keywords:} 4391 @r{to the current time and may be any of these keywords:}
4201 @r{@code{today}, @code{yesterday}, @code{thisweek}, @code{lastweek},} 4392 @r{@code{today}, @code{yesterday}, @code{thisweek}, @code{lastweek},}
@@ -4203,9 +4394,10 @@ table. The @samp{BEGIN} line can specify options:
4203:tstart @r{A time string specifying when to start considering times} 4394:tstart @r{A time string specifying when to start considering times}
4204:tend @r{A time string specifying when to stop considering times} 4395:tend @r{A time string specifying when to stop considering times}
4205@end example 4396@end example
4206So to get a clock summary for the current day, you could write 4397So to get a clock summary of the current level 1 tree, for the current
4398day, you could write
4207@example 4399@example
4208#+BEGIN: clocktable :maxlevel 2 :block today 4400#+BEGIN: clocktable :maxlevel 2 :block today :scope tree1
4209 4401
4210#+END: clocktable 4402#+END: clocktable
4211@end example 4403@end example
@@ -4218,6 +4410,12 @@ only to fit it onto the manual.}
4218 4410
4219#+END: clocktable 4411#+END: clocktable
4220@end example 4412@end example
4413@kindex C-c C-c
4414@item C-c C-c
4415@kindex C-c C-x C-u
4416@itemx C-c C-x C-u
4417Update dynamical block at point. The cursor needs to be in the
4418@code{#+BEGIN} line of the dynamic block.
4221@kindex C-u C-c C-x C-u 4419@kindex C-u C-c C-x C-u
4222@item C-u C-c C-x C-u 4420@item C-u C-c C-x C-u
4223Update all dynamic blocks (@pxref{Dynamic blocks}). This is useful if 4421Update all dynamic blocks (@pxref{Dynamic blocks}). This is useful if
@@ -4228,14 +4426,230 @@ The @kbd{l} key may be used in the timeline (@pxref{Timeline}) and in
4228the agenda (@pxref{Weekly/Daily agenda}) to show which tasks have been 4426the agenda (@pxref{Weekly/Daily agenda}) to show which tasks have been
4229worked on or closed during a day. 4427worked on or closed during a day.
4230 4428
4231@node Agenda views, Embedded LaTeX, Timestamps, Top 4429@node Remember, Agenda views, Dates and times, Top
4430@chapter Remember
4431@cindex @file{remember.el}
4432
4433The @i{Remember} package by John Wiegley lets you store quick notes with
4434little interruption of your work flow. See
4435@uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
4436information. It is an excellent way to add new notes and tasks to
4437Org-mode files. Org-mode significantly expands the possibilities of
4438@i{remember}: You may define templates for different note types, and
4439associate target files and headlines with specific templates. It also
4440allows you to select the location where a note should be stored
4441interactively, on the fly.
4442
4443@menu
4444* Setting up remember:: Some code for .emacs to get things going
4445* Remember templates:: Define the outline of different note types
4446* Storing notes:: Directly get the note to where it belongs
4447* Refiling notes:: Moving a note or task to a project
4448@end menu
4449
4450@node Setting up remember, Remember templates, Remember, Remember
4451@section Setting up remember
4452
4453The following customization will tell @i{remember} to use org files as
4454target, and to create annotations compatible with Org-mode links.
4455
4456@example
4457(org-remember-insinuate)
4458(setq org-directory "~/path/to/my/orgfiles/")
4459(setq org-default-notes-file (concat org-directory "/notes.org"))
4460(define-key global-map "\C-cr" 'org-remember)
4461@end example
4462
4463The last line binds the command @code{org-remember} to a global
4464key@footnote{Please select your own key, @kbd{C-c r} is only a
4465suggestion.}. @code{org-remember} basically just calls @code{remember},
4466but it makes a few things easier: If there is an active region, it will
4467automatically copy the region into the remember buffer. It also allows
4468to jump to the buffer and location where remember notes are being
4469stored: Just call @code{org-remember} with a prefix argument.
4470
4471@node Remember templates, Storing notes, Setting up remember, Remember
4472@section Remember templates
4473@cindex templates, for remember
4474
4475In combination with Org-mode, you can use templates to generate
4476different types of @i{remember} notes. For example, if you would like
4477to use one template to create general TODO entries, another one for
4478journal entries, and a third one for collecting random ideas, you could
4479use:
4480
4481@example
4482(setq org-remember-templates
4483 '(("Todo" ?t "* TODO %?\n %i\n %a" "~/org/TODO.org" "Tasks")
4484 ("Journal" ?j "* %U %?\n\n %i\n %a" "~/org/JOURNAL.org")
4485 ("Idea" ?i "* %^@{Title@}\n %i\n %a" "~/org/JOURNAL.org" "New Ideas")))
4486@end example
4487
4488@noindent In these entries, the first string is just a name, and the
4489character specifies how to select the template. It is useful if the
4490character is also the first letter of the name. The next string
4491specifies the template. Two more (optional) strings give the file in
4492which, and the headline under which the new note should be stored. The
4493file (if not present or @code{nil}) defaults to
4494@code{org-default-notes-file}, the heading to
4495@code{org-remember-default-headline}.
4496
4497When you call @kbd{M-x remember} (or @kbd{M-x org-remember}) to remember
4498something, org will prompt for a key to select the template (if you have
4499more than one template) and then prepare the buffer like
4500@example
4501* TODO
4502 [[file:link to where you called remember]]
4503@end example
4504
4505@noindent
4506During expansion of the template, special @kbd{%}-escapes allow dynamic
4507insertion of content:
4508@example
4509%^@{prompt@} @r{prompt the user for a string and replace this sequence with it.}
4510 @r{You may specify a default value and a completion table with}
4511 @r{%^@{prompt|default|completion2|completion3...@}}
4512 @r{The arrow keys access a prompt-specific history.}
4513%t @r{time stamp, date only}
4514%T @r{time stamp with date and time}
4515%u, %U @r{like the above, but inactive time stamps}
4516%^t @r{like @code{%t}, but prompt for date. Similarly @code{%^T}, @code{%^u}, @code{%^U}}
4517 @r{You may define a prompt like @code{%^@{Birthday@}t}}
4518%n @r{user name (taken from @code{user-full-name})}
4519%a @r{annotation, normally the link created with @code{org-store-link}}
4520%A @r{like @code{%a}, but prompt for the description part}
4521%i @r{initial content, the region when remember is called with C-u.}
4522 @r{The entire text will be indented like @code{%i} itself.}
4523%c @r{Content of the clipboard, or current kill ring head.}
4524%^g @r{prompt for tags, with completion on tags in target file.}
4525%^G @r{prompt for tags, with completion all tags in all agenda files.}
4526%:keyword @r{specific information for certain link types, see below}
4527%[pathname] @r{insert the contents of the file given by @code{pathname}}
4528%(sexp) @r{evaluate elisp @code{(sexp)} and replace with the result}
4529%! @r{immediately store note after completing the template}
4530 @r{(skipping the @kbd{C-c C-c} that normally triggers storing)}
4531@end example
4532
4533@noindent
4534For specific link types, the following keywords will be
4535defined@footnote{If you define your own link types (@pxref{Adding
4536hyperlink types}), any property you store with
4537@code{org-store-link-props} can be accessed in remember templates in a
4538similar way.}:
4539
4540@example
4541Link type | Available keywords
4542-------------------+----------------------------------------------
4543bbdb | %:name %:company
4544vm, wl, mh, rmail | %:type %:subject %:message-id
4545 | %:from %:fromname %:fromaddress
4546 | %:to %:toname %:toaddress
4547 | %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user. See the variable @code{org-from-is-user-regexp}.}}
4548gnus | %:group, @r{for messages also all email fields}
4549w3, w3m | %:url
4550info | %:file %:node
4551calendar | %:date"
4552@end example
4553
4554@noindent
4555To place the cursor after template expansion use:
4556
4557@example
4558%? @r{After completing the template, position cursor here.}
4559@end example
4560
4561@noindent
4562If you change you mind about which template to use, call
4563@code{org-remember} in the remember buffer. You may then select a new
4564template that will be filled with the previous context information.
4565
4566@node Storing notes, Refiling notes, Remember templates, Remember
4567@section Storing notes
4568
4569When you are finished preparing a note with @i{remember}, you have to
4570press @kbd{C-c C-c} to file the note away. The handler will store the
4571note in the file and under the headline specified in the template, or it
4572will use the default file and headlines. The window configuration will
4573be restored, sending you back to the working context before the call to
4574@code{remember}. To re-use the location found during the last call to
4575@code{remember}, exit the remember buffer with @kbd{C-u C-u C-c C-c},
4576i.e. specify a double prefix argument to @kbd{C-c C-c}.
4577
4578If you want to store the note directly to a different place, use
4579@kbd{C-u C-c C-c} instead to exit remember@footnote{Configure the
4580variable @code{org-remember-store-without-prompt} to make this behavior
4581the default.}. The handler will then first prompt for a target file -
4582if you press @key{RET}, the value specified for the template is used.
4583Then the command offers the headings tree of the selected file, with the
4584cursor position at the default headline (if you had specified one in the
4585template). You can either immediately press @key{RET} to get the note
4586placed there. Or you can use the following keys to find a different
4587location:
4588@example
4589@key{TAB} @r{Cycle visibility.}
4590@key{down} / @key{up} @r{Next/previous visible headline.}
4591n / p @r{Next/previous visible headline.}
4592f / b @r{Next/previous headline same level.}
4593u @r{One level up.}
4594@c 0-9 @r{Digit argument.}
4595@end example
4596@noindent
4597Pressing @key{RET} or @key{left} or @key{right}
4598then leads to the following result.
4599
4600@multitable @columnfractions 0.2 0.15 0.65
4601@item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted}
4602@item on headline @tab @key{RET} @tab as sublevel of the heading at cursor, first or last
4603@item @tab @tab depending on @code{org-reverse-note-order}.
4604@item @tab @key{left}/@key{right} @tab as same level, before/after current heading
4605@item buffer-start @tab @key{RET} @tab as level 2 heading at end of file or level 1 at beginning
4606@item @tab @tab depending on @code{org-reverse-note-order}.
4607@item not on headline @tab @key{RET}
4608 @tab at cursor position, level taken from context.
4609@end multitable
4610
4611Before inserting the text into a tree, the function ensures that the
4612text has a headline, i.e. a first line that starts with a @samp{*}. If
4613not, a headline is constructed from the current date and some additional
4614data. If you have indented the text of the note below the headline, the
4615indentation will be adapted if inserting the note into the tree requires
4616demotion from level 1.
4617
4618@node Refiling notes, , Storing notes, Remember
4619@section Refiling notes
4620@cindex refiling notes
4621
4622Remember is usually used to quickly capture notes and tasks into one or
4623a few capture lists. When reviewing the captured data, you may want to
4624refile some of the entries into a different list, for example into a
4625project. Cutting, finding the right location and then pasting the note
4626is cumbersome. To simplify this process, you can use the following
4627special command:
4628
4629@table @kbd
4630@kindex C-c C-w
4631@item C-c C-w
4632Refile the entry at point. This command offers possible locations for
4633refiling the entry and lets you select one with completion. The item is
4634filed below the target heading as a subitem. Depending on
4635@code{org-reverse-note-order}, it will be either the first of last
4636subitem, and you can toggle the value of this variable for the duration
4637of the command by using a @kbd{C-u} prefix.@* By default, all level 1
4638headlines in the current buffer are considered to be targets, but you
4639can have more complex definitions across a number of files. See the
4640variable @code{org-refile-targets} for details. The list of targets is
4641compiled upon first use, you can update it by using a double prefix
4642argument (@kbd{C-u C-u}) to this command.
4643@end table
4644
4645@node Agenda views, Embedded LaTeX, Remember, Top
4232@chapter Agenda Views 4646@chapter Agenda Views
4233@cindex agenda views 4647@cindex agenda views
4234 4648
4235Due to the way Org-mode works, TODO items, time-stamped items, and 4649Due to the way Org-mode works, TODO items, time-stamped items, and
4236tagged headlines can be scattered throughout a file or even a number of 4650tagged headlines can be scattered throughout a file or even a number of
4237files. To get an overview over open action items, or over events that 4651files. To get an overview of open action items, or of events that are
4238are important for a particular date, this information must be collected, 4652important for a particular date, this information must be collected,
4239sorted and displayed in an organized way. 4653sorted and displayed in an organized way.
4240 4654
4241Org-mode can select items based on various criteria, and display them 4655Org-mode can select items based on various criteria, and display them
@@ -4287,14 +4701,18 @@ window configuration is restored when the agenda exits:
4287@cindex agenda files 4701@cindex agenda files
4288@cindex files for agenda 4702@cindex files for agenda
4289 4703
4290The information to be shown is collected from all @emph{agenda files}, 4704The information to be shown is normally collected from all @emph{agenda
4291the files listed in the variable @code{org-agenda-files}@footnote{If the 4705files}, the files listed in the variable
4292value of that variable is not a list, but a single file name, then the 4706@code{org-agenda-files}@footnote{If the value of that variable is not a
4293list of agenda files will be maintained in that external file.}. Thus even 4707list, but a single file name, then the list of agenda files will be
4294if you only work with a single Org-mode file, this file should be put 4708maintained in that external file.}. If a directory is part of this list,
4295into that list@footnote{When using the dispatcher, pressing @kbd{1} 4709all files with the extension @file{.org} in this directory will be part
4296before selecting a command will actually limit the command to the 4710of the list.
4297current file, and ignore @code{org-agenda-files} until the next 4711
4712Thus even if you only work with a single Org-mode file, this file should
4713be put into that list@footnote{When using the dispatcher, pressing
4714@kbd{<} before selecting a command will actually limit the command to
4715the current file, and ignore @code{org-agenda-files} until the next
4298dispatcher command.}. You can customize @code{org-agenda-files}, but 4716dispatcher command.}. You can customize @code{org-agenda-files}, but
4299the easiest way to maintain it is through the following commands 4717the easiest way to maintain it is through the following commands
4300 4718
@@ -4319,6 +4737,42 @@ Cycle through agenda file list, visiting one file after the other.
4319The Org menu contains the current list of files and can be used 4737The Org menu contains the current list of files and can be used
4320to visit any of them. 4738to visit any of them.
4321 4739
4740If you would like to focus the agenda temporarily onto a file not in
4741this list, or onto just one file in the list or even only a subtree in a
4742file, this can be done in different ways. For a single agenda command,
4743you may press @kbd{<} once or several times in the dispatcher
4744(@pxref{Agenda dispatcher}). To restrict the agenda scope for an
4745extended period, use the following commands:
4746
4747@table @kbd
4748@kindex C-c C-x <
4749@item C-c C-x <
4750Permanently restrict the agenda to the current subtree. When with a
4751prefix argument, or with the cursor before the first headline in a file,
4752the agenda scope is set to the entire file. This restriction remains in
4753effect until removed with @kbd{C-c C-x >}, or by typing either @kbd{<}
4754or @kbd{>} in the agenda dispatcher. If there is a window displaying an
4755agenda view, the new restriction takes effect immediately.
4756@kindex C-c C-x <
4757@item C-c C-x <
4758Remove the permanent restriction created by @kbd{C-c C-x <}.
4759@end table
4760
4761@noindent
4762When working with @file{Speedbar}, you can use the following commands in
4763the speedbar frame:
4764@table @kbd
4765@kindex <
4766@item < @r{in the speedbar frame}
4767Permanently restrict the agenda to the item at the cursor in the
4768speedbar frame, either an Org-mode file or a subtree in such a file.
4769If there is a window displaying an agenda view, the new restriction takes
4770effect immediately.
4771@kindex <
4772@item > @r{in the speedbar frame}
4773Lift the restriction again.
4774@end table
4775
4322@node Agenda dispatcher, Built-in agenda views, Agenda files, Agenda views 4776@node Agenda dispatcher, Built-in agenda views, Agenda files, Agenda views
4323@section The agenda dispatcher 4777@section The agenda dispatcher
4324@cindex agenda dispatcher 4778@cindex agenda dispatcher
@@ -4341,14 +4795,23 @@ tags and properties}).
4341Create the timeline view for the current buffer (@pxref{Timeline}). 4795Create the timeline view for the current buffer (@pxref{Timeline}).
4342@item # @r{/} ! 4796@item # @r{/} !
4343Create a list of stuck projects (@pxref{Stuck projects}). 4797Create a list of stuck projects (@pxref{Stuck projects}).
4344@item 1 4798@item /
4345Restrict an agenda command to the current buffer. After pressing 4799Search for a regular expression in all agenda files and additionally in
4346@kbd{1}, you still need to press the character selecting the command. 4800the files listed in @code{org-agenda-multi-occur-extra-files}. This
4347@item 0 4801uses the Emacs command @code{multi-occur}. A prefix argument can be
4802used to specify the number of context lines for each match, default is
48031.
4804@item <
4805Restrict an agenda command to the current buffer@footnote{For backward
4806compatibility, you can also press @kbd{1} to restrict to the current
4807buffer.}. After pressing @kbd{<}, you still need to press the character
4808selecting the command.
4809@item < <
4348If there is an active region, restrict the following agenda command to 4810If there is an active region, restrict the following agenda command to
4349the region. Otherwise, restrict it to the current subtree. After 4811the region. Otherwise, restrict it to the current subtree@footnote{For
4350pressing @kbd{0}, you still need to press the character selecting the 4812backward compatibility, you can also press @kbd{0} to restrict to the
4351command. 4813current buffer.}. After pressing @kbd{< <}, you still need to press the
4814character selecting the command.
4352@end table 4815@end table
4353 4816
4354You can also define custom commands that will be accessible through the 4817You can also define custom commands that will be accessible through the
@@ -4384,10 +4847,12 @@ paper agenda, showing all the tasks for the current week or day.
4384@kindex C-c a a 4847@kindex C-c a a
4385@item C-c a a 4848@item C-c a a
4386Compile an agenda for the current week from a list of org files. The 4849Compile an agenda for the current week from a list of org files. The
4387agenda shows the entries for each day. With a @kbd{C-u} prefix (or 4850agenda shows the entries for each day. With a numeric
4388when the variable @code{org-agenda-include-all-todo} is @code{t}), all 4851prefix@footnote{For backward compatibility, the universal prefix
4389unfinished TODO items (including those without a date) are also listed at 4852@kbd{C-u} causes all TODO entries to be listed before the agenda. This
4390the beginning of the buffer, before the first date.@* 4853feature is deprecated, use the dedicated TODO list, or a block agenda
4854instead.} (like @kbd{C-u 2 1 C-c a a}) you may set the number of days
4855to be displayed (see also the variable @code{org-agenda-ndays})
4391@end table 4856@end table
4392 4857
4393Remote editing from the agenda buffer means, for example, that you can 4858Remote editing from the agenda buffer means, for example, that you can
@@ -4443,6 +4908,18 @@ will be made in the agenda:
4443%%(diary-anniversary 2 10 1869) Mahatma Gandhi would be %d years old 4908%%(diary-anniversary 2 10 1869) Mahatma Gandhi would be %d years old
4444@end example 4909@end example
4445 4910
4911@subsubheading Appointment reminders
4912@cindex @file{appt.el}
4913@cindex appointment reminders
4914
4915Org can interact with Emacs appointments notification facility.
4916
4917To add all the appointments of your agenda files, use the command
4918@code{org-agenda-to-appt}. This commands also lets you filter through
4919the list of your appointments and add only those belonging to a specific
4920category or matching a regular expression. See the docstring for
4921details.
4922
4446@node Global TODO list, Matching tags and properties, Weekly/Daily agenda, Built-in agenda views 4923@node Global TODO list, Matching tags and properties, Weekly/Daily agenda, Built-in agenda views
4447@subsection The global TODO list 4924@subsection The global TODO list
4448@cindex global TODO list 4925@cindex global TODO list
@@ -4512,8 +4989,8 @@ to them and collect them into an agenda buffer.
4512@item C-c a m 4989@item C-c a m
4513Produce a list of all headlines that match a given set of tags. The 4990Produce a list of all headlines that match a given set of tags. The
4514command prompts for a selection criterion, which is a boolean logic 4991command prompts for a selection criterion, which is a boolean logic
4515expression with tags, like @samp{+WORK+URGENT-WITHBOSS} or 4992expression with tags, like @samp{+work+urgent-withboss} or
4516@samp{WORK|HOME} (@pxref{Tags}). If you often need a specific search, 4993@samp{work|home} (@pxref{Tags}). If you often need a specific search,
4517define a custom command for it (@pxref{Agenda dispatcher}). 4994define a custom command for it (@pxref{Agenda dispatcher}).
4518@kindex C-c a M 4995@kindex C-c a M
4519@item C-c a M 4996@item C-c a M
@@ -4616,16 +5093,27 @@ associated with the item.
4616@cindex category 5093@cindex category
4617The category is a broad label assigned to each agenda item. By default, 5094The category is a broad label assigned to each agenda item. By default,
4618the category is simply derived from the file name, but you can also 5095the category is simply derived from the file name, but you can also
4619specify it with a special line in the buffer, like this: 5096specify it with a special line in the buffer, like this@footnote{For
5097backward compatibility, the following also works: If there are several
5098such lines in a file, each specifies the category for the text below it.
5099The first category also applies to any text before the first CATEGORY
5100line. However, using this method is @emph{strongly} deprecated as it is
5101incompatible with the outline structure of the document. The correct
5102method for setting multiple categories in a buffer is using a
5103property.}:
4620 5104
4621@example 5105@example
4622#+CATEGORY: Thesis 5106#+CATEGORY: Thesis
4623@end example 5107@end example
4624 5108
4625If there are several such lines in a file, each specifies the category 5109@noindent
4626for the text below it (but the first category also applies to any text 5110If you would like to have a special CATEGORY for a single entry or a
4627before the first CATEGORY line). The display in the agenda buffer looks 5111(sub)tree, give the entry a @code{:CATEGORY:} property with the location
4628best if the category is not longer than 10 characters. 5112as the value (@pxref{Properties and columns}).
5113
5114@noindent
5115The display in the agenda buffer looks best if the category is not
5116longer than 10 characters.
4629 5117
4630@node Time-of-day specifications, Sorting of agenda items, Categories, Presentation and sorting 5118@node Time-of-day specifications, Sorting of agenda items, Categories, Presentation and sorting
4631@subsection Time-of-Day Specifications 5119@subsection Time-of-Day Specifications
@@ -4725,10 +5213,10 @@ the other commands, the cursor needs to be in the desired line.
4725@cindex motion commands in agenda 5213@cindex motion commands in agenda
4726@kindex n 5214@kindex n
4727@item n 5215@item n
4728Next line (same as @key{up}). 5216Next line (same as @key{up} and @kbd{C-p}).
4729@kindex p 5217@kindex p
4730@item p 5218@item p
4731Previous line (same as @key{down}). 5219Previous line (same as @key{down} and @kbd{C-n}).
4732@tsubheading{View/GoTo org file} 5220@tsubheading{View/GoTo org file}
4733@kindex mouse-3 5221@kindex mouse-3
4734@kindex @key{SPC} 5222@kindex @key{SPC}
@@ -4807,7 +5295,9 @@ argument is interpreted to create a selective list for a specific TODO
4807keyword. 5295keyword.
4808@c 5296@c
4809@kindex s 5297@kindex s
5298@kindex C-x C-s
4810@item s 5299@item s
5300@itemx C-x C-s
4811Save all Org-mode buffers in the current Emacs session. 5301Save all Org-mode buffers in the current Emacs session.
4812@c 5302@c
4813@kindex @key{right} 5303@kindex @key{right}
@@ -4860,7 +5350,8 @@ inheritance, this may be more than the tags listed in the line itself.
4860@c 5350@c
4861@kindex : 5351@kindex :
4862@item : 5352@item :
4863Set tags for the current headline. 5353Set tags for the current headline. If there is an active region in the
5354agenda, change a tag for all headings in the region.
4864@c 5355@c
4865@kindex a 5356@kindex a
4866@item a 5357@item a
@@ -4931,6 +5422,10 @@ Stop the previously started clock.
4931@item X 5422@item X
4932Cancel the currently running clock. 5423Cancel the currently running clock.
4933 5424
5425@kindex J
5426@item J
5427Jump to the running clock in another window.
5428
4934@tsubheading{Calendar commands} 5429@tsubheading{Calendar commands}
4935@cindex calendar commands, from agenda 5430@cindex calendar commands, from agenda
4936@kindex c 5431@kindex c
@@ -5035,19 +5530,28 @@ search types:
5035(setq org-agenda-custom-commands 5530(setq org-agenda-custom-commands
5036 '(("w" todo "WAITING") 5531 '(("w" todo "WAITING")
5037 ("W" todo-tree "WAITING") 5532 ("W" todo-tree "WAITING")
5038 ("u" tags "+BOSS-URGENT") 5533 ("u" tags "+boss-urgent")
5039 ("v" tags-todo "+BOSS-URGENT") 5534 ("v" tags-todo "+boss-urgent")
5040 ("U" tags-tree "+BOSS-URGENT") 5535 ("U" tags-tree "+boss-urgent")
5041 ("f" occur-tree "\\<FIXME\\>"))) 5536 ("f" occur-tree "\\<FIXME\\>")
5537 ("h" . "HOME+Name tags searches") ; description for "h" prefix
5538 ("hl" tags "+home+Lisa")
5539 ("hp" tags "+home+Peter")
5540 ("hk" tags "+home+Kim")))
5042@end group 5541@end group
5043@end lisp 5542@end lisp
5044 5543
5045@noindent 5544@noindent
5046The initial single-character string in each entry defines the character 5545The initial string in each entry defines the keys you have to press
5047you have to press after the dispatcher command @kbd{C-c a} in order to 5546after the dispatcher command @kbd{C-c a} in order to access the command.
5048access the command. The second parameter is the search type, followed 5547Usually this will be just a single character, but if you have many
5049by the string or regular expression to be used for the matching. The 5548similar commands, you can also define two-letter combinations where the
5050example above will therefore define: 5549first character is the same in several combinations and serves as a
5550prefix key@footnote{You can provide a description for a prefix key by
5551inserting a cons cell with the prefix and the description.}. The second
5552parameter is the search type, followed by the string or regular
5553expression to be used for the matching. The example above will
5554therefore define:
5051 5555
5052@table @kbd 5556@table @kbd
5053@item C-c a w 5557@item C-c a w
@@ -5057,8 +5561,8 @@ keyword
5057as the same search, but only in the current buffer and displaying the 5561as the same search, but only in the current buffer and displaying the
5058results as a sparse tree 5562results as a sparse tree
5059@item C-c a u 5563@item C-c a u
5060as a global tags search for headlines marked @samp{:BOSS:} but not 5564as a global tags search for headlines marked @samp{:boss:} but not
5061@samp{:URGENT:} 5565@samp{:urgent:}
5062@item C-c a v 5566@item C-c a v
5063as the same search as @kbd{C-c a u}, but limiting the search to 5567as the same search as @kbd{C-c a u}, but limiting the search to
5064headlines that are also TODO items 5568headlines that are also TODO items
@@ -5067,7 +5571,11 @@ as the same search as @kbd{C-c a u}, but only in the current buffer and
5067displaying the result as a sparse tree 5571displaying the result as a sparse tree
5068@item C-c a f 5572@item C-c a f
5069to create a sparse tree (again: current buffer only) with all entries 5573to create a sparse tree (again: current buffer only) with all entries
5070containing the word @samp{FIXME}. 5574containing the word @samp{FIXME}
5575@item C-c a h
5576as a prefix command for a HOME tags search where you have to press an
5577additional key (@kbd{l}, @kbd{p} or @kbd{k}) to select a name (Lisa,
5578Peter, or Kim) as additional tag to match.
5071@end table 5579@end table
5072 5580
5073@node Block agenda, Setting Options, Storing searches, Custom agenda views 5581@node Block agenda, Setting Options, Storing searches, Custom agenda views
@@ -5088,12 +5596,12 @@ matching commands discussed above: @code{todo}, @code{tags}, and
5088(setq org-agenda-custom-commands 5596(setq org-agenda-custom-commands
5089 '(("h" "Agenda and Home-related tasks" 5597 '(("h" "Agenda and Home-related tasks"
5090 ((agenda) 5598 ((agenda)
5091 (tags-todo "HOME") 5599 (tags-todo "home")
5092 (tags "GARDEN"))) 5600 (tags "garden")))
5093 ("o" "Agenda and Office-related tasks" 5601 ("o" "Agenda and Office-related tasks"
5094 ((agenda) 5602 ((agenda)
5095 (tags-todo "WORK") 5603 (tags-todo "work")
5096 (tags "OFFICE"))))) 5604 (tags "office")))))
5097@end group 5605@end group
5098@end lisp 5606@end lisp
5099 5607
@@ -5101,7 +5609,7 @@ matching commands discussed above: @code{todo}, @code{tags}, and
5101This will define @kbd{C-c a h} to create a multi-block view for stuff 5609This will define @kbd{C-c a h} to create a multi-block view for stuff
5102you need to attend to at home. The resulting agenda buffer will contain 5610you need to attend to at home. The resulting agenda buffer will contain
5103your agenda for the current week, all TODO items that carry the tag 5611your agenda for the current week, all TODO items that carry the tag
5104@samp{HOME}, and also all lines tagged with @samp{GARDEN}. Finally the 5612@samp{home}, and also all lines tagged with @samp{garden}. Finally the
5105command @kbd{C-c a o} provides a similar view for office tasks. 5613command @kbd{C-c a o} provides a similar view for office tasks.
5106 5614
5107 5615
@@ -5122,7 +5630,7 @@ right spot in @code{org-agenda-custom-commands}. For example:
5122 '(("w" todo "WAITING" 5630 '(("w" todo "WAITING"
5123 ((org-agenda-sorting-strategy '(priority-down)) 5631 ((org-agenda-sorting-strategy '(priority-down))
5124 (org-agenda-prefix-format " Mixed: "))) 5632 (org-agenda-prefix-format " Mixed: ")))
5125 ("U" tags-tree "+BOSS-URGENT" 5633 ("U" tags-tree "+boss-urgent"
5126 ((org-show-following-heading nil) 5634 ((org-show-following-heading nil)
5127 (org-show-hierarchy-above nil))))) 5635 (org-show-hierarchy-above nil)))))
5128@end group 5636@end group
@@ -5130,7 +5638,7 @@ right spot in @code{org-agenda-custom-commands}. For example:
5130 5638
5131@noindent 5639@noindent
5132Now the @kbd{C-c a w} command will sort the collected entries only by 5640Now the @kbd{C-c a w} command will sort the collected entries only by
5133priority, and the prefix format is modified to just say @samp{ Mixed:} 5641priority, and the prefix format is modified to just say @samp{ Mixed: }
5134instead of giving the category of the entry. The sparse tags tree of 5642instead of giving the category of the entry. The sparse tags tree of
5135@kbd{C-c a U} will now turn out ultra-compact, because neither the 5643@kbd{C-c a U} will now turn out ultra-compact, because neither the
5136headline hierarchy above the match, nor the headline following the match 5644headline hierarchy above the match, nor the headline following the match
@@ -5152,14 +5660,14 @@ the results for GARDEN tags query in the opposite order,
5152(setq org-agenda-custom-commands 5660(setq org-agenda-custom-commands
5153 '(("h" "Agenda and Home-related tasks" 5661 '(("h" "Agenda and Home-related tasks"
5154 ((agenda) 5662 ((agenda)
5155 (tags-todo "HOME") 5663 (tags-todo "home")
5156 (tags "GARDEN" 5664 (tags "garden"
5157 ((org-agenda-sorting-strategy '(priority-up))))) 5665 ((org-agenda-sorting-strategy '(priority-up)))))
5158 ((org-agenda-sorting-strategy '(priority-down)))) 5666 ((org-agenda-sorting-strategy '(priority-down))))
5159 ("o" "Agenda and Office-related tasks" 5667 ("o" "Agenda and Office-related tasks"
5160 ((agenda) 5668 ((agenda)
5161 (tags-todo "WORK") 5669 (tags-todo "work")
5162 (tags "OFFICE"))))) 5670 (tags "office")))))
5163@end group 5671@end group
5164@end lisp 5672@end lisp
5165 5673
@@ -5218,14 +5726,14 @@ or absolute.
5218 ("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps")) 5726 ("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps"))
5219 ("h" "Agenda and Home-related tasks" 5727 ("h" "Agenda and Home-related tasks"
5220 ((agenda) 5728 ((agenda)
5221 (tags-todo "HOME") 5729 (tags-todo "home")
5222 (tags "GARDEN")) 5730 (tags "garden"))
5223 nil 5731 nil
5224 ("~/views/home.html")) 5732 ("~/views/home.html"))
5225 ("o" "Agenda and Office-related tasks" 5733 ("o" "Agenda and Office-related tasks"
5226 ((agenda) 5734 ((agenda)
5227 (tags-todo "WORK") 5735 (tags-todo "work")
5228 (tags "OFFICE")) 5736 (tags "office"))
5229 nil 5737 nil
5230 ("~/views/office.ps")))) 5738 ("~/views/office.ps"))))
5231@end group 5739@end group
@@ -5283,6 +5791,7 @@ or, if you need to modify some parameters
5283@example 5791@example
5284emacs -eval '(org-batch-store-agenda-views \ 5792emacs -eval '(org-batch-store-agenda-views \
5285 org-agenda-ndays 30 \ 5793 org-agenda-ndays 30 \
5794 org-agenda-start-day "2007-11-01" \
5286 org-agenda-include-diary nil \ 5795 org-agenda-include-diary nil \
5287 org-agenda-files (quote ("~/org/project.org")))' \ 5796 org-agenda-files (quote ("~/org/project.org")))' \
5288 -kill 5797 -kill
@@ -5665,7 +6174,8 @@ will be @file{myfile.txt}. The file will be overwritten without
5665warning. If there is an active region, only the region will be 6174warning. If there is an active region, only the region will be
5666exported. If the selected region is a single tree, the tree head will 6175exported. If the selected region is a single tree, the tree head will
5667become the document title. If the tree head entry has or inherits an 6176become the document title. If the tree head entry has or inherits an
5668EXPORT_FILE_NAME property, that name will be used for the export. 6177@code{:EXPORT_FILE_NAME:} property, that name will be used for the
6178export.
5669@kindex C-c C-e v a 6179@kindex C-c C-e v a
5670@item C-c C-e v a 6180@item C-c C-e v a
5671Export only the visible part of the document. 6181Export only the visible part of the document.
@@ -5720,8 +6230,8 @@ Export as HTML file @file{myfile.html}. For an org file
5720will be overwritten without warning. If there is an active region, only 6230will be overwritten without warning. If there is an active region, only
5721the region will be exported. If the selected region is a single tree, 6231the region will be exported. If the selected region is a single tree,
5722the tree head will become the document title. If the tree head entry 6232the tree head will become the document title. If the tree head entry
5723has or inherits an EXPORT_FILE_NAME property, that name will be used for 6233has or inherits an @code{:EXPORT_FILE_NAME:} property, that name will be
5724the export. 6234used for the export.
5725@kindex C-c C-e b 6235@kindex C-c C-e b
5726@item C-c C-e b 6236@item C-c C-e b
5727Export as HTML file and immediately open it with a browser. 6237Export as HTML file and immediately open it with a browser.
@@ -5729,7 +6239,7 @@ Export as HTML file and immediately open it with a browser.
5729@item C-c C-e H 6239@item C-c C-e H
5730Export to a temporary buffer, do not create a file. 6240Export to a temporary buffer, do not create a file.
5731@kindex C-c C-e R 6241@kindex C-c C-e R
5732@item C-c C-e H 6242@item C-c C-e R
5733Export the active region to a temporary buffer. With prefix arg, do not 6243Export the active region to a temporary buffer. With prefix arg, do not
5734produce file header and foot, but just the plain HTML section for the 6244produce file header and foot, but just the plain HTML section for the
5735region. This is good for cut-and-paste operations. 6245region. This is good for cut-and-paste operations.
@@ -5877,6 +6387,7 @@ Org-mode contains a La@TeX{} exporter written by Bastien Guerry.
5877@menu 6387@menu
5878* LaTeX export commands:: How to invoke LaTeX export 6388* LaTeX export commands:: How to invoke LaTeX export
5879* Quoting LaTeX code:: Incorporating literal LaTeX code 6389* Quoting LaTeX code:: Incorporating literal LaTeX code
6390* Sectioning structure::
5880@end menu 6391@end menu
5881 6392
5882@node LaTeX export commands, Quoting LaTeX code, LaTeX export, LaTeX export 6393@node LaTeX export commands, Quoting LaTeX code, LaTeX export, LaTeX export
@@ -5920,7 +6431,7 @@ with a prefix argument. For example,
5920@noindent 6431@noindent
5921creates two levels of headings and does the rest as items. 6432creates two levels of headings and does the rest as items.
5922 6433
5923@node Quoting LaTeX code, , LaTeX export commands, LaTeX export 6434@node Quoting LaTeX code, Sectioning structure, LaTeX export commands, LaTeX export
5924@subsection Quoting LaTeX code 6435@subsection Quoting LaTeX code
5925 6436
5926Embedded La@TeX{} as described in @ref{Embedded LaTeX} will be correctly 6437Embedded La@TeX{} as described in @ref{Embedded LaTeX} will be correctly
@@ -5939,6 +6450,23 @@ constructs:
5939All lines between these markers are exported literally 6450All lines between these markers are exported literally
5940#+END_LaTeX 6451#+END_LaTeX
5941@end example 6452@end example
6453
6454
6455
6456@node Sectioning structure, , Quoting LaTeX code, LaTeX export
6457@subsection Sectioning structure
6458@cindex LaTeX class
6459@cindex LaTeX sectioning structure
6460
6461By default, the La@TeX{} output uses the class @code{article}.
6462
6463You can change this globally by setting a different value for
6464@code{org-export-latex-default-class} or locally by adding an option
6465like @code{#+LaTeX_CLASS: myclass} in your file. The class should be
6466listed in @code{org-export-latex-classes}, where you can also define the
6467sectioning structure for each class.
6468
6469
5942@node XOXO export, iCalendar export, LaTeX export, Exporting 6470@node XOXO export, iCalendar export, LaTeX export, Exporting
5943@section XOXO export 6471@section XOXO export
5944@cindex XOXO export 6472@cindex XOXO export
@@ -5985,6 +6513,11 @@ Create a single large iCalendar file from all files in
5985@code{org-combined-agenda-icalendar-file}. 6513@code{org-combined-agenda-icalendar-file}.
5986@end table 6514@end table
5987 6515
6516The export will honor SUMMARY, DESCRIPTION and LOCATION properties if
6517the selected entries have them. If not, the summary will be derived
6518from the headline, and the description from the body (limited to
6519@code{org-icalendar-include-body} characters).
6520
5988How this calendar is best read and updated, depends on the application 6521How this calendar is best read and updated, depends on the application
5989you are using. The FAQ covers this issue. 6522you are using. The FAQ covers this issue.
5990 6523
@@ -5999,6 +6532,7 @@ in order to produce better output.
5999* Comment lines:: Some lines will not be exported 6532* Comment lines:: Some lines will not be exported
6000* Initial text:: Text before the first headline 6533* Initial text:: Text before the first headline
6001* Footnotes:: Numbers like [1] 6534* Footnotes:: Numbers like [1]
6535* Quoted examples:: Inserting quoted chnuks of text
6002* Enhancing text:: Subscripts, symbols and more 6536* Enhancing text:: Subscripts, symbols and more
6003* Export options:: How to influence the export settings 6537* Export options:: How to influence the export settings
6004@end menu 6538@end menu
@@ -6056,7 +6590,7 @@ construct:
6056#+TEXT: This goes between the table of contents and the first headline 6590#+TEXT: This goes between the table of contents and the first headline
6057@end example 6591@end example
6058 6592
6059@node Footnotes, Enhancing text, Initial text, Text interpretation 6593@node Footnotes, Quoted examples, Initial text, Text interpretation
6060@subsection Footnotes 6594@subsection Footnotes
6061@cindex footnotes 6595@cindex footnotes
6062@cindex @file{footnote.el} 6596@cindex @file{footnote.el}
@@ -6068,7 +6602,7 @@ the Emacs package @file{footnote.el} to create footnotes. For example:
6068The org-mode homepage[1] clearly needs help from 6602The org-mode homepage[1] clearly needs help from
6069a good web designer. 6603a good web designer.
6070 6604
6071[1] The link is: http://www.astro.uva.nl/~dominik/Tools/org 6605[1] The link is: http://orgmode.org
6072@end example 6606@end example
6073 6607
6074@noindent 6608@noindent
@@ -6081,14 +6615,48 @@ if you are too used to this binding, you could use
6081@code{org-replace-disputed-keys} and @code{org-disputed-keys} to change 6615@code{org-replace-disputed-keys} and @code{org-disputed-keys} to change
6082the settings in Org-mode. 6616the settings in Org-mode.
6083 6617
6084@node Enhancing text, Export options, Footnotes, Text interpretation 6618@node Quoted examples, Enhancing text, Footnotes, Text interpretation
6619@subsection Quoted examples
6620@cindex quoted examples
6621@cindex examples, quoted
6622@cindex text, fixed width
6623@cindex fixed width text
6624
6625When writing technical documents, you often need to insert examples that
6626are not further interpreted by Org-mode. For historical reasons, there
6627are several ways to do this:
6628
6629@itemize @bullet
6630@item
6631If a headline starts with the word @samp{QUOTE}, the text below the
6632headline will be typeset as fixed-width, to allow quoting of computer
6633codes etc.
6634@item
6635Lines starting with @samp{:} are also typeset in fixed-width font.
6636@table @kbd
6637@kindex C-c :
6638@item C-c :
6639Toggle fixed-width for entry (QUOTE) or region, see below.
6640@end table
6641@item
6642Finally, text between
6643@example
6644#+BEGIN_EXAMPLE
6645quoted text
6646#+END_EXAMPLE
6647@end example
6648will also be exported in this way.
6649@end itemize
6650
6651
6652@node Enhancing text, Export options, Quoted examples, Text interpretation
6085@subsection Enhancing text for export 6653@subsection Enhancing text for export
6086@cindex enhancing text 6654@cindex enhancing text
6087@cindex richer text 6655@cindex richer text
6088 6656
6089Some of the export backends of Org-mode allow for sophisticated text 6657Some of the export backends of Org-mode allow for sophisticated text
6090formatting, this is true in particular for the HTML and La@TeX{} 6658formatting, this is true in particular for the HTML and La@TeX{}
6091backends. Org-mode has a number of typing conventions that allow to 6659backends. Org-mode has a number of typing conventions that allow to
6092produce a richly formatted output. 6660produce a richly formatted output.
6093 6661
6094@itemize @bullet 6662@itemize @bullet
@@ -6103,11 +6671,12 @@ backend supports lists. See @xref{Plain lists}.
6103@cindex underlined text 6671@cindex underlined text
6104@cindex bold text 6672@cindex bold text
6105@cindex italic text 6673@cindex italic text
6674@cindex verbatim text
6106@item 6675@item
6107You can make words @b{*bold*}, @i{/italic/}, _underlined_, 6676You can make words @b{*bold*}, @i{/italic/}, _underlined_, @code{=code=}
6108@code{=code=}, and even @samp{+strikethrough+}@footnote{but remember 6677and @code{~verbatim~}, and, if you must, @samp{+strikethrough+}. Text
6109that strikethrough is typographically evil and should @i{never} be 6678in the code and verbatim string is not processed for org-mode specific
6110used.}. 6679syntax, it is exported verbatim.
6111 6680
6112@cindex horizontal rules, in exported files 6681@cindex horizontal rules, in exported files
6113@item 6682@item
@@ -6137,11 +6706,27 @@ font.
6137@item C-c : 6706@item C-c :
6138Toggle fixed-width for entry (QUOTE) or region, see below. 6707Toggle fixed-width for entry (QUOTE) or region, see below.
6139@end table 6708@end table
6709Finally, text between
6710@example
6711#+BEGIN_EXAMPLE
6712quoted text
6713#+END_EXAMPLE
6714@end example
6715will also be exported in this way.
6140 6716
6141@cindex linebreak, forced 6717@cindex linebreak, forced
6142@item 6718@item
6143A double backslash @emph{at the end of a line} enforces a line break at 6719A double backslash @emph{at the end of a line} enforces a line break at
6144this position. 6720this position.
6721
6722@cindex HTML entities, LaTeX entities
6723@item
6724Strings like @code{\alpha} will be exported as @code{&alpha;}, in the
6725HTML output. These strings are exported as @code{$\alpha$} in the
6726La@TeX{} output. Similarly, @code{\nbsp} will become @code{&nbsp;} in
6727HTML and in La@TeX{}. This applies for a long list of entities, see
6728the variable @code{org-html-entities} for the complete list.
6729@c FIXME
6145@end itemize 6730@end itemize
6146 6731
6147If these conversions conflict with your habits of typing ASCII text, 6732If these conversions conflict with your habits of typing ASCII text,
@@ -6172,6 +6757,7 @@ Insert template with export options, see example below.
6172@example 6757@example
6173#+TITLE: the title to be shown (default is the buffer name) 6758#+TITLE: the title to be shown (default is the buffer name)
6174#+AUTHOR: the author (default taken from @code{user-full-name}) 6759#+AUTHOR: the author (default taken from @code{user-full-name})
6760#+DATE: A date, fixed, of a format string for @code{format-time-string}
6175#+EMAIL: his/her email address (default from @code{user-mail-address}) 6761#+EMAIL: his/her email address (default from @code{user-mail-address})
6176#+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language}) 6762#+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language})
6177#+TEXT: Some descriptive text to be inserted at the beginning. 6763#+TEXT: Some descriptive text to be inserted at the beginning.
@@ -6191,6 +6777,7 @@ you can:
6191@cindex tables 6777@cindex tables
6192@cindex @TeX{}-like syntax for sub- and superscripts 6778@cindex @TeX{}-like syntax for sub- and superscripts
6193@cindex footnotes 6779@cindex footnotes
6780@cindex special strings
6194@cindex emphasized text 6781@cindex emphasized text
6195@cindex @TeX{} macros 6782@cindex @TeX{} macros
6196@cindex La@TeX{} fragments 6783@cindex La@TeX{} fragments
@@ -6207,6 +6794,7 @@ toc: @r{turn on/off table of contents, or set level limit (integer)}
6207^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts. If} 6794^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts. If}
6208 @r{you write "^:@{@}", @code{a_@{b@}} will be interpreted, but} 6795 @r{you write "^:@{@}", @code{a_@{b@}} will be interpreted, but}
6209 @r{the simple @code{a_b} will be left as it is.} 6796 @r{the simple @code{a_b} will be left as it is.}
6797-: @r{turn on/off conversion of special strings.}
6210f: @r{turn on/off foototes like this[1].} 6798f: @r{turn on/off foototes like this[1].}
6211*: @r{turn on/off emphasized text (bold, italic, underlined)} 6799*: @r{turn on/off emphasized text (bold, italic, underlined)}
6212TeX: @r{turn on/off simple @TeX{} macros in plain text} 6800TeX: @r{turn on/off simple @TeX{} macros in plain text}
@@ -6214,6 +6802,7 @@ LaTeX: @r{turn on/off La@TeX{} fragments}
6214skip: @r{turn on/off skipping the text before the first heading} 6802skip: @r{turn on/off skipping the text before the first heading}
6215author: @r{turn on/off inclusion of author name/email into exported file} 6803author: @r{turn on/off inclusion of author name/email into exported file}
6216timestamp: @r{turn on/off inclusion creation time into exported file} 6804timestamp: @r{turn on/off inclusion creation time into exported file}
6805d: @r{turn on/off inclusion of drawers}
6217@end example 6806@end example
6218 6807
6219These options take effect in both the HTML and La@TeX{} export, except 6808These options take effect in both the HTML and La@TeX{} export, except
@@ -6274,11 +6863,11 @@ Each element of the list configures one project, and may be in one of
6274the two following forms: 6863the two following forms:
6275 6864
6276@lisp 6865@lisp
6277("project-name" :property value :property value ...) 6866("project-name" :property value :property value ...)
6278 6867
6279@r{or} 6868@r{or}
6280 6869
6281("project-name" :components ("project-name" "project-name" ...)) 6870("project-name" :components ("project-name" "project-name" ...))
6282 6871
6283@end lisp 6872@end lisp
6284 6873
@@ -6378,6 +6967,7 @@ respective variable for details.
6378@item @code{:archived-trees} @tab @code{org-export-with-archived-trees} 6967@item @code{:archived-trees} @tab @code{org-export-with-archived-trees}
6379@item @code{:emphasize} @tab @code{org-export-with-emphasize} 6968@item @code{:emphasize} @tab @code{org-export-with-emphasize}
6380@item @code{:sub-superscript} @tab @code{org-export-with-sub-superscripts} 6969@item @code{:sub-superscript} @tab @code{org-export-with-sub-superscripts}
6970@item @code{:special-strings} @tab @code{org-export-with-special-strings}
6381@item @code{:TeX-macros} @tab @code{org-export-with-TeX-macros} 6971@item @code{:TeX-macros} @tab @code{org-export-with-TeX-macros}
6382@item @code{:LaTeX-fragments} @tab @code{org-export-with-LaTeX-fragments} 6972@item @code{:LaTeX-fragments} @tab @code{org-export-with-LaTeX-fragments}
6383@item @code{:fixed-width} @tab @code{org-export-with-fixed-width} 6973@item @code{:fixed-width} @tab @code{org-export-with-fixed-width}
@@ -6399,14 +6989,16 @@ respective variable for details.
6399@item @code{:email} @tab @code{user-mail-address} 6989@item @code{:email} @tab @code{user-mail-address}
6400@end multitable 6990@end multitable
6401 6991
6992If you use several email addresses, separate them by a semi-column.
6993
6402Most of the @code{org-export-with-*} variables have the same effect in 6994Most of the @code{org-export-with-*} variables have the same effect in
6403both HTML and La@TeX{} exporters, except for @code{:TeX-macros} and 6995both HTML and La@TeX{} exporters, except for @code{:TeX-macros} and
6404@code{:LaTeX-fragments}, respectively @code{nil} and @code{t} in the 6996@code{:LaTeX-fragments}, respectively @code{nil} and @code{t} in the
6405La@TeX{} export. 6997La@TeX{} export.
6406 6998
6407When a property is given a value in org-publish-project-alist, its 6999When a property is given a value in @code{org-publish-project-alist},
6408setting overrides the value of the corresponding user variable (if any) 7000its setting overrides the value of the corresponding user variable (if
6409during publishing. Options set within a file (@pxref{Export 7001any) during publishing. Options set within a file (@pxref{Export
6410options}), however, override everything. 7002options}), however, override everything.
6411 7003
6412@node Publishing links, Project page index, Publishing options, Configuration 7004@node Publishing links, Project page index, Publishing options, Configuration
@@ -6422,7 +7014,7 @@ you publish them to HTML.
6422 7014
6423You may also link to related files, such as images. Provided you are 7015You may also link to related files, such as images. Provided you are
6424careful with relative pathnames, and provided you have also configured 7016careful with relative pathnames, and provided you have also configured
6425org-publish to upload the related files, these links will work 7017@code{org-publish} to upload the related files, these links will work
6426too. @ref{Complex example} for an example of this usage. 7018too. @ref{Complex example} for an example of this usage.
6427 7019
6428Sometime an Org-mode file to be published may contain links that are 7020Sometime an Org-mode file to be published may contain links that are
@@ -6681,13 +7273,16 @@ for all subsequent lines until the next @samp{#+CATEGORY} line, or the
6681end of the file. The first such line also applies to any entries before it. 7273end of the file. The first such line also applies to any entries before it.
6682@item #+COLUMNS: %25ITEM ..... 7274@item #+COLUMNS: %25ITEM .....
6683Set the default format for columns view. This format applies when 7275Set the default format for columns view. This format applies when
6684columns view is invoked in location where no COLUMNS property applies. 7276columns view is invoked in location where no @code{COLUMNS} property
7277applies.
6685@item #+CONSTANTS: name1=value1 ... 7278@item #+CONSTANTS: name1=value1 ...
6686Set file-local values for constants to be used in table formulas. This 7279Set file-local values for constants to be used in table formulas. This
6687line set the local variable @code{org-table-formula-constants-local}. 7280line set the local variable @code{org-table-formula-constants-local}.
6688The global version of theis variable is 7281The global version of this variable is
6689@code{org-table-formula-constants}. 7282@code{org-table-formula-constants}.
6690corresponding 7283@item #+DRAWERS: NAME1 .....
7284Set the file-local set of drawers. The corresponding global variable is
7285@code{org-drawers}.
6691@item #+LINK: linkword replace 7286@item #+LINK: linkword replace
6692These lines (several are allowed) specify link abbreviations. 7287These lines (several are allowed) specify link abbreviations.
6693@xref{Link abbreviations}. The corresponding variable is 7288@xref{Link abbreviations}. The corresponding variable is
@@ -6723,8 +7318,9 @@ variable is @code{org-startup-align-all-tables}, with a default value
6723align @r{align all tables} 7318align @r{align all tables}
6724noalign @r{don't align tables on startup} 7319noalign @r{don't align tables on startup}
6725@end example 7320@end example
6726Logging TODO state changes and clock intervals (variable 7321Logging TODO state changes and clock intervals (variables
6727@code{org-log-done}) can be configured using these options. 7322@code{org-log-done} and @code{org-log-repeat}) can be configured using
7323these options.
6728@cindex @code{logdone}, STARTUP keyword 7324@cindex @code{logdone}, STARTUP keyword
6729@cindex @code{nologging}, STARTUP keyword 7325@cindex @code{nologging}, STARTUP keyword
6730@cindex @code{lognotedone}, STARTUP keyword 7326@cindex @code{lognotedone}, STARTUP keyword
@@ -6776,7 +7372,7 @@ this file, and (potentially) the corresponding @emph{fast tag selection}
6776keys. The corresponding variable is @code{org-tag-alist}. 7372keys. The corresponding variable is @code{org-tag-alist}.
6777@item #+TBLFM: 7373@item #+TBLFM:
6778This line contains the formulas for the table directly above the line. 7374This line contains the formulas for the table directly above the line.
6779@item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+OPTIONS: 7375@item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+OPTIONS, #+DATE:
6780These lines provide settings for exporting files. For more details see 7376These lines provide settings for exporting files. For more details see
6781@ref{Export options}. 7377@ref{Export options}.
6782@item #+SEQ_TODO: #+TYP_TODO: 7378@item #+SEQ_TODO: #+TYP_TODO:
@@ -6830,6 +7426,9 @@ of the checkbox.
6830@item 7426@item
6831If the cursor is on a numbered item in a plain list, renumber the 7427If the cursor is on a numbered item in a plain list, renumber the
6832ordered list. 7428ordered list.
7429@item
7430If the cursor is on the @code{#+BEGIN} line of a dynamical block, the
7431block is updated.
6833@end itemize 7432@end itemize
6834 7433
6835@node Clean view, TTY keys, The very busy C-c C-c key, Miscellaneous 7434@node Clean view, TTY keys, The very busy C-c C-c key, Miscellaneous
@@ -6937,18 +7536,17 @@ org-convert-to-oddeven-levels}.
6937@section Using org-mode on a tty 7536@section Using org-mode on a tty
6938@cindex tty keybindings 7537@cindex tty keybindings
6939 7538
6940Org-mode uses a number of keys that are not accessible on a tty. This 7539Because Org-mode contains a large number of commands, by default much of
6941applies to most special keys like cursor keys, @key{TAB} and 7540Org-mode's core commands are bound to keys that are generally not
6942@key{RET}, when these are combined with modifier keys like @key{Meta} 7541accessible on a tty, such as the cursor keys (@key{left}, @key{right},
6943and/or @key{Shift}. Org-mode uses these bindings because it needs to 7542@key{up}, @key{down}), @key{TAB} and @key{RET}, in particular when used
6944provide keys for a large number of commands, and because these keys 7543together with modifiers like @key{Meta} and/or @key{Shift}. To access
6945appeared particularly easy to remember. In order to still be able to 7544these commands on a tty when special keys are unavailable, the following
6946access the core functionality of Org-mode on a tty, alternative 7545alternative bindings can be used. The tty bindings below will likely be
6947bindings are provided. Here is a complete list of these bindings, 7546more cumbersome; you may find for some of the bindings below that a
6948which are obviously more cumbersome to use. Note that sometimes a 7547customized work-around suits you better. For example, changing a time
6949work-around can be better. For example changing a time stamp is 7548stamp is really only fun with @kbd{S-@key{cursor}} keys, whereas on a
6950really only fun with @kbd{S-@key{cursor}} keys. On a tty you would 7549tty you would rather use @kbd{C-c .} to re-insert the timestamp.
6951rather use @kbd{C-c .} to re-insert the timestamp.
6952 7550
6953@multitable @columnfractions 0.15 0.2 0.2 7551@multitable @columnfractions 0.15 0.2 0.2
6954@item @b{Default} @tab @b{Alternative 1} @tab @b{Alternative 2} 7552@item @b{Default} @tab @b{Alternative 1} @tab @b{Alternative 2}
@@ -7013,10 +7611,27 @@ setup. See the installation instructions in the file
7013@cindex @file{cdlatex.el} 7611@cindex @file{cdlatex.el}
7014Org-mode can make use of the cdlatex package to efficiently enter 7612Org-mode can make use of the cdlatex package to efficiently enter
7015La@TeX{} fragments into Org-mode files. See @ref{CDLaTeX mode}. 7613La@TeX{} fragments into Org-mode files. See @ref{CDLaTeX mode}.
7614@item @file{imenu.el} by Ake Stenhoff and Lars Lindberg
7615@cindex @file{imenu.el}
7616Imenu allows menu access to an index of items in a file. Org-mode
7617supports imenu - all you need to do to get the index is the following:
7618@lisp
7619(add-hook 'org-mode-hook
7620 (lambda () 'imenu-add-to-menubar "Imenu"))
7621@end lisp
7622By default the index is two levels deep - you can modify the depth using
7623the option @code{org-imenu-depth}.
7016@item @file{remember.el} by John Wiegley 7624@item @file{remember.el} by John Wiegley
7017@cindex @file{remember.el} 7625@cindex @file{remember.el}
7018Org mode cooperates with remember, see @ref{Remember}. 7626Org mode cooperates with remember, see @ref{Remember}.
7019@file{Remember.el} is not part of Emacs, find it on the web. 7627@file{Remember.el} is not part of Emacs, find it on the web.
7628@item @file{speedbar.el} by Eric M. Ludlam
7629@cindex @file{speedbar.el}
7630Speedbar is a package that creates a special frame displaying files and
7631index items in files. Org-mode supports speedbar and allows you to
7632drill into Org-mode files directly from the speedbar. It also allows to
7633restrict the scope of agenda commands to a file or a subtree by using
7634the command @kbd{<} in the speedbar frame.
7020@cindex @file{table.el} 7635@cindex @file{table.el}
7021@item @file{table.el} by Takaaki Ota 7636@item @file{table.el} by Takaaki Ota
7022@kindex C-c C-c 7637@kindex C-c C-c
@@ -7070,13 +7685,12 @@ is loaded @emph{before} @file{allout.el}, for example by putting
7070 7685
7071@cindex @file{CUA.el} 7686@cindex @file{CUA.el}
7072@item @file{CUA.el} by Kim. F. Storm 7687@item @file{CUA.el} by Kim. F. Storm
7073Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys 7688Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys used by
7074used by CUA-mode (as well as pc-select-mode and s-region-mode) to 7689CUA-mode (as well as pc-select-mode and s-region-mode) to select and
7075select and extend the region. If you want to use one of these 7690extend the region. If you want to use one of these packages along with
7076packages along with Org-mode, configure the variable 7691Org-mode, configure the variable @code{org-replace-disputed-keys}. When
7077@code{org-CUA-compatible}. When set, Org-mode will move the following 7692set, Org-mode will move the following keybindings in Org-mode files, and
7078keybindings in Org-mode files, and in the agenda buffer (but not 7693in the agenda buffer (but not during date selection).
7079during date selection).
7080 7694
7081@example 7695@example
7082S-UP -> M-p S-DOWN -> M-n 7696S-UP -> M-p S-DOWN -> M-n
@@ -7197,6 +7811,12 @@ blogs. @url{http://www.cognition.ens.fr/~guerry/blorg.html}.
7197@item @file{org2rem.el} by Bastien Guerry 7811@item @file{org2rem.el} by Bastien Guerry
7198Translates Org-mode files into something readable by 7812Translates Org-mode files into something readable by
7199Remind. @url{http://www.cognition.ens.fr/~guerry/u/org2rem.el}. 7813Remind. @url{http://www.cognition.ens.fr/~guerry/u/org2rem.el}.
7814@item @file{org-toc.el} by Bastien Guerry
7815Produces a simple table of contents of an Org-mode file, for easy
7816navigation. @url{http://www.cognition.ens.fr/~guerry/u/org-registry.el}.
7817@item @file{org-registry.el} by Bastien Guerry
7818Find which Org-file link to a certain document.
7819@url{http://www.cognition.ens.fr/~guerry/u/org2rem.el}.
7200@end table 7820@end table
7201 7821
7202@page 7822@page
@@ -7299,15 +7919,18 @@ the link description when the link is later inserted into tan Org-mode
7299buffer with @kbd{C-c C-l}. 7919buffer with @kbd{C-c C-l}.
7300 7920
7301@node Tables in arbitrary syntax, Dynamic blocks, Adding hyperlink types, Extensions and Hacking 7921@node Tables in arbitrary syntax, Dynamic blocks, Adding hyperlink types, Extensions and Hacking
7302@section Tables in arbitrary syntax 7922@section Tables and Lists in arbitrary syntax
7303@cindex tables, in other modes 7923@cindex tables, in other modes
7924@cindex lists, in other modes
7304@cindex orgtbl-mode 7925@cindex orgtbl-mode
7305 7926
7306Since Orgtbl-mode can be used as a minor mode in arbitrary buffers, a 7927Since Orgtbl-mode can be used as a minor mode in arbitrary buffers, a
7307frequent feature request has been to make it work with native tables in 7928frequent feature request has been to make it work with native tables in
7308specific languages, for example La@TeX{}. However, this is extremely hard 7929specific languages, for example La@TeX{}. However, this is extremely
7309to do in a general way, would lead to a customization nightmare, and 7930hard to do in a general way, would lead to a customization nightmare,
7310would take away much of the simplicity of the Orgtbl-mode table editor. 7931and would take away much of the simplicity of the Orgtbl-mode table
7932editor.
7933
7311 7934
7312This appendix describes a different approach. We keep the Orgtbl-mode 7935This appendix describes a different approach. We keep the Orgtbl-mode
7313table in its native format (the @i{source table}), and use a custom 7936table in its native format (the @i{source table}), and use a custom
@@ -7316,10 +7939,17 @@ function to @i{translate} the table to the correct syntax, and to
7316the burden of writing conversion functions on the user, but it allows 7939the burden of writing conversion functions on the user, but it allows
7317for a very flexible system. 7940for a very flexible system.
7318 7941
7942Bastien added the ability to do the same with lists. You can use Org's
7943facilities to edit and structure lists by turning @code{orgstruct-mode}
7944on, then locally exporting such lists in another format (HTML, La@TeX{}
7945or TeXInfo.)
7946
7947
7319@menu 7948@menu
7320* Radio tables:: Sending and receiving 7949* Radio tables:: Sending and receiving
7321* A LaTeX example:: Step by step, almost a tutorial 7950* A LaTeX example:: Step by step, almost a tutorial
7322* Translator functions:: Copy and modify 7951* Translator functions:: Copy and modify
7952* Radio lists:: Doing the same for lists.
7323@end menu 7953@end menu
7324 7954
7325@node Radio tables, A LaTeX example, Tables in arbitrary syntax, Tables in arbitrary syntax 7955@node Radio tables, A LaTeX example, Tables in arbitrary syntax, Tables in arbitrary syntax
@@ -7388,7 +8018,7 @@ key.
7388@end itemize 8018@end itemize
7389 8019
7390@node A LaTeX example, Translator functions, Radio tables, Tables in arbitrary syntax 8020@node A LaTeX example, Translator functions, Radio tables, Tables in arbitrary syntax
7391@subsection A LaTeX example 8021@subsection A LaTeX example of radio tables
7392@cindex LaTeX, and orgtbl-mode 8022@cindex LaTeX, and orgtbl-mode
7393 8023
7394The best way to wrap the source table in La@TeX{} is to use the 8024The best way to wrap the source table in La@TeX{} is to use the
@@ -7492,7 +8122,7 @@ may also be a property list with column numbers and formats, for example
7492applied. 8122applied.
7493@end table 8123@end table
7494 8124
7495@node Translator functions, , A LaTeX example, Tables in arbitrary syntax 8125@node Translator functions, Radio lists, A LaTeX example, Tables in arbitrary syntax
7496@subsection Translator functions 8126@subsection Translator functions
7497@cindex HTML, and orgtbl-mode 8127@cindex HTML, and orgtbl-mode
7498@cindex translator function 8128@cindex translator function
@@ -7565,6 +8195,49 @@ containing the formatted table. If you write a generally useful
7565translator, please post it on @code{emacs-orgmode@@gnu.org} so that 8195translator, please post it on @code{emacs-orgmode@@gnu.org} so that
7566others can benefit from your work. 8196others can benefit from your work.
7567 8197
8198@node Radio lists, , Translator functions, Tables in arbitrary syntax
8199@subsection Radio lists
8200@cindex radio lists
8201@cindex org-list-insert-radio-list
8202
8203Sending and receiving radio lists works exactly the same way than
8204sending and receiving radio tables (@pxref{Radio tables}) @footnote{You
8205need to load the @code{org-export-latex.el} package to use radio lists
8206since the relevant code is there for now.}. As for radio tables, you
8207can insert radio lists templates in HTML, La@TeX{} and TeXInfo modes by
8208calling @code{org-list-insert-radio-list}.
8209
8210Here are the differences with radio tables:
8211
8212@itemize @minus
8213@item
8214Use @code{ORGLST} instead of @code{ORGTBL}.
8215@item
8216The available translation functions for radio lists don't take
8217parameters.
8218@item
8219`C-c C-c' will work when pressed on the first item of the list.
8220@end itemize
8221
8222Here is a La@TeX{} example. Let's say that you have this in your
8223La@TeX{} file:
8224
8225@example
8226% BEGIN RECEIVE ORGLST to-buy
8227% END RECEIVE ORGLST to-buy
8228\begin@{comment@}
8229#+ORGLIST: SEND to-buy orgtbl-to-latex
8230- a new house
8231- a new computer
8232 + a new keyboard
8233 + a new mouse
8234- a new life
8235\end@{comment@}
8236@end example
8237
8238Pressing `C-c C-c' on @code{a new house} and will insert the converted
8239La@TeX{} list between the two marker lines.
8240
7568@node Dynamic blocks, Special agenda views, Tables in arbitrary syntax, Extensions and Hacking 8241@node Dynamic blocks, Special agenda views, Tables in arbitrary syntax, Extensions and Hacking
7569@section Dynamic blocks 8242@section Dynamic blocks
7570@cindex dynamic blocks 8243@cindex dynamic blocks
@@ -7651,7 +8324,7 @@ search should continue from there.
7651(defun my-skip-unless-waiting () 8324(defun my-skip-unless-waiting ()
7652 "Skip trees that are not waiting" 8325 "Skip trees that are not waiting"
7653 (let ((subtree-end (save-excursion (org-end-of-subtree t)))) 8326 (let ((subtree-end (save-excursion (org-end-of-subtree t))))
7654 (if (re-search-forward ":WAITING:" subtree-end t) 8327 (if (re-search-forward ":waiting:" subtree-end t)
7655 nil ; tag found, do not skip 8328 nil ; tag found, do not skip
7656 subtree-end))) ; tag not found, continue after end of subtree 8329 subtree-end))) ; tag not found, continue after end of subtree
7657@end lisp 8330@end lisp
@@ -7683,8 +8356,9 @@ Skip current entry if it has a deadline.
7683@item '(org-agenda-skip-entry-if 'scheduled 'deadline) 8356@item '(org-agenda-skip-entry-if 'scheduled 'deadline)
7684Skip current entry if it has a deadline, or if it is scheduled. 8357Skip current entry if it has a deadline, or if it is scheduled.
7685@item '(org-agenda-skip-entry 'regexp "regular expression") 8358@item '(org-agenda-skip-entry 'regexp "regular expression")
7686Skip current entry if the regular expression contained in the variable 8359Skip current entry if the regular expression matches in the entry.
7687@code{org-agenda-skip-regexp} matches in the entry. 8360@item '(org-agenda-skip-entry 'notregexp "regular expression")
8361Skip current entry unless the regular expression matches.
7688@item '(org-agenda-skip-subtree-if 'regexp "regular expression") 8362@item '(org-agenda-skip-subtree-if 'regexp "regular expression")
7689Same as above, but check and skip the entire subtree. 8363Same as above, but check and skip the entire subtree.
7690@end table 8364@end table
@@ -7696,7 +8370,7 @@ like this, even without defining a special function:
7696(org-add-agenda-custom-command 8370(org-add-agenda-custom-command
7697 '("b" todo "PROJECT" 8371 '("b" todo "PROJECT"
7698 ((org-agenda-skip-function '(org-agenda-skip-subtree-if 8372 ((org-agenda-skip-function '(org-agenda-skip-subtree-if
7699 'regexp ":WAITING:")) 8373 'regexp ":waiting:"))
7700 (org-agenda-overriding-header "Projects waiting for something: ")))) 8374 (org-agenda-overriding-header "Projects waiting for something: "))))
7701@end lisp 8375@end lisp
7702 8376
@@ -7722,7 +8396,9 @@ If WHICH is nil or `all', get all properties. If WHICH is
7722@defun org-entry-get pom property &optional inherit 8396@defun org-entry-get pom property &optional inherit
7723Get value of PROPERTY for entry at point-or-marker POM. 8397Get value of PROPERTY for entry at point-or-marker POM.
7724If INHERIT is non-nil and the entry does not have the property, 8398If INHERIT is non-nil and the entry does not have the property,
7725then also check higher levels of the hierarchy. 8399then also check higher levels of the hierarchy. This function ignores
8400the value of @code{org-use-property-inheritance} and requires the
8401explicit INHERIT flag.
7726@end defun 8402@end defun
7727 8403
7728@defun org-entry-delete pom property 8404@defun org-entry-delete pom property
@@ -7741,7 +8417,7 @@ Get all property keys in the current buffer.
7741Insert a property drawer at point. 8417Insert a property drawer at point.
7742@end defun 8418@end defun
7743 8419
7744@node History and Acknowledgments, Index, Extensions and Hacking, Top 8420@node History and Acknowledgments, Main Index, Extensions and Hacking, Top
7745@appendix History and Acknowledgments 8421@appendix History and Acknowledgments
7746@cindex acknowledgments 8422@cindex acknowledgments
7747@cindex history 8423@cindex history
@@ -7814,11 +8490,10 @@ HTML agendas.
7814@i{John Foerch} figured out how to make incremental search show context 8490@i{John Foerch} figured out how to make incremental search show context
7815around a match in a hidden outline tree. 8491around a match in a hidden outline tree.
7816@item 8492@item
7817@i{Niels Giessen} had the idea to automatically archive DONE trees. 8493@i{Niels Giesen} had the idea to automatically archive DONE trees.
7818@item 8494@item
7819@i{Bastien Guerry} wrote the La@TeX{} exporter and has been prolific 8495@i{Bastien Guerry} wrote the La@TeX{} exporter and has been prolific
7820with patches, ideas, and bug reports. 8496with patches, ideas, and bug reports.
7821to Org-mode.
7822@item 8497@item
7823@i{Kai Grossjohann} pointed out key-binding conflicts with other packages. 8498@i{Kai Grossjohann} pointed out key-binding conflicts with other packages.
7824@item 8499@item
@@ -7830,13 +8505,16 @@ provided frequent feedback and some patches.
7830@item 8505@item
7831@i{Jason F. McBrayer} suggested agenda export to CSV format. 8506@i{Jason F. McBrayer} suggested agenda export to CSV format.
7832@item 8507@item
8508@i{Max Mikhanosha} came up with the idea of refiling.
8509@item
7833@i{Dmitri Minaev} sent a patch to set priority limits on a per-file 8510@i{Dmitri Minaev} sent a patch to set priority limits on a per-file
7834basis. 8511basis.
7835@item 8512@item
7836@i{Stefan Monnier} provided a patch to keep the Emacs-Lisp compiler 8513@i{Stefan Monnier} provided a patch to keep the Emacs-Lisp compiler
7837happy. 8514happy.
7838@item 8515@item
7839@i{Rick Moynihan} proposed to allow multiple TODO sequences in a file. 8516@i{Rick Moynihan} proposed to allow multiple TODO sequences in a file
8517and to be able to quickly restrict the agenda to a subtree.
7840@item 8518@item
7841@i{Todd Neal} provided patches for links to Info files and elisp forms. 8519@i{Todd Neal} provided patches for links to Info files and elisp forms.
7842@item 8520@item
@@ -7914,12 +8592,12 @@ and contributed various ideas and code snippets.
7914@end itemize 8592@end itemize
7915 8593
7916 8594
7917@node Index, Key Index, History and Acknowledgments, Top 8595@node Main Index, Key Index, History and Acknowledgments, Top
7918@unnumbered Index 8596@unnumbered The Main Index
7919 8597
7920@printindex cp 8598@printindex cp
7921 8599
7922@node Key Index, , Index, Top 8600@node Key Index, , Main Index, Top
7923@unnumbered Key Index 8601@unnumbered Key Index
7924 8602
7925@printindex ky 8603@printindex ky
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 1795f023d5f..55e7c2474f3 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
12008-01-18 Carsten Dominik <dominik@science.uva.nl>
2
3 * refcards/orgcard.tex: Update to Org-mode version 5.19.
4
12008-01-12 Eli Zaretskii <eliz@gnu.org> 52008-01-12 Eli Zaretskii <eliz@gnu.org>
2 6
3 * MACHINES: Add an explicit list of platforms that are no longer 7 * MACHINES: Add an explicit list of platforms that are no longer
diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex
index 014f4655289..0a231547d03 100644
--- a/etc/refcards/orgcard.tex
+++ b/etc/refcards/orgcard.tex
@@ -1,8 +1,8 @@
1% Reference Card for Org Mode 1% Reference Card for Org Mode
2\def\orgversionnumber{5.03} 2\def\orgversionnumber{5.19}
3\def\versionyear{2007} % latest update 3\def\versionyear{2008} % latest update
4\def\year{2008} % latest copyright year 4\def\year{2008} % latest copyright year
5% 5
6%**start of header 6%**start of header
7\newcount\columnsperpage 7\newcount\columnsperpage
8\newcount\letterpaper 8\newcount\letterpaper
@@ -12,17 +12,11 @@
12 12
13\columnsperpage=3 13\columnsperpage=3
14 14
15% Set letterpaper to 0 for A4 paper, 1 for letter (US) paper. Useful 15% Set letterpapaer to 0 for A4 paper, 1 for letter (US) paper. Useful
16% only when columnsperpage is 2 or 3. 16% only when columnsperpage is 2 or 3.
17 17
18\letterpaper=0 18\letterpaper=0
19 19
20% PDF output layout. 0 for A4, 1 for letter (US), a `l' is added for
21% a landscape layout.
22
23\input pdflayout.sty
24\pdflayout=(0l)
25
26% Nothing else needs to be changed below this line. 20% Nothing else needs to be changed below this line.
27% Copyright (C) 1987, 1993, 1996, 1997, 2001, 2002, 2003, 2004, 21% Copyright (C) 1987, 1993, 1996, 1997, 2001, 2002, 2003, 2004,
28% 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 22% 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -31,7 +25,7 @@
31 25
32% GNU Emacs is free software; you can redistribute it and/or modify 26% GNU Emacs is free software; you can redistribute it and/or modify
33% it under the terms of the GNU General Public License as published by 27% it under the terms of the GNU General Public License as published by
34% the Free Software Foundation; either version 3, or (at your option) 28% the Free Software Foundation; either version 2, or (at your option)
35% any later version. 29% any later version.
36 30
37% GNU Emacs is distributed in the hope that it will be useful, 31% GNU Emacs is distributed in the hope that it will be useful,
@@ -314,6 +308,7 @@ are preserved on all copies.
314\section{Structure Editing} 308\section{Structure Editing}
315 309
316\key{insert new heading/item at current level}{M-RET} 310\key{insert new heading/item at current level}{M-RET}
311\key{insert new heading after subtree}{C-RET}
317\key{insert new TODO entry/checkbox item}{M-S-RET} 312\key{insert new TODO entry/checkbox item}{M-S-RET}
318 313
319\key{promote current heading up one level}{M-LEFT} 314\key{promote current heading up one level}{M-LEFT}
@@ -322,6 +317,7 @@ are preserved on all copies.
322\key{demote current subtree down one level}{M-S-RIGHT} 317\key{demote current subtree down one level}{M-S-RIGHT}
323 318
324\key{move subtree/list item up/down}{M-S-UP/DOWN} 319\key{move subtree/list item up/down}{M-S-UP/DOWN}
320\key{refile subtree}{C-c C-w}
325\key{kill subtree}{C-c C-x C-w} 321\key{kill subtree}{C-c C-x C-w}
326\key{copy subtree}{C-c C-x M-w} 322\key{copy subtree}{C-c C-x M-w}
327\key{yank subtree}{C-c C-x C-y} 323\key{yank subtree}{C-c C-x C-y}
@@ -342,10 +338,10 @@ are preserved on all copies.
342 338
343\section{Filtering and Sparse Trees} 339\section{Filtering and Sparse Trees}
344 340
345\key{show sparse tree for all matches of a regexp}{C-c /} 341% FIXME: this is garbage
342\key{construct a sparse tree by various criteria}{C-c /}
346\key{view TODO's in sparse tree}{C-c C-v} 343\key{view TODO's in sparse tree}{C-c C-v}
347\key{global TODO list in agenda mode}{C-c t$^1$} 344\key{global TODO list in agenda mode}{C-c t$^1$}
348\key{create sparse tree with all deadlines due}{C-c C-w}
349\key{time sorted view of current org file}{C-c a L} 345\key{time sorted view of current org file}{C-c a L}
350%\key{agenda for the week}{C-c a$^1$} 346%\key{agenda for the week}{C-c a$^1$}
351%\key{agenda for date at cursor}{C-c C-o} 347%\key{agenda for date at cursor}{C-c C-o}
@@ -552,9 +548,11 @@ after ``{\tt :}'', and dictionary words elsewhere.
552 548
553\section{Properties and Column View} 549\section{Properties and Column View}
554 550
551\key{set property}{C-c C-x p}
555\key{special commands in property lines}{C-c C-c} 552\key{special commands in property lines}{C-c C-c}
556\key{next/previous allowed value}{S-left/right} 553\key{next/previous allowed value}{S-left/right}
557\key{turn on column view}{C-c C-x C-c} 554\key{turn on column view}{C-c C-x C-c}
555\key{capture columns view in dynamic block}{C-c C-x r}
558 556
559\key{quit column view}{q} 557\key{quit column view}{q}
560\key{next/previous allowed value}{S-left/right} 558\key{next/previous allowed value}{S-left/right}
@@ -575,7 +573,7 @@ after ``{\tt :}'', and dictionary words elsewhere.
575\key{Like \kbd{C-c .} but make stamp inactive}{C-c !} % FIXME 573\key{Like \kbd{C-c .} but make stamp inactive}{C-c !} % FIXME
576\key{insert DEADLINE timestamp}{C-c C-d} 574\key{insert DEADLINE timestamp}{C-c C-d}
577\key{insert SCHEDULED timestamp}{C-c C-s} 575\key{insert SCHEDULED timestamp}{C-c C-s}
578\key{create sparse tree with all deadlines due}{C-c C-w} 576\key{create sparse tree with all deadlines due}{C-c / d}
579\key{the time between 2 dates in a time range}{C-c C-y} 577\key{the time between 2 dates in a time range}{C-c C-y}
580\key{change timestamp at cursor by $\pm 1$ day}{S-RIGHT/LEFT$^3$} 578\key{change timestamp at cursor by $\pm 1$ day}{S-RIGHT/LEFT$^3$}
581\key{change year/month/day at cursor by $\pm 1$}{S-UP/DOWN$^3$} 579\key{change year/month/day at cursor by $\pm 1$}{S-UP/DOWN$^3$}
@@ -606,6 +604,7 @@ after ``{\tt :}'', and dictionary words elsewhere.
606\key{add/move current file to front of agenda}{C-c [} 604\key{add/move current file to front of agenda}{C-c [}
607\key{remove current file from your agenda}{C-c ]} 605\key{remove current file from your agenda}{C-c ]}
608\key{cycle through agenda file list}{C-'} 606\key{cycle through agenda file list}{C-'}
607\key{set/remove restriction lock}{C-c C-x </>}
609 608
610\key{compile agenda for the current week}{C-c a a$^1$} 609\key{compile agenda for the current week}{C-c a a$^1$}
611\key{compile global TODO list}{C-c a t$^1$} 610\key{compile global TODO list}{C-c a t$^1$}
@@ -618,13 +617,6 @@ after ``{\tt :}'', and dictionary words elsewhere.
618\key{configure stuck projects}{C-c a !$^1$} 617\key{configure stuck projects}{C-c a !$^1$}
619\key{agenda for date at cursor}{C-c C-o} 618\key{agenda for date at cursor}{C-c C-o}
620 619
621\vskip 1mm
622To set categories, add lines like$^2$:
623\vskip -1mm
624\beginexample%
625\#+CATEGORY: MyCateg
626\endexample
627
628{\bf Commands available in an agenda buffer} 620{\bf Commands available in an agenda buffer}
629 621
630{\bf View Org file} 622{\bf View Org file}
@@ -658,7 +650,7 @@ To set categories, add lines like$^2$:
658\key{kill item and source}{C-k} 650\key{kill item and source}{C-k}
659\key{archive the subtree}{\$} 651\key{archive the subtree}{\$}
660\key{show tags of current headline}{T} 652\key{show tags of current headline}{T}
661\key{set tags for current headline}{:} 653\key{set tags for current headline/region}{:}
662\key{toggle ARCHIVE tag}{a} 654\key{toggle ARCHIVE tag}{a}
663\key{set priority of current item}{p} 655\key{set priority of current item}{p}
664\key{raise/lower priority of current item}{S-UP/DOWN$^3$} 656\key{raise/lower priority of current item}{S-UP/DOWN$^3$}
@@ -669,9 +661,8 @@ To set categories, add lines like$^2$:
669\key{insert new entry into diary}{i} 661\key{insert new entry into diary}{i}
670 662
671\newcolumn 663\newcolumn
672\key{start the clock on current item (clock-in)}{I} 664\key{start/stop/cancel the clock on current item}{I / O / X}
673\key{stop the clock (clock-out)}{O} 665\key{jump to running clock entry}{J}
674\key{cancel current clock}{X}
675 666
676{\bf Misc} 667{\bf Misc}
677 668