diff options
| -rw-r--r-- | man/org.texi | 1263 |
1 files changed, 932 insertions, 331 deletions
diff --git a/man/org.texi b/man/org.texi index 0c3460b4178..acd55e895ce 100644 --- a/man/org.texi +++ b/man/org.texi | |||
| @@ -3,20 +3,20 @@ | |||
| 3 | @setfilename ../info/org | 3 | @setfilename ../info/org |
| 4 | @settitle Org Mode Manual | 4 | @settitle Org Mode Manual |
| 5 | 5 | ||
| 6 | @set VERSION 4.44 | 6 | @set VERSION 4.54 |
| 7 | @set DATE August 2006 | 7 | @set DATE November 2006 |
| 8 | 8 | ||
| 9 | @dircategory Emacs | 9 | @dircategory Emacs |
| 10 | @direntry | 10 | @direntry |
| 11 | * Org Mode: (org). outline-based notes management and organizer | 11 | * Org Mode: (org). outline-based notes management and organizer |
| 12 | @end direntry | 12 | @end direntry |
| 13 | 13 | ||
| 14 | @c Version and Contact Info | 14 | @c Version and Contact Info |
| 15 | @set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage} | 15 | @set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage} |
| 16 | @set AUTHOR Carsten Dominik | 16 | @set AUTHOR Carsten Dominik |
| 17 | @set MAINTAINER Carsten Dominik | 17 | @set MAINTAINER Carsten Dominik |
| 18 | @set MAINTAINEREMAIL @email{dominik@@science.uva.nl} | 18 | @set MAINTAINEREMAIL @email{dominik at science dot uva dot nl} |
| 19 | @set MAINTAINERCONTACT @uref{mailto:dominik@@science.uva.nl,contact the maintainer} | 19 | @set MAINTAINERCONTACT @uref{mailto:dominik at science dot uva dot nl,contact the maintainer} |
| 20 | @c %**end of header | 20 | @c %**end of header |
| 21 | @finalout | 21 | @finalout |
| 22 | 22 | ||
| @@ -111,8 +111,7 @@ Document Structure | |||
| 111 | * Structure editing:: Changing sequence and level of headlines | 111 | * Structure editing:: Changing sequence and level of headlines |
| 112 | * Archiving:: Move done task trees to a different place | 112 | * Archiving:: Move done task trees to a different place |
| 113 | * Sparse trees:: Matches embedded in context | 113 | * Sparse trees:: Matches embedded in context |
| 114 | * Plain lists:: Editing hand-formatted lists | 114 | * Plain lists:: Additional structure within an entry |
| 115 | * Checkboxes:: Easily checking off things. | ||
| 116 | 115 | ||
| 117 | Archiving | 116 | Archiving |
| 118 | 117 | ||
| @@ -143,6 +142,7 @@ Hyperlinks | |||
| 143 | * Internal links:: Links to other places in the current file | 142 | * Internal links:: Links to other places in the current file |
| 144 | * External links:: URL-like links to the world | 143 | * External links:: URL-like links to the world |
| 145 | * Handling links:: Creating, inserting and following | 144 | * Handling links:: Creating, inserting and following |
| 145 | * Link abbreviations:: Shortcuts for writing complex links | ||
| 146 | * Search options:: Linking to a specific location | 146 | * Search options:: Linking to a specific location |
| 147 | * Custom searches:: When the default search is not enough | 147 | * Custom searches:: When the default search is not enough |
| 148 | * Remember:: Org-trees store quick notes | 148 | * Remember:: Org-trees store quick notes |
| @@ -157,6 +157,8 @@ TODO items | |||
| 157 | * TODO basics:: Marking and displaying TODO entries | 157 | * TODO basics:: Marking and displaying TODO entries |
| 158 | * TODO extensions:: Workflow and assignments | 158 | * TODO extensions:: Workflow and assignments |
| 159 | * Priorities:: Some things are more important than others | 159 | * Priorities:: Some things are more important than others |
| 160 | * Breaking down tasks:: Splitting a task into managable pieces | ||
| 161 | * Checkboxes:: Tick-off lists | ||
| 160 | 162 | ||
| 161 | Extended use of TODO keywords | 163 | Extended use of TODO keywords |
| 162 | 164 | ||
| @@ -168,8 +170,13 @@ Timestamps | |||
| 168 | 170 | ||
| 169 | * Time stamps:: Assigning a time to a tree entry | 171 | * Time stamps:: Assigning a time to a tree entry |
| 170 | * Creating timestamps:: Commands which insert timestamps | 172 | * Creating timestamps:: Commands which insert timestamps |
| 173 | * Custom time format:: If you cannot work with the ISO format | ||
| 171 | * Progress logging:: Documenting when what work was done. | 174 | * Progress logging:: Documenting when what work was done. |
| 172 | 175 | ||
| 176 | Creating timestamps | ||
| 177 | |||
| 178 | * The date/time prompt:: How org-mode helps you entring date and time | ||
| 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? |
| @@ -189,15 +196,27 @@ Agenda Views | |||
| 189 | * Global TODO list:: All unfinished action items | 196 | * Global TODO list:: All unfinished action items |
| 190 | * Matching headline tags:: Structured information with fine-tuned search | 197 | * Matching headline tags:: Structured information with fine-tuned search |
| 191 | * Timeline:: Time-sorted view for single file | 198 | * Timeline:: Time-sorted view for single file |
| 199 | * Presentation and sorting:: How agenda items are prepared for display | ||
| 192 | * Agenda commands:: Remote editing of org trees | 200 | * Agenda commands:: Remote editing of org trees |
| 201 | * Custom agenda views:: Defining special searches and views | ||
| 193 | 202 | ||
| 194 | The weekly/daily agenda | 203 | The weekly/daily agenda |
| 195 | 204 | ||
| 205 | * Calendar/Diary integration:: Integrating Anniversaries and more | ||
| 206 | |||
| 207 | Presentation and sorting | ||
| 208 | |||
| 196 | * Categories:: Not all tasks are equal | 209 | * Categories:: Not all tasks are equal |
| 197 | * Time-of-day specifications:: How the agenda knows the time | 210 | * Time-of-day specifications:: How the agenda knows the time |
| 198 | * Calendar/Diary integration:: Integrating Anniversaries and more | ||
| 199 | * Sorting of agenda items:: The order of things | 211 | * Sorting of agenda items:: The order of things |
| 200 | 212 | ||
| 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 | ||
| 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 |
| @@ -298,6 +317,15 @@ 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 |
| @@ -310,12 +338,13 @@ example: | |||
| 310 | @r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities} | 338 | @r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities} |
| 311 | @r{@bullet{} as a TODO list editor} | 339 | @r{@bullet{} as a TODO list editor} |
| 312 | @r{@bullet{} as a full agenda and planner with deadlines and work scheduling} | 340 | @r{@bullet{} as a full agenda and planner with deadlines and work scheduling} |
| 341 | @r{@bullet{} as an environment to implement David Allen's GTD system} | ||
| 313 | @r{@bullet{} as a simple hypertext system, with HTML export} | 342 | @r{@bullet{} as a simple hypertext system, with HTML export} |
| 314 | @r{@bullet{} as a publishing tool to create a set of interlinked webpages} | 343 | @r{@bullet{} as a publishing tool to create a set of interlinked webpages} |
| 315 | @end example | 344 | @end example |
| 316 | 345 | ||
| 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 |
| @@ -432,8 +461,8 @@ 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? |
| @@ -442,6 +471,38 @@ with clear information about: | |||
| 442 | @end enumerate | 471 | @end enumerate |
| 443 | @noindent Thank you for helping to improve this mode. | 472 | @noindent Thank you for helping to improve this mode. |
| 444 | 473 | ||
| 474 | @subsubheading How to create a useful backtrace | ||
| 475 | |||
| 476 | @cindex backtrace of an error | ||
| 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 | ||
| 505 | |||
| 445 | @node Document structure, Tables, Introduction, Top | 506 | @node Document structure, Tables, Introduction, Top |
| 446 | @chapter Document Structure | 507 | @chapter Document Structure |
| 447 | @cindex document structure | 508 | @cindex document structure |
| @@ -458,8 +519,7 @@ edit the structure of the document. | |||
| 458 | * Structure editing:: Changing sequence and level of headlines | 519 | * Structure editing:: Changing sequence and level of headlines |
| 459 | * Archiving:: Move done task trees to a different place | 520 | * Archiving:: Move done task trees to a different place |
| 460 | * Sparse trees:: Matches embedded in context | 521 | * Sparse trees:: Matches embedded in context |
| 461 | * Plain lists:: Editing hand-formatted lists | 522 | * Plain lists:: Additional structure within an entry |
| 462 | * Checkboxes:: Easily checking off things. | ||
| 463 | @end menu | 523 | @end menu |
| 464 | 524 | ||
| 465 | @node Outlines, Headlines, Document structure, Document structure | 525 | @node Outlines, Headlines, Document structure, Document structure |
| @@ -555,6 +615,12 @@ Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field. | |||
| 555 | @kindex C-c C-a | 615 | @kindex C-c C-a |
| 556 | @item C-c C-a | 616 | @item C-c C-a |
| 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 |
| @@ -625,7 +691,9 @@ 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. |
| @@ -699,9 +767,10 @@ its location in the outline tree, but behaves in the following way: | |||
| 699 | @itemize @minus | 767 | @itemize @minus |
| 700 | @item | 768 | @item |
| 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 |
| @@ -716,7 +785,7 @@ is. Configure the details using the variable | |||
| 716 | @code{org-export-with-archived-trees}. | 785 | @code{org-export-with-archived-trees}. |
| 717 | @end itemize | 786 | @end itemize |
| 718 | 787 | ||
| 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 |
| @@ -731,6 +800,9 @@ 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 |
| @@ -790,7 +862,9 @@ 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 |
| @@ -820,20 +894,17 @@ 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 |
| @@ -853,15 +924,15 @@ less. For example: | |||
| 853 | @example | 924 | @example |
| 854 | @group | 925 | @group |
| 855 | ** Lord of the Rings | 926 | ** Lord of the Rings |
| 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 | ||
| @@ -927,56 +998,6 @@ 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 |
| @@ -1020,7 +1041,7 @@ 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 | ||
| @@ -1636,6 +1657,7 @@ links to other files, Usenet articles, emails, and much more. | |||
| 1636 | * Internal links:: Links to other places in the current file | 1657 | * Internal links:: Links to other places in the current file |
| 1637 | * External links:: URL-like links to the world | 1658 | * External links:: URL-like links to the world |
| 1638 | * Handling links:: Creating, inserting and following | 1659 | * Handling links:: Creating, inserting and following |
| 1660 | * Link abbreviations:: Shortcuts for writing complex links | ||
| 1639 | * Search options:: Linking to a specific location | 1661 | * Search options:: Linking to a specific location |
| 1640 | * Custom searches:: When the default search is not enough | 1662 | * Custom searches:: When the default search is not enough |
| 1641 | * Remember:: Org-trees store quick notes | 1663 | * Remember:: Org-trees store quick notes |
| @@ -1676,6 +1698,7 @@ internal structure of all links, use the menu entry | |||
| 1676 | @cindex internal links | 1698 | @cindex internal links |
| 1677 | @cindex links, internal | 1699 | @cindex links, internal |
| 1678 | @cindex CamelCase links | 1700 | @cindex CamelCase links |
| 1701 | @cindex targets, for links | ||
| 1679 | 1702 | ||
| 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 |
| @@ -1726,6 +1749,9 @@ earlier. | |||
| 1726 | 1749 | ||
| 1727 | @node Radio targets, CamelCase links, Internal links, Internal links | 1750 | @node Radio targets, CamelCase links, Internal links, Internal links |
| 1728 | @subsection Radio targets | 1751 | @subsection Radio targets |
| 1752 | @cindex radio targets | ||
| 1753 | @cindex targets, radio | ||
| 1754 | @cindex links, radio targets | ||
| 1729 | 1755 | ||
| 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 |
| @@ -1744,10 +1770,11 @@ loaded into Emacs. To update the target list during editing, press | |||
| 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 |
| @@ -1810,8 +1837,9 @@ as links. If spaces must be part of the link (for example in | |||
| 1810 | @samp{bbdb:Richard Stallman}), or you need to remove ambiguities about the end of | 1837 | @samp{bbdb:Richard Stallman}), or you need to remove ambiguities about the end of |
| 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. |
| @@ -1900,7 +1928,9 @@ would. Under Emacs 22, also @kbd{mouse-1} will follow a link. | |||
| 1900 | 1928 | ||
| 1901 | @kindex mouse-3 | 1929 | @kindex mouse-3 |
| 1902 | @item mouse-3 | 1930 | @item mouse-3 |
| 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 % |
| @@ -1917,8 +1947,57 @@ 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 | ||
| 1950 | @node Link abbreviations, Search options, 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. | ||
| 1920 | 1999 | ||
| 1921 | @node Search options, Custom searches, Handling links, Hyperlinks | 2000 | @node Search options, Custom searches, Link abbreviations, Hyperlinks |
| 1922 | @section Search options in file links | 2001 | @section Search options in file links |
| 1923 | @cindex search option in file links | 2002 | @cindex search option in file links |
| 1924 | @cindex file links, searching | 2003 | @cindex file links, searching |
| @@ -1970,6 +2049,7 @@ a search for @samp{find me} in the current file, just as | |||
| 1970 | @node Custom searches, Remember, Search options, Hyperlinks | 2049 | @node Custom searches, Remember, Search options, Hyperlinks |
| 1971 | @section Custom Searches | 2050 | @section Custom Searches |
| 1972 | @cindex custom search strings | 2051 | @cindex custom search strings |
| 2052 | @cindex search strings, custom | ||
| 1973 | 2053 | ||
| 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 |
| @@ -2101,6 +2181,8 @@ things you have to do. | |||
| 2101 | * TODO basics:: Marking and displaying TODO entries | 2181 | * TODO basics:: Marking and displaying TODO entries |
| 2102 | * TODO extensions:: Workflow and assignments | 2182 | * TODO extensions:: Workflow and assignments |
| 2103 | * Priorities:: Some things are more important than others | 2183 | * Priorities:: Some things are more important than others |
| 2184 | * Breaking down tasks:: Splitting a task into managable pieces | ||
| 2185 | * Checkboxes:: Tick-off lists | ||
| 2104 | @end menu | 2186 | @end menu |
| 2105 | 2187 | ||
| 2106 | @node TODO basics, TODO extensions, TODO items, TODO items | 2188 | @node TODO basics, TODO extensions, TODO items, TODO items |
| @@ -2264,8 +2346,7 @@ changing one of these lines, use @kbd{C-c C-c} with the cursor still | |||
| 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: |
| @@ -2277,7 +2358,7 @@ large group of people, you may split the names over several lines: | |||
| 2277 | #+TYP_TODO: DONE | 2358 | #+TYP_TODO: DONE |
| 2278 | @end example | 2359 | @end example |
| 2279 | 2360 | ||
| 2280 | @node Priorities, , TODO extensions, TODO items | 2361 | @node Priorities, Breaking down tasks, TODO extensions, TODO items |
| 2281 | @section Priorities | 2362 | @section Priorities |
| 2282 | @cindex priorities | 2363 | @cindex priorities |
| 2283 | 2364 | ||
| @@ -2314,8 +2395,96 @@ are also used to modify time stamps (@pxref{Creating timestamps}). | |||
| 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. |
| @@ -2323,6 +2492,7 @@ planning. | |||
| 2323 | @menu | 2492 | @menu |
| 2324 | * Time stamps:: Assigning a time to a tree entry | 2493 | * Time stamps:: Assigning a time to a tree entry |
| 2325 | * Creating timestamps:: Commands which insert timestamps | 2494 | * Creating timestamps:: Commands which insert timestamps |
| 2495 | * Custom time format:: If you cannot work with the ISO format | ||
| 2326 | * Progress logging:: Documenting when what work was done. | 2496 | * Progress logging:: Documenting when what work was done. |
| 2327 | @end menu | 2497 | @end menu |
| 2328 | 2498 | ||
| @@ -2336,10 +2506,12 @@ planning. | |||
| 2336 | @cindex scheduling | 2506 | @cindex scheduling |
| 2337 | 2507 | ||
| 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 |
| @@ -2350,6 +2522,21 @@ 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. |
| 2352 | 2524 | ||
| 2525 | @example | ||
| 2526 | * Meet Peter at the movies <2006-11-01 Wed 19:15> | ||
| 2527 | @end example | ||
| 2528 | |||
| 2529 | @item Inactive time stamp | ||
| 2530 | @cindex timestamp, inactive | ||
| 2531 | @cindex inactive timestamp | ||
| 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 | ||
| 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 |
| @@ -2406,7 +2593,7 @@ 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 |
| @@ -2445,8 +2632,8 @@ instead. | |||
| 2445 | 2632 | ||
| 2446 | @kindex C-c C-o | 2633 | @kindex C-c C-o |
| 2447 | @item C-c C-o | 2634 | @item C-c C-o |
| 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 |
| @@ -2480,11 +2667,11 @@ CUA-mode (@pxref{Conflicts}). | |||
| 2480 | @kindex S-@key{down} | 2667 | @kindex S-@key{down} |
| 2481 | @item S-@key{up} | 2668 | @item S-@key{up} |
| 2482 | @itemx S-@key{down} | 2669 | @itemx S-@key{down} |
| 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 |
| @@ -2495,15 +2682,42 @@ 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 < |
| @@ -2535,10 +2749,53 @@ One month forward. | |||
| 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 |
| @@ -2572,6 +2829,8 @@ state cycling, that line will be removed again. In the timeline | |||
| 2572 | (@pxref{Timeline}) and in the agenda (@pxref{Weekly/Daily agenda}), | 2829 | (@pxref{Timeline}) and in the agenda (@pxref{Weekly/Daily agenda}), |
| 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 |
| @@ -2592,7 +2851,8 @@ keyword together with a timestamp. | |||
| 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 |
| @@ -2612,7 +2872,8 @@ 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 |
| @@ -2685,6 +2946,7 @@ Tags are normal words containing letters, numbers, @samp{_}, and | |||
| 2685 | @node Tag inheritance, Setting tags, Tags, Tags | 2946 | @node Tag inheritance, Setting tags, Tags, Tags |
| 2686 | @section Tag inheritance | 2947 | @section Tag inheritance |
| 2687 | @cindex inheritance, of tags | 2948 | @cindex inheritance, of tags |
| 2949 | @cindex sublevels, inclusion into tags match | ||
| 2688 | 2950 | ||
| 2689 | @i{Tags} make use of the hierarchical structure of outline trees. If a | 2951 | @i{Tags} make use of the hierarchical structure of outline trees. If a |
| 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 |
| @@ -2709,6 +2971,7 @@ searching using the variables @code{org-use-tag-inheritance} and | |||
| 2709 | @node Setting tags, Tag searches, Tag inheritance, Tags | 2971 | @node Setting tags, Tag searches, Tag inheritance, Tags |
| 2710 | @section Setting tags | 2972 | @section Setting tags |
| 2711 | @cindex setting tags | 2973 | @cindex setting tags |
| 2974 | @cindex tags, setting | ||
| 2712 | 2975 | ||
| 2713 | @kindex M-@key{TAB} | 2976 | @kindex M-@key{TAB} |
| 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. |
| @@ -2732,18 +2995,26 @@ 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))) |
| @@ -2774,32 +3045,57 @@ these lines to activate any changes. | |||
| 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 | ||
| 2781 | from that group. @key{SPC} clears all tags for this line, @kbd{RET} | ||
| 2782 | accepts the modified set, and @kbd{C-g} aborts without installing | ||
| 2783 | changes. This method lets you assign tags to a headline with very few | ||
| 2784 | keys. With the above setup, you could clear the current tags and set | ||
| 2785 | @samp{@@HOME}, @samp{Laptop} and @samp{PC} tags with just the following | ||
| 2786 | keys: @kbd{C-c C-c @key{SPC} h l p @key{RET}}. Switching from | ||
| 2787 | @samp{@@HOME} to @samp{@@WORK} would be done with @kbd{C-c C-c w | ||
| 2788 | @key{RET}}. | ||
| 2789 | |||
| 2790 | What if you have globally defined your preferred set of tags using the | ||
| 2791 | variable @code{org-tag-alist}, but would like to use a dynamic tag list | ||
| 2792 | in a specific file? Just add an empty TAGS option line to that file: | ||
| 2793 | |||
| 2794 | @example | ||
| 2795 | #+TAGS: | ||
| 2796 | @end example | ||
| 2797 | 3051 | ||
| 3052 | @table @kbd | ||
| 3053 | @item a-z... | ||
| 3054 | Pressing keys assigned to tags will add or remove them from the list of | ||
| 3055 | tags in the current line. Selecting a tag in a group of mutually | ||
| 3056 | exclusive tags will turn off any other tags from that group. | ||
| 3057 | @kindex @key{TAB} | ||
| 3058 | @item @key{TAB} | ||
| 3059 | Enter a tag in the minibuffer, even if the tag is not in the predefined | ||
| 3060 | list. You will be able to complete on all tags present in the buffer. | ||
| 3061 | @kindex @key{SPC} | ||
| 3062 | @item @key{SPC} | ||
| 3063 | Clear all tags for this line. | ||
| 3064 | @kindex @key{RET} | ||
| 3065 | @item @key{RET} | ||
| 3066 | Accept the modified set. | ||
| 3067 | @item C-g | ||
| 3068 | Abort without installing changes. | ||
| 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 | ||
| 2798 | 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. |
| @@ -2819,17 +3115,45 @@ only TODO items and force checking subitems (see variable | |||
| 2819 | @code{org-tags-match-list-sublevels}). | 3115 | @code{org-tags-match-list-sublevels}). |
| 2820 | @end table | 3116 | @end table |
| 2821 | 3117 | ||
| 3118 | @cindex Boolean logic, for tag searches | ||
| 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 |
| @@ -2842,7 +3166,7 @@ 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 |
| @@ -2850,17 +3174,28 @@ 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 |
| @@ -2869,18 +3204,22 @@ edit these files remotely. | |||
| 2869 | * Global TODO list:: All unfinished action items | 3204 | * Global TODO list:: All unfinished action items |
| 2870 | * Matching headline tags:: Structured information with fine-tuned search | 3205 | * Matching headline tags:: Structured information with fine-tuned search |
| 2871 | * Timeline:: Time-sorted view for single file | 3206 | * Timeline:: Time-sorted view for single file |
| 3207 | * Presentation and sorting:: How agenda items are prepared for display | ||
| 2872 | * Agenda commands:: Remote editing of org trees | 3208 | * Agenda commands:: Remote editing of org trees |
| 3209 | * Custom agenda views:: Defining special searches and views | ||
| 2873 | @end menu | 3210 | @end menu |
| 2874 | 3211 | ||
| 2875 | @node Agenda files, Agenda dispatcher, Agenda views, Agenda views | 3212 | @node Agenda files, Agenda dispatcher, Agenda views, Agenda views |
| 2876 | @section Agenda files | 3213 | @section Agenda files |
| 3214 | @cindex agenda files | ||
| 3215 | @cindex files for agenda | ||
| 2877 | 3216 | ||
| 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 |
| @@ -2909,8 +3248,6 @@ to visit any of them. | |||
| 2909 | @section The agenda dispatcher | 3248 | @section The agenda dispatcher |
| 2910 | @cindex agenda dispatcher | 3249 | @cindex agenda dispatcher |
| 2911 | @cindex dispatching agenda commands | 3250 | @cindex dispatching agenda commands |
| 2912 | @cindex custom agenda commands | ||
| 2913 | @cindex agenda commands, custom | ||
| 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 |
| @@ -2925,44 +3262,32 @@ 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 |
| 3286 | @cindex weekly agenda | ||
| 3287 | @cindex daily agenda | ||
| 2963 | 3288 | ||
| 2964 | The purpose of the weekly/daily @emph{agenda} is to act like a page of | 3289 | The purpose of the weekly/daily @emph{agenda} is to act like a page of a |
| 2965 | a paper agenda, showing all the tasks for the current week or day. | 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 |
| @@ -2981,78 +3306,11 @@ 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 | ||
| 2991 | @subsection Categories | ||
| 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 | 3312 | ||
| 3036 | @example | 3313 | @node Calendar/Diary integration, , Weekly/Daily agenda, Weekly/Daily agenda |
| 3037 | 8:00...... ------------------ | ||
| 3038 | 8:30-13:00 Arthur Dent lies in front of the bulldozer | ||
| 3039 | 10:00...... ------------------ | ||
| 3040 | 12:00...... ------------------ | ||
| 3041 | 12:45...... Ford Prefect arrives and takes Arthur to the pub | ||
| 3042 | 14:00...... ------------------ | ||
| 3043 | 16:00...... ------------------ | ||
| 3044 | 18:00...... ------------------ | ||
| 3045 | 19:00...... The Vogon reads his poem | ||
| 3046 | 20:00...... ------------------ | ||
| 3047 | 20:30-22:15 Marwin escorts the Hitchhikers to the bridge | ||
| 3048 | @end example | ||
| 3049 | |||
| 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 |
| @@ -3083,24 +3341,6 @@ 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 |
| @@ -3119,6 +3359,7 @@ agenda files (@pxref{Agenda views}) into a single buffer. The buffer is in | |||
| 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 |
| @@ -3127,14 +3368,17 @@ prefix, the Nth keyword in @code{org-todo-keywords} is selected. | |||
| 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 |
| @@ -3150,7 +3394,6 @@ and omit the sublevels from the global list. Configure the variable | |||
| 3150 | @code{org-agenda-todo-list-sublevels} to get this behavior. | 3394 | @code{org-agenda-todo-list-sublevels} to get this behavior. |
| 3151 | @end itemize | 3395 | @end itemize |
| 3152 | 3396 | ||
| 3153 | |||
| 3154 | @node Matching headline tags, Timeline, Global TODO list, Agenda views | 3397 | @node Matching headline tags, Timeline, Global TODO list, Agenda views |
| 3155 | @section Matching headline tags | 3398 | @section Matching headline tags |
| 3156 | @cindex matching, of tags | 3399 | @cindex matching, of tags |
| @@ -3172,29 +3415,25 @@ define a custom command for it (@pxref{Agenda dispatcher}). | |||
| 3172 | @item C-c a M | 3415 | @item C-c a M |
| 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. |
| @@ -3204,7 +3443,122 @@ When called with a @kbd{C-u} prefix, all unfinished TODO entries | |||
| 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 | ||
| @@ -3220,6 +3574,7 @@ the other commands, the cursor needs to be in the desired line. | |||
| 3220 | 3574 | ||
| 3221 | @table @kbd | 3575 | @table @kbd |
| 3222 | @tsubheading{Motion} | 3576 | @tsubheading{Motion} |
| 3577 | @cindex motion commands in agenda | ||
| 3223 | @kindex n | 3578 | @kindex n |
| 3224 | @item n | 3579 | @item n |
| 3225 | Next line (same as @key{up}). | 3580 | Next line (same as @key{up}). |
| @@ -3265,6 +3620,7 @@ 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. |
| @@ -3313,6 +3669,7 @@ Display the previous dates. | |||
| 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. |
| @@ -3399,6 +3756,7 @@ Stop the previously started clock. | |||
| 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. |
| @@ -3452,6 +3810,207 @@ visit org files will not be removed. | |||
| 3452 | 3810 | ||
| 3453 | @end table | 3811 | @end table |
| 3454 | 3812 | ||
| 3813 | |||
| 3814 | @node Custom agenda views, , Agenda commands, Agenda views | ||
| 3815 | @section Custom agenda views | ||
| 3816 | @cindex custom agenda views | ||
| 3817 | @cindex agenda views, custom | ||
| 3818 | |||
| 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. | ||
| 4013 | |||
| 3455 | @node Embedded LaTeX, Exporting, Agenda views, Top | 4014 | @node Embedded LaTeX, Exporting, Agenda views, Top |
| 3456 | @chapter Embedded LaTeX | 4015 | @chapter Embedded LaTeX |
| 3457 | @cindex @TeX{} interpretation | 4016 | @cindex @TeX{} interpretation |
| @@ -3482,6 +4041,8 @@ to do with it. | |||
| 3482 | 4041 | ||
| 3483 | @node Math symbols, Subscripts and Superscripts, Embedded LaTeX, Embedded LaTeX | 4042 | @node Math symbols, Subscripts and Superscripts, Embedded LaTeX, Embedded LaTeX |
| 3484 | @section Math symbols | 4043 | @section Math symbols |
| 4044 | @cindex math symbols | ||
| 4045 | @cindex TeX macros | ||
| 3485 | 4046 | ||
| 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. |
| @@ -3500,6 +4061,8 @@ into the proper syntax for HTML, for the above examples this is | |||
| 3500 | 4061 | ||
| 3501 | @node Subscripts and Superscripts, LaTeX fragments, Math symbols, Embedded LaTeX | 4062 | @node Subscripts and Superscripts, LaTeX fragments, Math symbols, Embedded LaTeX |
| 3502 | @section Subscripts and Superscripts | 4063 | @section Subscripts and Superscripts |
| 4064 | @cindex subscript | ||
| 4065 | @cindex superscript | ||
| 3503 | 4066 | ||
| 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 |
| @@ -3520,9 +4083,14 @@ are surrounded with @code{<sub>} and @code{<sup>} tags, respectively. | |||
| 3520 | 4083 | ||
| 3521 | @node LaTeX fragments, Processing LaTeX fragments, Subscripts and Superscripts, Embedded LaTeX | 4084 | @node LaTeX fragments, Processing LaTeX fragments, Subscripts and Superscripts, Embedded LaTeX |
| 3522 | @section LaTeX fragments | 4085 | @section LaTeX fragments |
| 4086 | @cindex LaTeX fragments | ||
| 3523 | 4087 | ||
| 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, |
| @@ -3566,6 +4134,7 @@ ones you do not wish to have interpreted by the La@TeX{} converter. | |||
| 3566 | 4134 | ||
| 3567 | @node Processing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX | 4135 | @node Processing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX |
| 3568 | @section Processing LaTeX fragments | 4136 | @section Processing LaTeX fragments |
| 4137 | @cindex LaTeX fragments, preview | ||
| 3569 | 4138 | ||
| 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: |
| @@ -3594,6 +4163,7 @@ setting is active: | |||
| 3594 | 4163 | ||
| 3595 | @node CDLaTeX mode, , Processing LaTeX fragments, Embedded LaTeX | 4164 | @node CDLaTeX mode, , Processing LaTeX fragments, Embedded LaTeX |
| 3596 | @section Using CDLaTeX to enter math | 4165 | @section Using CDLaTeX to enter math |
| 4166 | @cindex CDLaTeX | ||
| 3597 | 4167 | ||
| 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 |
| @@ -4035,7 +4605,7 @@ LaTeX: @r{turn on/off La@TeX{} fragments} | |||
| 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 |
| @@ -4110,6 +4680,9 @@ and where to put published files. | |||
| 4110 | @tab Directory containing publishing source files | 4680 | @tab Directory containing publishing source files |
| 4111 | @item @code{:publishing-directory} | 4681 | @item @code{:publishing-directory} |
| 4112 | @tab Directory (possibly remote) where output files will be published. | 4682 | @tab Directory (possibly remote) where output files will be published. |
| 4683 | @item @code{:preparation-function} | ||
| 4684 | @tab Function called before starting publishing process, for example to | ||
| 4685 | run @code{make} for updating files to be published. | ||
| 4113 | @end multitable | 4686 | @end multitable |
| 4114 | @noindent | 4687 | @noindent |
| 4115 | 4688 | ||
| @@ -4149,7 +4722,8 @@ specify the publishing function. | |||
| 4149 | 4722 | ||
| 4150 | @multitable @columnfractions 0.3 0.7 | 4723 | @multitable @columnfractions 0.3 0.7 |
| 4151 | @item @code{:publishing-function} | 4724 | @item @code{:publishing-function} |
| 4152 | @tab Function executing the publication of a file. | 4725 | @tab Function executing the publication of a file. This may also be a |
| 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 |
| @@ -4354,7 +4928,7 @@ following functions: | |||
| 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 |
| @@ -4408,16 +4982,24 @@ 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]]}. |
| 4987 | @item | ||
| 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. | ||
| 4413 | @item | 4992 | @item |
| 4414 | After @samp{:}, complete tags used elsewhere in the buffer. | 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. |
| 4420 | @item | 4999 | @item |
| 5000 | In the line after @samp{#+STARTUP: }, complete startup keywords, | ||
| 5001 | i.e. valid keys for this line. | ||
| 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 |
| @@ -4487,6 +5069,12 @@ 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} |
| @@ -4495,6 +5083,10 @@ and @code{org-todo-interpretation}. | |||
| 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 |
| @@ -4509,6 +5101,7 @@ These lines provide settings for exporting files. For more details see | |||
| 4509 | @node The very busy C-c C-c key, Clean view, In-buffer settings, Miscellaneous | 5101 | @node The very busy C-c C-c key, Clean view, In-buffer settings, Miscellaneous |
| 4510 | @section The very busy C-c C-c key | 5102 | @section The very busy C-c C-c key |
| 4511 | @kindex C-c C-c | 5103 | @kindex C-c C-c |
| 5104 | @cindex C-c C-c, overview | ||
| 4512 | 5105 | ||
| 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 |
| @@ -4535,9 +5128,9 @@ the entire table. | |||
| 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. |
| @@ -4698,7 +5291,6 @@ with other code out there. | |||
| 4698 | * Conflicts:: Packages that lead to conflicts | 5291 | * Conflicts:: Packages that lead to conflicts |
| 4699 | @end menu | 5292 | @end menu |
| 4700 | 5293 | ||
| 4701 | |||
| 4702 | @node Cooperation, Conflicts, Interaction, Interaction | 5294 | @node Cooperation, Conflicts, Interaction, Interaction |
| 4703 | @subsection Packages that Org-mode cooperates with | 5295 | @subsection Packages that Org-mode cooperates with |
| 4704 | 5296 | ||
| @@ -4839,13 +5431,6 @@ functionality of Org-mode. | |||
| 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 |
| @@ -4856,6 +5441,17 @@ 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}.@* |
| @@ -4917,7 +5513,7 @@ The corresponding block writer function could look like this: | |||
| 4917 | (defun org-dblock-write:block-update-time (params) | 5513 | (defun org-dblock-write:block-update-time (params) |
| 4918 | (let ((fmt (or (plist-get params :format) "%d. %m. %Y"))) | 5514 | (let ((fmt (or (plist-get params :format) "%d. %m. %Y"))) |
| 4919 | (insert "Last block update at: " | 5515 | (insert "Last block update at: " |
| 4920 | (format-time-string fmt (current-time))))) | 5516 | (format-time-string fmt (current-time))))) |
| 4921 | @end lisp | 5517 | @end lisp |
| 4922 | 5518 | ||
| 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, |
| @@ -4925,25 +5521,24 @@ 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 | 5523 | ||
| 4928 | |||
| 4929 | @node History and Acknowledgments, Index, Extensions and Hacking, Top | 5524 | @node History and Acknowledgments, Index, Extensions and Hacking, Top |
| 4930 | @appendix History and Acknowledgments | 5525 | @appendix History and Acknowledgments |
| 4931 | @cindex acknowledgments | 5526 | @cindex acknowledgments |
| 4932 | @cindex history | 5527 | @cindex history |
| 4933 | @cindex thanks | 5528 | @cindex thanks |
| 4934 | 5529 | ||
| 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 |
| @@ -4973,6 +5568,8 @@ calculations and improved XEmacs compatibility, in particular by porting | |||
| 4973 | @item | 5568 | @item |
| 4974 | @i{Sacha Chua} suggested to copy some linking code from Planner. | 5569 | @i{Sacha Chua} suggested to copy some linking code from Planner. |
| 4975 | @item | 5570 | @item |
| 5571 | @i{Eddward DeVilla} proposed and tested checkbox statistics. | ||
| 5572 | @item | ||
| 4976 | @i{Kees Dullemond} inspired the use of narrowed tabled columns. | 5573 | @i{Kees Dullemond} inspired the use of narrowed tabled columns. |
| 4977 | @item | 5574 | @item |
| 4978 | @i{Christian Egli} converted the documentation into TeXInfo format, | 5575 | @i{Christian Egli} converted the documentation into TeXInfo format, |
| @@ -4982,10 +5579,9 @@ patched CSS formatting into the HTML exporter, and inspired the agenda. | |||
| 4982 | @item | 5579 | @item |
| 4983 | @i{Niels Giessen} had the idea to automatically archive DONE trees. | 5580 | @i{Niels Giessen} had the idea to automatically archive DONE trees. |
| 4984 | @item | 5581 | @item |
| 4985 | @i{Bastien Guerry} provoded extensive feedback. | 5582 | @i{Bastien Guerry} provided extensive feedback. |
| 4986 | @item | 5583 | @item |
| 4987 | @i{Kai Grossjohann} pointed out key-binding conflicts caused by | 5584 | @i{Kai Grossjohann} pointed out key-binding conflicts with other packages. |
| 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 |
| @@ -5002,7 +5598,8 @@ file links, and TAGS. | |||
| 5002 | @i{Scott Otterson} sparked the introduction of descriptive text for | 5598 | @i{Scott Otterson} sparked the introduction of descriptive text for |
| 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 |
| @@ -5014,6 +5611,8 @@ control. | |||
| 5014 | @i{Frank Ruell} solved the mystery of the @code{keymapp nil} bug, a | 5611 | @i{Frank Ruell} solved the mystery of the @code{keymapp nil} bug, a |
| 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 |
| @@ -5026,6 +5625,8 @@ Linking to VM/BBDB/GNUS was inspired by @i{Tom Shannon}'s | |||
| 5026 | @i{Daniel Sinder} came up with the idea of internal archiving by locking | 5625 | @i{Daniel Sinder} came up with the idea of internal archiving by locking |
| 5027 | subtrees. | 5626 | subtrees. |
| 5028 | @item | 5627 | @item |
| 5628 | @i{Dale Smith} proposed link abbreviations. | ||
| 5629 | @item | ||
| 5029 | @i{David O'Toole} wrote @file{org-publish.el} and drafted the manual | 5630 | @i{David O'Toole} wrote @file{org-publish.el} and drafted the manual |
| 5030 | chapter about publishing. | 5631 | chapter about publishing. |
| 5031 | @item | 5632 | @item |
| @@ -5051,8 +5652,8 @@ linking to GNUS. | |||
| 5051 | @i{Roland Winkler} requested additional keybindings to make Org-mode | 5652 | @i{Roland Winkler} requested additional keybindings to make Org-mode |
| 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 | ||
| @@ -5062,7 +5663,7 @@ links with mouse-1. | |||
| 5062 | @printindex cp | 5663 | @printindex cp |
| 5063 | 5664 | ||
| 5064 | @node Key Index, , Index, Top | 5665 | @node Key Index, , Index, Top |
| 5065 | @chapter Key Index | 5666 | @unnumbered Key Index |
| 5066 | 5667 | ||
| 5067 | @printindex ky | 5668 | @printindex ky |
| 5068 | 5669 | ||