comparison man/org.texi @ 73874:3d54d97a0181

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