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