diff options
| author | Carsten Dominik | 2007-07-10 07:24:19 +0000 |
|---|---|---|
| committer | Carsten Dominik | 2007-07-10 07:24:19 +0000 |
| commit | 4d1daf5961ef41f59713aabc3e044051ce78041b (patch) | |
| tree | cd07d44c9cef65a5de5cdc32b0223c045cce1790 | |
| parent | 7d58338ef2bdcaaf3ff94f7472d01a49c65a232d (diff) | |
| download | emacs-4d1daf5961ef41f59713aabc3e044051ce78041b.tar.gz emacs-4d1daf5961ef41f59713aabc3e044051ce78041b.zip | |
* org.texi (Properties and columns): Chapter rewritten.
| -rw-r--r-- | man/org.texi | 380 |
1 files changed, 260 insertions, 120 deletions
diff --git a/man/org.texi b/man/org.texi index c82df74148b..a4a4a6e8f76 100644 --- a/man/org.texi +++ b/man/org.texi | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | @setfilename ../info/org | 3 | @setfilename ../info/org |
| 4 | @settitle Org Mode Manual | 4 | @settitle Org Mode Manual |
| 5 | 5 | ||
| 6 | @set VERSION 5.01 | 6 | @set VERSION 5.02 |
| 7 | @set DATE July 2007 | 7 | @set DATE July 2007 |
| 8 | 8 | ||
| 9 | @dircategory Emacs | 9 | @dircategory Emacs |
| @@ -81,7 +81,7 @@ 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:: | 84 | * Properties and columns:: |
| 85 | * Timestamps:: Assign date and time to items | 85 | * Timestamps:: Assign date and time to items |
| 86 | * Agenda views:: Collecting information into views | 86 | * Agenda views:: Collecting information into views |
| 87 | * Embedded LaTeX:: LaTeX fragments and formulas | 87 | * Embedded LaTeX:: LaTeX fragments and formulas |
| @@ -113,7 +113,8 @@ Document Structure | |||
| 113 | * Archiving:: Move done task trees to a different place | 113 | * Archiving:: Move done task trees to a different place |
| 114 | * Sparse trees:: Matches embedded in context | 114 | * Sparse trees:: Matches embedded in context |
| 115 | * Plain lists:: Additional structure within an entry | 115 | * Plain lists:: Additional structure within an entry |
| 116 | * Drawers:: | 116 | * Drawers:: Tucking stuff away |
| 117 | * orgstruct-mode:: Structure editing outside Org-mode | ||
| 117 | 118 | ||
| 118 | Archiving | 119 | Archiving |
| 119 | 120 | ||
| @@ -181,7 +182,7 @@ Tags | |||
| 181 | * Setting tags:: How to assign tags to a headline | 182 | * Setting tags:: How to assign tags to a headline |
| 182 | * Tag searches:: Searching for combinations of tags | 183 | * Tag searches:: Searching for combinations of tags |
| 183 | 184 | ||
| 184 | Properties | 185 | Properties and Columns |
| 185 | 186 | ||
| 186 | * Property syntax:: How properties are spelled out | 187 | * Property syntax:: How properties are spelled out |
| 187 | * Special properties:: Access to other Org-mode features | 188 | * Special properties:: Access to other Org-mode features |
| @@ -194,6 +195,11 @@ Column View | |||
| 194 | * Defining columns:: The COLUMNS format property | 195 | * Defining columns:: The COLUMNS format property |
| 195 | * Using column view:: How to create and use column view | 196 | * Using column view:: How to create and use column view |
| 196 | 197 | ||
| 198 | Defining Columns | ||
| 199 | |||
| 200 | * Scope of column definitions:: | ||
| 201 | * Column attributes:: | ||
| 202 | |||
| 197 | Timestamps | 203 | Timestamps |
| 198 | 204 | ||
| 199 | * Time stamps:: Assigning a time to a tree entry | 205 | * Time stamps:: Assigning a time to a tree entry |
| @@ -379,7 +385,7 @@ tags etc are created dynamically when you need them. | |||
| 379 | Org-mode keeps simple things simple. When first fired up, it should | 385 | Org-mode keeps simple things simple. When first fired up, it should |
| 380 | feel like a straightforward, easy to use outliner. Complexity is not | 386 | feel like a straightforward, easy to use outliner. Complexity is not |
| 381 | imposed, but a large amount of functionality is available when you need | 387 | imposed, but a large amount of functionality is available when you need |
| 382 | it. Org-mode can be used on different levels and in different ways, for | 388 | it. Org-mode is a toolbox and can be used in different ways, for |
| 383 | example as: | 389 | example as: |
| 384 | 390 | ||
| 385 | @example | 391 | @example |
| @@ -389,6 +395,7 @@ example as: | |||
| 389 | @r{@bullet{} TODO list editor} | 395 | @r{@bullet{} TODO list editor} |
| 390 | @r{@bullet{} full agenda and planner with deadlines and work scheduling} | 396 | @r{@bullet{} full agenda and planner with deadlines and work scheduling} |
| 391 | @r{@bullet{} environment to implement David Allen's GTD system} | 397 | @r{@bullet{} environment to implement David Allen's GTD system} |
| 398 | @r{@bullet{} a basic database application} | ||
| 392 | @r{@bullet{} simple hypertext system, with HTML export} | 399 | @r{@bullet{} simple hypertext system, with HTML export} |
| 393 | @r{@bullet{} publishing tool to create a set of interlinked webpages} | 400 | @r{@bullet{} publishing tool to create a set of interlinked webpages} |
| 394 | @end example | 401 | @end example |
| @@ -396,7 +403,9 @@ example as: | |||
| 396 | Org-mode's automatic, context sensitive table editor with spreadsheet | 403 | Org-mode's automatic, context sensitive table editor with spreadsheet |
| 397 | capabilities can be integrated into any major mode by activating the | 404 | capabilities can be integrated into any major mode by activating the |
| 398 | minor Orgtbl-mode. Using a translation step, it can be used to maintain | 405 | minor Orgtbl-mode. Using a translation step, it can be used to maintain |
| 399 | tables in arbitrary file types, for example in LaTeX. | 406 | tables in arbitrary file types, for example in LaTeX. The structure |
| 407 | editing and list creation capabilities can be used outside Org-mode with | ||
| 408 | the minor Orgstruct-mode. | ||
| 400 | 409 | ||
| 401 | @cindex FAQ | 410 | @cindex FAQ |
| 402 | There is a website for Org-mode which provides links to the newest | 411 | There is a website for Org-mode which provides links to the newest |
| @@ -468,9 +477,10 @@ make install-info | |||
| 468 | 477 | ||
| 469 | @iftex | 478 | @iftex |
| 470 | @b{Important:} @i{If you use copy-and-paste to copy lisp code from the | 479 | @b{Important:} @i{If you use copy-and-paste to copy lisp code from the |
| 471 | PDF documentation to your .emacs file, the single quote character comes | 480 | PDF documentation as viewed by Acrobat reader to your .emacs file, the |
| 472 | out incorrectly and the code will not work. You need to fix the single | 481 | single quote character comes out incorrectly and the code will not work. |
| 473 | quotes by hand, or copy from Info documentation.} | 482 | You need to fix the single quotes by hand, or copy from Info |
| 483 | documentation.} | ||
| 474 | @end iftex | 484 | @end iftex |
| 475 | 485 | ||
| 476 | Add the following lines to your @file{.emacs} file. The last two lines | 486 | Add the following lines to your @file{.emacs} file. The last two lines |
| @@ -580,7 +590,8 @@ edit the structure of the document. | |||
| 580 | * Archiving:: Move done task trees to a different place | 590 | * Archiving:: Move done task trees to a different place |
| 581 | * Sparse trees:: Matches embedded in context | 591 | * Sparse trees:: Matches embedded in context |
| 582 | * Plain lists:: Additional structure within an entry | 592 | * Plain lists:: Additional structure within an entry |
| 583 | * Drawers:: | 593 | * Drawers:: Tucking stuff away |
| 594 | * orgstruct-mode:: Structure editing outside Org-mode | ||
| 584 | @end menu | 595 | @end menu |
| 585 | 596 | ||
| 586 | @node Outlines, Headlines, Document structure, Document structure | 597 | @node Outlines, Headlines, Document structure, Document structure |
| @@ -1121,14 +1132,15 @@ bullets (@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}). | |||
| 1121 | With prefix arg, select the nth bullet from this list. | 1132 | With prefix arg, select the nth bullet from this list. |
| 1122 | @end table | 1133 | @end table |
| 1123 | 1134 | ||
| 1124 | @node Drawers, , Plain lists, Document structure | 1135 | @node Drawers, orgstruct-mode, Plain lists, Document structure |
| 1125 | @section Drawers | 1136 | @section Drawers |
| 1126 | @cindex drawers | 1137 | @cindex drawers |
| 1138 | @cindex visibility cycling, drawers | ||
| 1127 | 1139 | ||
| 1128 | Sometimes you want to keep information associated with an entry, but you | 1140 | Sometimes you want to keep information associated with an entry, but you |
| 1129 | normally don't want to see it, except when explicitly asking for it. | 1141 | normally don't want to see it. For this, Org-mode has @emph{drawers}. |
| 1130 | For this, Org-mode has @emph{drawers}. Drawers need to be configured | 1142 | Drawers need to be configured with the variable @code{org-drawers}, and |
| 1131 | with the variable @code{org-drawers}, and look like this: | 1143 | look like this: |
| 1132 | 1144 | ||
| 1133 | @example | 1145 | @example |
| 1134 | ** This is a headline | 1146 | ** This is a headline |
| @@ -1143,7 +1155,30 @@ Visibility cycling (@pxref{Visibility cycling}) on the headline will | |||
| 1143 | hide and show the entry, but keep the drawer collapsed to a single line. | 1155 | hide and show the entry, but keep the drawer collapsed to a single line. |
| 1144 | In order to look inside the drawer, you need to move the cursor to the | 1156 | In order to look inside the drawer, you need to move the cursor to the |
| 1145 | drawer line and press @key{TAB} there. Org-mode uses a drawer for | 1157 | drawer line and press @key{TAB} there. Org-mode uses a drawer for |
| 1146 | storing properties (@pxref{Properties}). | 1158 | storing properties (@pxref{Properties and columns}). |
| 1159 | |||
| 1160 | @node orgstruct-mode, , Drawers, Document structure | ||
| 1161 | @section The Orgstruct minor mode | ||
| 1162 | @cindex orgstruct-mode | ||
| 1163 | @cindex minor mode for structure editing | ||
| 1164 | |||
| 1165 | If you like the intuitive way the Org-mode structure editing and list | ||
| 1166 | formatting works, you might want to use these commands in other modes | ||
| 1167 | like text-mode or mail-mode as well. The minor mode Orgstruct-mode | ||
| 1168 | makes this possible. You can always toggle the mode with @kbd{M-x | ||
| 1169 | orgstruct-mode}. To turn it on by default, for example in mail mode, | ||
| 1170 | use | ||
| 1171 | |||
| 1172 | @lisp | ||
| 1173 | (add-hook 'mail-mode-hook 'turn-on-orgstruct) | ||
| 1174 | @end lisp | ||
| 1175 | |||
| 1176 | When this mode is active and the cursor is on a line that looks to | ||
| 1177 | Org-mode like a headline of the first line of a list item, most | ||
| 1178 | structure editing commands will work, even if the same keys normally | ||
| 1179 | have different functionality in the major mode you are using. If the | ||
| 1180 | cursor is not in one of those special lines, Orgstruct-mode lurks | ||
| 1181 | silently in the shadow. | ||
| 1147 | 1182 | ||
| 1148 | @node Tables, Hyperlinks, Document structure, Top | 1183 | @node Tables, Hyperlinks, Document structure, Top |
| 1149 | @chapter Tables | 1184 | @chapter Tables |
| @@ -1611,15 +1646,15 @@ line like | |||
| 1611 | @end example | 1646 | @end example |
| 1612 | 1647 | ||
| 1613 | @noindent | 1648 | @noindent |
| 1614 | Also properties (@pxref{Properties}) can be used as constants in table | 1649 | Also properties (@pxref{Properties and columns}) can be used as |
| 1615 | formulas: For a property @samp{:XYZ:} use the name @samp{$PROP_XYZ}, and | 1650 | constants in table formulas: For a property @samp{:XYZ:} use the name |
| 1616 | the property will be searched in the current outline entry and in the | 1651 | @samp{$PROP_XYZ}, and the property will be searched in the current |
| 1617 | hierarchy above it. If you have the @file{constants.el} package, it | 1652 | outline entry and in the hierarchy above it. If you have the |
| 1618 | will also be used to resolve constants, including natural constants like | 1653 | @file{constants.el} package, it will also be used to resolve constants, |
| 1619 | @samp{$h} for Planck's constant, and units like @samp{$km} for | 1654 | including natural constants like @samp{$h} for Planck's constant, and |
| 1620 | kilometers@footnote{@file{Constant.el} can supply the values of | 1655 | units like @samp{$km} for kilometers@footnote{@file{Constant.el} can |
| 1621 | constants in two different unit systems, @code{SI} and @code{cgs}. | 1656 | supply the values of constants in two different unit systems, @code{SI} |
| 1622 | Which one is used depends on the value of the variable | 1657 | and @code{cgs}. Which one is used depends on the value of the variable |
| 1623 | @code{constants-unit-system}. You can use the @code{#+STARTUP} options | 1658 | @code{constants-unit-system}. You can use the @code{#+STARTUP} options |
| 1624 | @code{constSI} and @code{constcgs} to set this value for the current | 1659 | @code{constSI} and @code{constcgs} to set this value for the current |
| 1625 | buffer.}. Column names and parameters can be specified in special table | 1660 | buffer.}. Column names and parameters can be specified in special table |
| @@ -3030,7 +3065,7 @@ back into synch. Or simply toggle any checkbox twice with @kbd{C-c C-c}. | |||
| 3030 | @end table | 3065 | @end table |
| 3031 | 3066 | ||
| 3032 | 3067 | ||
| 3033 | @node Tags, Properties, TODO items, Top | 3068 | @node Tags, Properties and columns, TODO items, Top |
| 3034 | @chapter Tags | 3069 | @chapter Tags |
| 3035 | @cindex tags | 3070 | @cindex tags |
| 3036 | @cindex headline tagging | 3071 | @cindex headline tagging |
| @@ -3286,8 +3321,8 @@ instead of any TAG an expression like @samp{LEVEL=3}. For example, a | |||
| 3286 | search @samp{+LEVEL=3+BOSS/-DONE} lists all level three headlines that | 3321 | search @samp{+LEVEL=3+BOSS/-DONE} lists all level three headlines that |
| 3287 | have the tag BOSS and are @emph{not} marked with the todo keyword DONE. | 3322 | have the tag BOSS and are @emph{not} marked with the todo keyword DONE. |
| 3288 | 3323 | ||
| 3289 | @node Properties, Timestamps, Tags, Top | 3324 | @node Properties and columns, Timestamps, Tags, Top |
| 3290 | @chapter Properties | 3325 | @chapter Properties and Columns |
| 3291 | @cindex properties | 3326 | @cindex properties |
| 3292 | 3327 | ||
| 3293 | Properties are a set of key-value pairs associated with an entry. There | 3328 | Properties are a set of key-value pairs associated with an entry. There |
| @@ -3298,7 +3333,8 @@ tags like @code{:release_1:}, @code{:release_2:}, it can be more | |||
| 3298 | efficient to use a property @code{RELEASE} with a value @code{1.0} or | 3333 | efficient to use a property @code{RELEASE} with a value @code{1.0} or |
| 3299 | @code{2.0}. Second, you can use properties to implement (very basic) | 3334 | @code{2.0}. Second, you can use properties to implement (very basic) |
| 3300 | database capabilities in an Org-mode buffer, for example to create a | 3335 | database capabilities in an Org-mode buffer, for example to create a |
| 3301 | list of Music CD's you own. | 3336 | list of Music CD's you own. You can edit and view properties |
| 3337 | conveniently in column view (@pxref{Column view}). | ||
| 3302 | 3338 | ||
| 3303 | @menu | 3339 | @menu |
| 3304 | * Property syntax:: How properties are spelled out | 3340 | * Property syntax:: How properties are spelled out |
| @@ -3308,8 +3344,10 @@ list of Music CD's you own. | |||
| 3308 | * Property API:: Properties for Lisp programmers | 3344 | * Property API:: Properties for Lisp programmers |
| 3309 | @end menu | 3345 | @end menu |
| 3310 | 3346 | ||
| 3311 | @node Property syntax, Special properties, Properties, Properties | 3347 | @node Property syntax, Special properties, Properties and columns, Properties and columns |
| 3312 | @section Property Syntax | 3348 | @section Property Syntax |
| 3349 | @cindex property syntax | ||
| 3350 | @cindex drawer, for properties | ||
| 3313 | 3351 | ||
| 3314 | Properties are key-value pairs. They need to be inserted into a special | 3352 | Properties are key-value pairs. They need to be inserted into a special |
| 3315 | drawer (@pxref{Drawers}) with the name @code{PROPERTIES}. Each property | 3353 | drawer (@pxref{Drawers}) with the name @code{PROPERTIES}. Each property |
| @@ -3324,26 +3362,65 @@ first, and the value after it. Here is an example: | |||
| 3324 | :Title: Goldberg Variations | 3362 | :Title: Goldberg Variations |
| 3325 | :Composer: J.S. Bach | 3363 | :Composer: J.S. Bach |
| 3326 | :Artist: Glen Gould | 3364 | :Artist: Glen Gould |
| 3327 | :END: | 3365 | :Publisher: Deutsche Grammphon |
| 3366 | :NDisks: 1 | ||
| 3367 | :END: | ||
| 3368 | @end example | ||
| 3369 | |||
| 3370 | You may define the allowed values for a particular property @samp{XYZ} | ||
| 3371 | by setting a property @samp{XYZ_ALL}. This special property is | ||
| 3372 | @emph{inherited}, so if you set it in a level 1 entry, it will apply to | ||
| 3373 | the entire tree. When allowed values are defined, setting the | ||
| 3374 | corresponding property becomes easier and is less prone to typing | ||
| 3375 | errors. For the example with the CD collection, we can predefine | ||
| 3376 | publishers and the number of disks in a box like this: | ||
| 3377 | |||
| 3378 | @example | ||
| 3379 | * CD collection | ||
| 3380 | :PROPERTIES: | ||
| 3381 | :NDisks_ALL: 1 2 3 4 | ||
| 3382 | :Publisher_ALL: "Deutsche Grammophon" Phillips EMI | ||
| 3383 | :END: | ||
| 3328 | @end example | 3384 | @end example |
| 3329 | 3385 | ||
| 3330 | @noindent | 3386 | @noindent |
| 3331 | The following commands help to insert properties: | 3387 | The following commands help to work with properties: |
| 3332 | 3388 | ||
| 3333 | @table @kbd | 3389 | @table @kbd |
| 3334 | @kindex M-@key{TAB} | 3390 | @kindex M-@key{TAB} |
| 3335 | @item M-@key{TAB} | 3391 | @item M-@key{TAB} |
| 3336 | After an initial colon in a line, complete property keys. All keys used | 3392 | After an initial colon in a line, complete property keys. All keys used |
| 3337 | in the current file will be offered as possible completions. | 3393 | in the current file will be offered as possible completions. |
| 3394 | @item M-x org-insert-property-drawer | ||
| 3395 | Insert a property drawer into the current entry. The drawer will be | ||
| 3396 | inserted early in the entry, but after the lines with planning | ||
| 3397 | information like deadlines. | ||
| 3398 | @kindex C-c C-c | ||
| 3399 | @item C-c C-c | ||
| 3400 | With the cursor in a property drawer, this executes property commands. | ||
| 3401 | @item C-c C-c s | ||
| 3402 | Set a property in the current entry. Both the property and the value | ||
| 3403 | can be inserted using completion. | ||
| 3404 | @kindex S-@key{right} | ||
| 3405 | @kindex S-@key{left} | ||
| 3406 | @item S-@key{left}/@key{right} | ||
| 3407 | Switch property at point to the next/previous allowed value. | ||
| 3408 | @item C-c C-c d | ||
| 3409 | Remove a property from the current entry. | ||
| 3410 | @item C-c C-c D | ||
| 3411 | Globally remove a property, from all entries in the current file. | ||
| 3338 | @end table | 3412 | @end table |
| 3339 | 3413 | ||
| 3340 | 3414 | @node Special properties, Property searches, Property syntax, Properties and columns | |
| 3341 | |||
| 3342 | @node Special properties, Property searches, Property syntax, Properties | ||
| 3343 | @section Special Properties | 3415 | @section Special Properties |
| 3416 | @cindex properties, special | ||
| 3344 | 3417 | ||
| 3345 | Several properties are special, because they can be used to access other | 3418 | Special properties provide alternative access method to Org-mode |
| 3346 | features of Org-mode like the TODO status: | 3419 | features discussed in the previous chapters, like the TODO state or the |
| 3420 | priority of an entry. This interface exists so that you can include | ||
| 3421 | these states into columns view (@pxref{Column view}). The following | ||
| 3422 | property names are special and should not be used as keys in the | ||
| 3423 | properties drawer: | ||
| 3347 | 3424 | ||
| 3348 | @example | 3425 | @example |
| 3349 | TODO @r{The TODO keyword of the entry.} | 3426 | TODO @r{The TODO keyword of the entry.} |
| @@ -3354,8 +3431,9 @@ DEADLINE @r{The deadline time string, without the angular brackets.} | |||
| 3354 | SCHEDULED @r{The scheduling time stamp, without the angular brackets.} | 3431 | SCHEDULED @r{The scheduling time stamp, without the angular brackets.} |
| 3355 | @end example | 3432 | @end example |
| 3356 | 3433 | ||
| 3357 | @node Property searches, Column view, Special properties, Properties | 3434 | @node Property searches, Column view, Special properties, Properties and columns |
| 3358 | @section Property searches | 3435 | @section Property searches |
| 3436 | @cindex properties, searching | ||
| 3359 | 3437 | ||
| 3360 | To create sparse trees and special lists with selection based on | 3438 | To create sparse trees and special lists with selection based on |
| 3361 | properties, the same commands are used as for tag searches (@pxref{Tag | 3439 | properties, the same commands are used as for tag searches (@pxref{Tag |
| @@ -3371,23 +3449,23 @@ also have a priority value @samp{A}, a @samp{:coffee:} property with the | |||
| 3371 | value @samp{unlimited}, and a @samp{:with:} property that is matched by | 3449 | value @samp{unlimited}, and a @samp{:with:} property that is matched by |
| 3372 | the regular expression @samp{Sarah\|Denny}. | 3450 | the regular expression @samp{Sarah\|Denny}. |
| 3373 | 3451 | ||
| 3374 | @node Column view, Property API, Property searches, Properties | 3452 | @node Column view, Property API, Property searches, Properties and columns |
| 3375 | @section Column View | 3453 | @section Column View |
| 3376 | 3454 | ||
| 3377 | If different items in a document have similar properties, it can be nice | 3455 | A great way to view and edit properties in aan outline tree is |
| 3378 | to view and edit those properties in a table-like format, in | 3456 | @emph{column view}. In column view, each outline item is turned into a |
| 3379 | @emph{column view}. Org-mode implements columns by overlaying a tabular | 3457 | table row. Columns in this table provide access to properties of the |
| 3380 | structure over the headline of an item. So the column view does not use | 3458 | entries. Org-mode implements columns by overlaying a tabular structure |
| 3381 | a special buffer, it happens in exactly the same buffer where the | 3459 | over the headline of each item. While the headlines have been turned |
| 3382 | outline is, and only temporarily changes the look of this buffer - not | 3460 | into a table row, you can still change the visibility of the outline |
| 3383 | the content. This has the advantage that you can still change the | 3461 | tree. For example, you get a compact table by switching to CONTENTS |
| 3384 | visibility of the outline tree. For example, you get a compact table by | 3462 | view (@kbd{S-@key{TAB} S-@key{TAB}}, or simple @kbd{c} while column view |
| 3385 | switching to CONTENTS view, but you can still open, read, and edit the | 3463 | is active), but you can still open, read, and |
| 3386 | entry below each headline. Or, you can switch to column view after | 3464 | edit the entry below each headline. Or, you can switch to column view |
| 3387 | executing a sparse tree command and in this way get a table only for the | 3465 | after executing a sparse tree command and in this way get a table only |
| 3388 | selected items. Column view also works in agenda buffers (@pxref{Agenda | 3466 | for the selected items. Column view also works in agenda buffers |
| 3389 | views}) where queries have collected selected items, possibly from a | 3467 | (@pxref{Agenda views}) where queries have collected selected items, |
| 3390 | number of files. | 3468 | possibly from a number of files. |
| 3391 | 3469 | ||
| 3392 | @menu | 3470 | @menu |
| 3393 | * Defining columns:: The COLUMNS format property | 3471 | * Defining columns:: The COLUMNS format property |
| @@ -3396,81 +3474,122 @@ number of files. | |||
| 3396 | 3474 | ||
| 3397 | @node Defining columns, Using column view, Column view, Column view | 3475 | @node Defining columns, Using column view, Column view, Column view |
| 3398 | @subsection Defining Columns | 3476 | @subsection Defining Columns |
| 3477 | @cindex column view, for properties | ||
| 3478 | @cindex properties, column view | ||
| 3399 | 3479 | ||
| 3400 | Setting up a column view first requires defining the columns. A column | 3480 | Setting up a column view first requires defining the columns. This is |
| 3401 | definition is a property itself and looks like this: | 3481 | done by defining a column format line. |
| 3402 | 3482 | ||
| 3403 | @example | 3483 | @menu |
| 3404 | :COLUMNS: %25ITEM %TAGS %PRIORITY %TODO | 3484 | * Scope of column definitions:: Where defined, where valid? |
| 3405 | @end example | 3485 | * Column attributes:: Appearance and content of a column |
| 3486 | @end menu | ||
| 3406 | 3487 | ||
| 3407 | This definition means that column 1 should be the first 25 characters of | 3488 | @node Scope of column definitions, Column attributes, Defining columns, Defining columns |
| 3408 | the item itself, i.e. of the headline. You probably always should start | 3489 | @subsubsection Scope of column definitions |
| 3409 | the column definition with the ITEM specifier - just select a useful | ||
| 3410 | width for it. The other specifiers create columns for the local tags, | ||
| 3411 | for the priority and for the TODO state. When no width is given after | ||
| 3412 | the @samp{%} character, the column will be exactly as wide as it need to | ||
| 3413 | be in order to fully display all values. | ||
| 3414 | 3490 | ||
| 3415 | If a @code{COLUMNS} property is present in an entry, it defines | 3491 | To define a column format for an entire file, use a line like |
| 3416 | columns for the entry itself, and for the entire subtree below it. | ||
| 3417 | Since the column definition is part of the hierarchical structure of the | ||
| 3418 | document, you can define columns on level 1 that are general enough for | ||
| 3419 | all sublevels, and more specific columns further down, when you edit a deeper | ||
| 3420 | part of the tree. Here is an example: | ||
| 3421 | 3492 | ||
| 3422 | @example | 3493 | @example |
| 3423 | * People | 3494 | #+COLUMNS: %25ITEM %TAGS %PRIORITY %TODO |
| 3424 | :PROPERTIES: | 3495 | @end example |
| 3425 | :COLUMNS: %25ITEM %Name | 3496 | |
| 3426 | :END: | 3497 | To specify a format that only applies to a specific tree, add a COLUMNS |
| 3427 | ** Family | 3498 | property to the top node of that tree, for example |
| 3428 | :PROPERTIES: | 3499 | @example |
| 3429 | :COLUMNS: %25ITEM %Name %3Age | 3500 | ** Top node for columns view |
| 3430 | :END: | ||
| 3431 | *** Sam | ||
| 3432 | Info about Sam, including a property list with Name and Age. | ||
| 3433 | *** Sarah | ||
| 3434 | Info about Sarah, including a property list with Name and Age. | ||
| 3435 | ** Office | ||
| 3436 | :PROPERTIES: | 3501 | :PROPERTIES: |
| 3437 | :COLUMNS: %25ITEM %Name %Function %Salary | 3502 | :COLUMNS: %25ITEM %TAGS %PRIORITY %TODO |
| 3438 | :END: | 3503 | :END: |
| 3439 | *** Boss | ||
| 3440 | Info about the Boss, including a property list with Name, | ||
| 3441 | Function and Salary (if only we knew....). | ||
| 3442 | @end example | 3504 | @end example |
| 3443 | 3505 | ||
| 3444 | Now we have defined three different sets of columns. If you switch to | 3506 | If a @code{COLUMNS} property is present in an entry, it defines columns |
| 3445 | column view in the @emph{Family} section, you will get a different table | 3507 | for the entry itself, and for the entire subtree below it. Since the |
| 3446 | than if you do it in the @emph{Office} section. However, if you switch | 3508 | column definition is part of the hierarchical structure of the document, |
| 3447 | to column view with the cursor on the @emph{People} section, the table | 3509 | you can define columns on level 1 that are general enough for all |
| 3448 | will cover all entries, but contain only the @emph{Name} column. | 3510 | sublevels, and more specific columns further down, when you edit a |
| 3511 | deeper part of the tree. | ||
| 3512 | |||
| 3513 | @node Column attributes, , Scope of column definitions, Defining columns | ||
| 3514 | @subsubsection Column attributes | ||
| 3515 | A column definition sets the attributes of a column. The general | ||
| 3516 | definition looks like this: | ||
| 3517 | |||
| 3518 | @example | ||
| 3519 | %[width]property[(title)][@{summary-type@}] | ||
| 3520 | @end example | ||
| 3449 | 3521 | ||
| 3450 | If no COLUMNS property applies to a given location, Org-mode uses a | 3522 | @noindent |
| 3451 | default format specified in the variable | 3523 | Except for the percent sign and the property name, all items are |
| 3452 | @code{org-default-columns-format}. This format in particular also | 3524 | optional. The individual parts have the following meaning: |
| 3453 | applies when column view is invoked with the cursor before the first | ||
| 3454 | headline. You can set the default format on a per-file basis with a | ||
| 3455 | line (don't forget to press @kbd{C-c C-c} to activate any changes to | ||
| 3456 | this line). | ||
| 3457 | 3525 | ||
| 3458 | @example | 3526 | @example |
| 3459 | #+COLUMNS: %25ITEM ....." | 3527 | width @r{An integer specifying the width of the column in characters.} |
| 3528 | @r{If omitted, the width will be determined automatically.} | ||
| 3529 | property @r{The property that should be edited in this column.} | ||
| 3530 | (title) @r{The header text for the column. If omitted, the} | ||
| 3531 | @r{property name is used.} | ||
| 3532 | @{summary-type@} @r{The summary type. If specified, the column values for} | ||
| 3533 | @r{parent nodes are computed from the children.} | ||
| 3534 | @r{Supported summary types are:} | ||
| 3535 | @{+@} @r{Sum numbers in this column.} | ||
| 3536 | @{:@} @r{Sum times, HH:MM:SS, plain numbers are hours.} | ||
| 3537 | @{X@} @r{Checkbox status, [X] if all children are [X].} | ||
| 3460 | @end example | 3538 | @end example |
| 3461 | 3539 | ||
| 3540 | @noindent | ||
| 3541 | Here is an example for a complete columns definition, along with allowed | ||
| 3542 | values. | ||
| 3543 | |||
| 3544 | @example | ||
| 3545 | :COLUMNS: %20ITEM %9Approved(Approved?)@{X@} %Owner %11Status %10Time_Spent@{:@} | ||
| 3546 | :Owner_ALL: Tammy Mark Karl Lisa Don | ||
| 3547 | :Status_ALL: "In progress" "Not started yet" "Finished" "" | ||
| 3548 | :Approved_ALL: "[ ]" "[X]" | ||
| 3549 | @end example | ||
| 3550 | |||
| 3551 | The first column, @samp{%25ITEM}, means the first 25 characters of the | ||
| 3552 | item itself, i.e. of the headline. You probably always should start the | ||
| 3553 | column definition with the ITEM specifier. The other specifiers create | ||
| 3554 | columns @samp{Owner} with a list of names as allowed values, for | ||
| 3555 | @samp{Status} with four different possible values, and for a checkbox | ||
| 3556 | field @samp{Approved}. When no width is given after the @samp{%} | ||
| 3557 | character, the column will be exactly as wide as it needs to be in order | ||
| 3558 | to fully display all values. The @samp{Approved} column does have a | ||
| 3559 | modified title (@samp{Approved?}, with a question mark). Summaries will | ||
| 3560 | be created for the @samp{Time_Spent} column by adding time duration | ||
| 3561 | expressions like HH:MM, and for the @samp{Approved} column, by providing | ||
| 3562 | an @samp{[X]} status if all children have been checked. | ||
| 3563 | |||
| 3462 | @node Using column view, , Defining columns, Column view | 3564 | @node Using column view, , Defining columns, Column view |
| 3463 | @subsection Using Column View | 3565 | @subsection Using Column View |
| 3464 | 3566 | ||
| 3465 | @table @kbd | 3567 | @table @kbd |
| 3568 | @tsubheading{Turning column view on and off} | ||
| 3466 | @kindex C-c C-x C-c | 3569 | @kindex C-c C-x C-c |
| 3467 | @item C-c C-x C-c | 3570 | @item C-c C-x C-c |
| 3468 | Create the column view for the local environment. This command searches | 3571 | Create the column view for the local environment. This command searches |
| 3469 | the hierarchy, up from point, for a @code{COLUMNS} property that defines | 3572 | the hierarchy, up from point, for a @code{COLUMNS} property that defines |
| 3470 | a format. When one is found, the column view table is established for | 3573 | a format. When one is found, the column view table is established for |
| 3471 | the entire subtree. | 3574 | the entire tree, starting from the entry that contains the @code{COLUMNS} |
| 3575 | property. If none is found, the format is taken from the @code{#+COLUMNS} | ||
| 3576 | line or from the variable @code{org-columns-default-format}, and column | ||
| 3577 | view is established for the current entry and its subtree. | ||
| 3578 | @kindex q | ||
| 3579 | @item q | ||
| 3580 | Exit column view. | ||
| 3581 | @tsubheading{Editing values} | ||
| 3472 | @item @key{left} @key{right} @key{up} @key{down} | 3582 | @item @key{left} @key{right} @key{up} @key{down} |
| 3473 | Move through the column view from field to field. | 3583 | Move through the column view from field to field. |
| 3584 | @kindex S-@key{left} | ||
| 3585 | @kindex S-@key{right} | ||
| 3586 | @item S-@key{left}/@key{right} | ||
| 3587 | Switch to the next/previous allowed value of the field. For this, you | ||
| 3588 | have to have specified allowed values for a property. | ||
| 3589 | @kindex n | ||
| 3590 | @kindex p | ||
| 3591 | @itemx n / p | ||
| 3592 | Same as @kbd{S-@key{left}/@key{right}} | ||
| 3474 | @kindex e | 3593 | @kindex e |
| 3475 | @item e | 3594 | @item e |
| 3476 | Edit the property at point. For the special properties, this will | 3595 | Edit the property at point. For the special properties, this will |
| @@ -3481,20 +3600,36 @@ or fast selection interface will pop up. | |||
| 3481 | @item v | 3600 | @item v |
| 3482 | View the full value of this property. This is useful if the width of | 3601 | View the full value of this property. This is useful if the width of |
| 3483 | the column is smaller than that of the value. | 3602 | the column is smaller than that of the value. |
| 3484 | @kindex q | 3603 | @kindex a |
| 3485 | @item q | 3604 | @item a |
| 3486 | Exit column view. | 3605 | Edit the list of allowed values for this property. If the list is found |
| 3606 | in the hierarchy, the modified values is stored there. If no list is | ||
| 3607 | found, the new value is stored in the first entry that is part of the | ||
| 3608 | current column view. | ||
| 3609 | @tsubheading{Modifying the table structure} | ||
| 3610 | @kindex < | ||
| 3611 | @kindex > | ||
| 3612 | @item < / > | ||
| 3613 | Make the column narrower/wider by one character. | ||
| 3614 | @kindex S-M-@key{right} | ||
| 3615 | @item S-M-@key{right} | ||
| 3616 | Insert a new column, to the right of the current column. | ||
| 3617 | @kindex S-M-@key{left} | ||
| 3618 | @item S-M-@key{left} | ||
| 3619 | Delete the current column. | ||
| 3487 | @end table | 3620 | @end table |
| 3488 | 3621 | ||
| 3489 | @node Property API, , Column view, Properties | 3622 | @node Property API, , Column view, Properties and columns |
| 3490 | @section The Property API | 3623 | @section The Property API |
| 3624 | @cindex properties, API | ||
| 3625 | @cindex API, for properties | ||
| 3491 | 3626 | ||
| 3492 | There is a full API for accessing and changing properties. This API can | 3627 | There is a full API for accessing and changing properties. This API can |
| 3493 | be used by Emacs Lisp programs to work with properties and to implement | 3628 | be used by Emacs Lisp programs to work with properties and to implement |
| 3494 | features based on them. For more information see @ref{Using the | 3629 | features based on them. For more information see @ref{Using the |
| 3495 | property API}. | 3630 | property API}. |
| 3496 | 3631 | ||
| 3497 | @node Timestamps, Agenda views, Properties, Top | 3632 | @node Timestamps, Agenda views, Properties and columns, Top |
| 3498 | @chapter Timestamps | 3633 | @chapter Timestamps |
| 3499 | @cindex time stamps | 3634 | @cindex time stamps |
| 3500 | @cindex date stamps | 3635 | @cindex date stamps |
| @@ -4604,7 +4739,9 @@ Delete other windows. | |||
| 4604 | @kindex m | 4739 | @kindex m |
| 4605 | @kindex y | 4740 | @kindex y |
| 4606 | @item d w m y | 4741 | @item d w m y |
| 4607 | Switch to day/week/month/year view. | 4742 | Switch to day/week/month/year view. When switching to day or week view, |
| 4743 | this setting becomes the default for subseqent agenda commands. Since | ||
| 4744 | month and year views are slow to create, the do not become the default. | ||
| 4608 | @c | 4745 | @c |
| 4609 | @kindex D | 4746 | @kindex D |
| 4610 | @item D | 4747 | @item D |
| @@ -5947,16 +6084,15 @@ skip: @r{turn on/off skipping the text before the first heading} | |||
| 5947 | @chapter Publishing | 6084 | @chapter Publishing |
| 5948 | @cindex publishing | 6085 | @cindex publishing |
| 5949 | 6086 | ||
| 5950 | Org-mode includes@footnote{@file{org-publish.el} is not yet part of | 6087 | Org-mode includes@footnote{@file{org-publish.el} is not distributed with |
| 5951 | Emacs, so if you are using @file{org.el} as it comes with Emacs, you | 6088 | Emacs 21, if you are still using Emacs 21, you need you need to download |
| 5952 | need to download this file separately. Also make sure org.el is at | 6089 | this file separately.} a publishing management system that allows you to |
| 5953 | least version 4.27.} a publishing management system | 6090 | configure automatic HTML conversion of @emph{projects} composed of |
| 5954 | that allows you to configure automatic HTML conversion of | 6091 | interlinked org files. This system is called @emph{org-publish}. You |
| 5955 | @emph{projects} composed of interlinked org files. This system is | 6092 | can also configure org-publish to automatically upload your exported |
| 5956 | called @emph{org-publish}. You can also configure org-publish to | 6093 | HTML pages and related attachments, such as images and source code |
| 5957 | automatically upload your exported HTML pages and related attachments, | 6094 | files, to a web server. Org-publish turns org-mode into a web-site |
| 5958 | such as images and source code files, to a web server. Org-publish turns | 6095 | authoring tool. |
| 5959 | org-mode into a web-site authoring tool. | ||
| 5960 | 6096 | ||
| 5961 | Org-publish has been contributed to Org-mode by David O'Toole. | 6097 | Org-publish has been contributed to Org-mode by David O'Toole. |
| 5962 | 6098 | ||
| @@ -6118,7 +6254,7 @@ respective variable for details. | |||
| 6118 | 6254 | ||
| 6119 | When a property is given a value in org-publish-project-alist, its | 6255 | When a property is given a value in org-publish-project-alist, its |
| 6120 | setting overrides the value of the corresponding user variable (if any) | 6256 | setting overrides the value of the corresponding user variable (if any) |
| 6121 | during publishing. options set within a file (@pxref{Export | 6257 | during publishing. Options set within a file (@pxref{Export |
| 6122 | options}), however, override everything. | 6258 | options}), however, override everything. |
| 6123 | 6259 | ||
| 6124 | @node Publishing links, Project page index, Publishing options, Configuration | 6260 | @node Publishing links, Project page index, Publishing options, Configuration |
| @@ -6445,8 +6581,8 @@ Logging TODO state changes and clock intervals (variable | |||
| 6445 | logging @r{record a timestamp when an item is marked DONE} | 6581 | logging @r{record a timestamp when an item is marked DONE} |
| 6446 | nologging @r{don't record when items are marked DONE} | 6582 | nologging @r{don't record when items are marked DONE} |
| 6447 | lognotedone @r{record timestamp and a note when DONE} | 6583 | lognotedone @r{record timestamp and a note when DONE} |
| 6448 | lognotestate @r{record timestamp, note when TODO state changes} | 6584 | lognotestate @r{record timestamp and a note when TODO state changes} |
| 6449 | logrepeat @r{record a not when re-instating a repeating item} | 6585 | logrepeat @r{record a note when re-instating a repeating item} |
| 6450 | nologrepeat @r{do not record when re-instating repeating item} | 6586 | nologrepeat @r{do not record when re-instating repeating item} |
| 6451 | lognoteclock-out @r{record timestamp and a note when clocking out} | 6587 | lognoteclock-out @r{record timestamp and a note when clocking out} |
| 6452 | @end example | 6588 | @end example |
| @@ -6531,6 +6667,9 @@ default location. | |||
| 6531 | If the cursor is on a @code{<<<target>>>}, update radio targets and | 6667 | If the cursor is on a @code{<<<target>>>}, update radio targets and |
| 6532 | corresponding links in this buffer. | 6668 | corresponding links in this buffer. |
| 6533 | @item | 6669 | @item |
| 6670 | If the cursor is in a property line or at the start or end of a property | ||
| 6671 | drawer, offer property commands. | ||
| 6672 | @item | ||
| 6534 | If the cursor is in a plain list item with a checkbox, toggle the status | 6673 | If the cursor is in a plain list item with a checkbox, toggle the status |
| 6535 | of the checkbox. | 6674 | of the checkbox. |
| 6536 | @item | 6675 | @item |
| @@ -7289,6 +7428,7 @@ MATCH is being ignored." | |||
| 7289 | @node Using the property API, , Special agenda views, Extensions and Hacking | 7428 | @node Using the property API, , Special agenda views, Extensions and Hacking |
| 7290 | @section Using the property API | 7429 | @section Using the property API |
| 7291 | @cindex API, for properties | 7430 | @cindex API, for properties |
| 7431 | @cindex properties, API | ||
| 7292 | 7432 | ||
| 7293 | Here is a description of the functions that can be used to work with | 7433 | Here is a description of the functions that can be used to work with |
| 7294 | properties. | 7434 | properties. |