aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Dominik2007-07-10 07:24:19 +0000
committerCarsten Dominik2007-07-10 07:24:19 +0000
commit4d1daf5961ef41f59713aabc3e044051ce78041b (patch)
treecd07d44c9cef65a5de5cdc32b0223c045cce1790
parent7d58338ef2bdcaaf3ff94f7472d01a49c65a232d (diff)
downloademacs-4d1daf5961ef41f59713aabc3e044051ce78041b.tar.gz
emacs-4d1daf5961ef41f59713aabc3e044051ce78041b.zip
* org.texi (Properties and columns): Chapter rewritten.
-rw-r--r--man/org.texi380
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
118Archiving 119Archiving
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
184Properties 185Properties 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
198Defining Columns
199
200* Scope of column definitions::
201* Column attributes::
202
197Timestamps 203Timestamps
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.
379Org-mode keeps simple things simple. When first fired up, it should 385Org-mode keeps simple things simple. When first fired up, it should
380feel like a straightforward, easy to use outliner. Complexity is not 386feel like a straightforward, easy to use outliner. Complexity is not
381imposed, but a large amount of functionality is available when you need 387imposed, but a large amount of functionality is available when you need
382it. Org-mode can be used on different levels and in different ways, for 388it. Org-mode is a toolbox and can be used in different ways, for
383example as: 389example 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:
396Org-mode's automatic, context sensitive table editor with spreadsheet 403Org-mode's automatic, context sensitive table editor with spreadsheet
397capabilities can be integrated into any major mode by activating the 404capabilities can be integrated into any major mode by activating the
398minor Orgtbl-mode. Using a translation step, it can be used to maintain 405minor Orgtbl-mode. Using a translation step, it can be used to maintain
399tables in arbitrary file types, for example in LaTeX. 406tables in arbitrary file types, for example in LaTeX. The structure
407editing and list creation capabilities can be used outside Org-mode with
408the minor Orgstruct-mode.
400 409
401@cindex FAQ 410@cindex FAQ
402There is a website for Org-mode which provides links to the newest 411There 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
471PDF documentation to your .emacs file, the single quote character comes 480PDF documentation as viewed by Acrobat reader to your .emacs file, the
472out incorrectly and the code will not work. You need to fix the single 481single quote character comes out incorrectly and the code will not work.
473quotes by hand, or copy from Info documentation.} 482You need to fix the single quotes by hand, or copy from Info
483documentation.}
474@end iftex 484@end iftex
475 485
476Add the following lines to your @file{.emacs} file. The last two lines 486Add 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)}).
1121With prefix arg, select the nth bullet from this list. 1132With 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
1128Sometimes you want to keep information associated with an entry, but you 1140Sometimes you want to keep information associated with an entry, but you
1129normally don't want to see it, except when explicitly asking for it. 1141normally don't want to see it. For this, Org-mode has @emph{drawers}.
1130For this, Org-mode has @emph{drawers}. Drawers need to be configured 1142Drawers need to be configured with the variable @code{org-drawers}, and
1131with the variable @code{org-drawers}, and look like this: 1143look 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
1143hide and show the entry, but keep the drawer collapsed to a single line. 1155hide and show the entry, but keep the drawer collapsed to a single line.
1144In order to look inside the drawer, you need to move the cursor to the 1156In order to look inside the drawer, you need to move the cursor to the
1145drawer line and press @key{TAB} there. Org-mode uses a drawer for 1157drawer line and press @key{TAB} there. Org-mode uses a drawer for
1146storing properties (@pxref{Properties}). 1158storing 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
1165If you like the intuitive way the Org-mode structure editing and list
1166formatting works, you might want to use these commands in other modes
1167like text-mode or mail-mode as well. The minor mode Orgstruct-mode
1168makes this possible. You can always toggle the mode with @kbd{M-x
1169orgstruct-mode}. To turn it on by default, for example in mail mode,
1170use
1171
1172@lisp
1173(add-hook 'mail-mode-hook 'turn-on-orgstruct)
1174@end lisp
1175
1176When this mode is active and the cursor is on a line that looks to
1177Org-mode like a headline of the first line of a list item, most
1178structure editing commands will work, even if the same keys normally
1179have different functionality in the major mode you are using. If the
1180cursor is not in one of those special lines, Orgstruct-mode lurks
1181silently 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
1614Also properties (@pxref{Properties}) can be used as constants in table 1649Also properties (@pxref{Properties and columns}) can be used as
1615formulas: For a property @samp{:XYZ:} use the name @samp{$PROP_XYZ}, and 1650constants in table formulas: For a property @samp{:XYZ:} use the name
1616the 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
1617hierarchy above it. If you have the @file{constants.el} package, it 1652outline entry and in the hierarchy above it. If you have the
1618will 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 1654including natural constants like @samp{$h} for Planck's constant, and
1620kilometers@footnote{@file{Constant.el} can supply the values of 1655units like @samp{$km} for kilometers@footnote{@file{Constant.el} can
1621constants in two different unit systems, @code{SI} and @code{cgs}. 1656supply the values of constants in two different unit systems, @code{SI}
1622Which one is used depends on the value of the variable 1657and @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
1625buffer.}. Column names and parameters can be specified in special table 1660buffer.}. 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
3286search @samp{+LEVEL=3+BOSS/-DONE} lists all level three headlines that 3321search @samp{+LEVEL=3+BOSS/-DONE} lists all level three headlines that
3287have the tag BOSS and are @emph{not} marked with the todo keyword DONE. 3322have 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
3293Properties are a set of key-value pairs associated with an entry. There 3328Properties 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
3298efficient to use a property @code{RELEASE} with a value @code{1.0} or 3333efficient 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)
3300database capabilities in an Org-mode buffer, for example to create a 3335database capabilities in an Org-mode buffer, for example to create a
3301list of Music CD's you own. 3336list of Music CD's you own. You can edit and view properties
3337conveniently 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
3314Properties are key-value pairs. They need to be inserted into a special 3352Properties are key-value pairs. They need to be inserted into a special
3315drawer (@pxref{Drawers}) with the name @code{PROPERTIES}. Each property 3353drawer (@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
3370You may define the allowed values for a particular property @samp{XYZ}
3371by 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
3373the entire tree. When allowed values are defined, setting the
3374corresponding property becomes easier and is less prone to typing
3375errors. For the example with the CD collection, we can predefine
3376publishers 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
3331The following commands help to insert properties: 3387The 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}
3336After an initial colon in a line, complete property keys. All keys used 3392After an initial colon in a line, complete property keys. All keys used
3337in the current file will be offered as possible completions. 3393in the current file will be offered as possible completions.
3394@item M-x org-insert-property-drawer
3395Insert a property drawer into the current entry. The drawer will be
3396inserted early in the entry, but after the lines with planning
3397information like deadlines.
3398@kindex C-c C-c
3399@item C-c C-c
3400With the cursor in a property drawer, this executes property commands.
3401@item C-c C-c s
3402Set a property in the current entry. Both the property and the value
3403can be inserted using completion.
3404@kindex S-@key{right}
3405@kindex S-@key{left}
3406@item S-@key{left}/@key{right}
3407Switch property at point to the next/previous allowed value.
3408@item C-c C-c d
3409Remove a property from the current entry.
3410@item C-c C-c D
3411Globally 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
3345Several properties are special, because they can be used to access other 3418Special properties provide alternative access method to Org-mode
3346features of Org-mode like the TODO status: 3419features discussed in the previous chapters, like the TODO state or the
3420priority of an entry. This interface exists so that you can include
3421these states into columns view (@pxref{Column view}). The following
3422property names are special and should not be used as keys in the
3423properties drawer:
3347 3424
3348@example 3425@example
3349TODO @r{The TODO keyword of the entry.} 3426TODO @r{The TODO keyword of the entry.}
@@ -3354,8 +3431,9 @@ DEADLINE @r{The deadline time string, without the angular brackets.}
3354SCHEDULED @r{The scheduling time stamp, without the angular brackets.} 3431SCHEDULED @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
3360To create sparse trees and special lists with selection based on 3438To create sparse trees and special lists with selection based on
3361properties, the same commands are used as for tag searches (@pxref{Tag 3439properties, 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
3371value @samp{unlimited}, and a @samp{:with:} property that is matched by 3449value @samp{unlimited}, and a @samp{:with:} property that is matched by
3372the regular expression @samp{Sarah\|Denny}. 3450the 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
3377If different items in a document have similar properties, it can be nice 3455A great way to view and edit properties in aan outline tree is
3378to 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 3457table row. Columns in this table provide access to properties of the
3380structure over the headline of an item. So the column view does not use 3458entries. Org-mode implements columns by overlaying a tabular structure
3381a special buffer, it happens in exactly the same buffer where the 3459over the headline of each item. While the headlines have been turned
3382outline is, and only temporarily changes the look of this buffer - not 3460into a table row, you can still change the visibility of the outline
3383the content. This has the advantage that you can still change the 3461tree. For example, you get a compact table by switching to CONTENTS
3384visibility of the outline tree. For example, you get a compact table by 3462view (@kbd{S-@key{TAB} S-@key{TAB}}, or simple @kbd{c} while column view
3385switching to CONTENTS view, but you can still open, read, and edit the 3463is active), but you can still open, read, and
3386entry below each headline. Or, you can switch to column view after 3464edit the entry below each headline. Or, you can switch to column view
3387executing a sparse tree command and in this way get a table only for the 3465after executing a sparse tree command and in this way get a table only
3388selected items. Column view also works in agenda buffers (@pxref{Agenda 3466for the selected items. Column view also works in agenda buffers
3389views}) where queries have collected selected items, possibly from a 3467(@pxref{Agenda views}) where queries have collected selected items,
3390number of files. 3468possibly 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
3400Setting up a column view first requires defining the columns. A column 3480Setting up a column view first requires defining the columns. This is
3401definition is a property itself and looks like this: 3481done 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
3407This definition means that column 1 should be the first 25 characters of 3488@node Scope of column definitions, Column attributes, Defining columns, Defining columns
3408the item itself, i.e. of the headline. You probably always should start 3489@subsubsection Scope of column definitions
3409the column definition with the ITEM specifier - just select a useful
3410width for it. The other specifiers create columns for the local tags,
3411for the priority and for the TODO state. When no width is given after
3412the @samp{%} character, the column will be exactly as wide as it need to
3413be in order to fully display all values.
3414 3490
3415If a @code{COLUMNS} property is present in an entry, it defines 3491To define a column format for an entire file, use a line like
3416columns for the entry itself, and for the entire subtree below it.
3417Since the column definition is part of the hierarchical structure of the
3418document, you can define columns on level 1 that are general enough for
3419all sublevels, and more specific columns further down, when you edit a deeper
3420part 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: 3497To specify a format that only applies to a specific tree, add a COLUMNS
3427** Family 3498property 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
3444Now we have defined three different sets of columns. If you switch to 3506If a @code{COLUMNS} property is present in an entry, it defines columns
3445column view in the @emph{Family} section, you will get a different table 3507for the entry itself, and for the entire subtree below it. Since the
3446than if you do it in the @emph{Office} section. However, if you switch 3508column definition is part of the hierarchical structure of the document,
3447to column view with the cursor on the @emph{People} section, the table 3509you can define columns on level 1 that are general enough for all
3448will cover all entries, but contain only the @emph{Name} column. 3510sublevels, and more specific columns further down, when you edit a
3511deeper part of the tree.
3512
3513@node Column attributes, , Scope of column definitions, Defining columns
3514@subsubsection Column attributes
3515A column definition sets the attributes of a column. The general
3516definition looks like this:
3517
3518@example
3519 %[width]property[(title)][@{summary-type@}]
3520@end example
3449 3521
3450If no COLUMNS property applies to a given location, Org-mode uses a 3522@noindent
3451default format specified in the variable 3523Except for the percent sign and the property name, all items are
3452@code{org-default-columns-format}. This format in particular also 3524optional. The individual parts have the following meaning:
3453applies when column view is invoked with the cursor before the first
3454headline. You can set the default format on a per-file basis with a
3455line (don't forget to press @kbd{C-c C-c} to activate any changes to
3456this line).
3457 3525
3458@example 3526@example
3459#+COLUMNS: %25ITEM ....." 3527width @r{An integer specifying the width of the column in characters.}
3528 @r{If omitted, the width will be determined automatically.}
3529property @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
3541Here is an example for a complete columns definition, along with allowed
3542values.
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
3551The first column, @samp{%25ITEM}, means the first 25 characters of the
3552item itself, i.e. of the headline. You probably always should start the
3553column definition with the ITEM specifier. The other specifiers create
3554columns @samp{Owner} with a list of names as allowed values, for
3555@samp{Status} with four different possible values, and for a checkbox
3556field @samp{Approved}. When no width is given after the @samp{%}
3557character, the column will be exactly as wide as it needs to be in order
3558to fully display all values. The @samp{Approved} column does have a
3559modified title (@samp{Approved?}, with a question mark). Summaries will
3560be created for the @samp{Time_Spent} column by adding time duration
3561expressions like HH:MM, and for the @samp{Approved} column, by providing
3562an @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
3468Create the column view for the local environment. This command searches 3571Create the column view for the local environment. This command searches
3469the hierarchy, up from point, for a @code{COLUMNS} property that defines 3572the hierarchy, up from point, for a @code{COLUMNS} property that defines
3470a format. When one is found, the column view table is established for 3573a format. When one is found, the column view table is established for
3471the entire subtree. 3574the entire tree, starting from the entry that contains the @code{COLUMNS}
3575property. If none is found, the format is taken from the @code{#+COLUMNS}
3576line or from the variable @code{org-columns-default-format}, and column
3577view is established for the current entry and its subtree.
3578@kindex q
3579@item q
3580Exit 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}
3473Move through the column view from field to field. 3583Move 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}
3587Switch to the next/previous allowed value of the field. For this, you
3588have to have specified allowed values for a property.
3589@kindex n
3590@kindex p
3591@itemx n / p
3592Same as @kbd{S-@key{left}/@key{right}}
3474@kindex e 3593@kindex e
3475@item e 3594@item e
3476Edit the property at point. For the special properties, this will 3595Edit 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
3482View the full value of this property. This is useful if the width of 3601View the full value of this property. This is useful if the width of
3483the column is smaller than that of the value. 3602the column is smaller than that of the value.
3484@kindex q 3603@kindex a
3485@item q 3604@item a
3486Exit column view. 3605Edit the list of allowed values for this property. If the list is found
3606in the hierarchy, the modified values is stored there. If no list is
3607found, the new value is stored in the first entry that is part of the
3608current column view.
3609@tsubheading{Modifying the table structure}
3610@kindex <
3611@kindex >
3612@item < / >
3613Make the column narrower/wider by one character.
3614@kindex S-M-@key{right}
3615@item S-M-@key{right}
3616Insert a new column, to the right of the current column.
3617@kindex S-M-@key{left}
3618@item S-M-@key{left}
3619Delete 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
3492There is a full API for accessing and changing properties. This API can 3627There is a full API for accessing and changing properties. This API can
3493be used by Emacs Lisp programs to work with properties and to implement 3628be used by Emacs Lisp programs to work with properties and to implement
3494features based on them. For more information see @ref{Using the 3629features based on them. For more information see @ref{Using the
3495property API}. 3630property 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
4607Switch to day/week/month/year view. 4742Switch to day/week/month/year view. When switching to day or week view,
4743this setting becomes the default for subseqent agenda commands. Since
4744month 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
5950Org-mode includes@footnote{@file{org-publish.el} is not yet part of 6087Org-mode includes@footnote{@file{org-publish.el} is not distributed with
5951Emacs, so if you are using @file{org.el} as it comes with Emacs, you 6088Emacs 21, if you are still using Emacs 21, you need you need to download
5952need to download this file separately. Also make sure org.el is at 6089this file separately.} a publishing management system that allows you to
5953least version 4.27.} a publishing management system 6090configure automatic HTML conversion of @emph{projects} composed of
5954that allows you to configure automatic HTML conversion of 6091interlinked org files. This system is called @emph{org-publish}. You
5955@emph{projects} composed of interlinked org files. This system is 6092can also configure org-publish to automatically upload your exported
5956called @emph{org-publish}. You can also configure org-publish to 6093HTML pages and related attachments, such as images and source code
5957automatically upload your exported HTML pages and related attachments, 6094files, to a web server. Org-publish turns org-mode into a web-site
5958such as images and source code files, to a web server. Org-publish turns 6095authoring tool.
5959org-mode into a web-site authoring tool.
5960 6096
5961Org-publish has been contributed to Org-mode by David O'Toole. 6097Org-publish has been contributed to Org-mode by David O'Toole.
5962 6098
@@ -6118,7 +6254,7 @@ respective variable for details.
6118 6254
6119When a property is given a value in org-publish-project-alist, its 6255When a property is given a value in org-publish-project-alist, its
6120setting overrides the value of the corresponding user variable (if any) 6256setting overrides the value of the corresponding user variable (if any)
6121during publishing. options set within a file (@pxref{Export 6257during publishing. Options set within a file (@pxref{Export
6122options}), however, override everything. 6258options}), 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
6445logging @r{record a timestamp when an item is marked DONE} 6581logging @r{record a timestamp when an item is marked DONE}
6446nologging @r{don't record when items are marked DONE} 6582nologging @r{don't record when items are marked DONE}
6447lognotedone @r{record timestamp and a note when DONE} 6583lognotedone @r{record timestamp and a note when DONE}
6448lognotestate @r{record timestamp, note when TODO state changes} 6584lognotestate @r{record timestamp and a note when TODO state changes}
6449logrepeat @r{record a not when re-instating a repeating item} 6585logrepeat @r{record a note when re-instating a repeating item}
6450nologrepeat @r{do not record when re-instating repeating item} 6586nologrepeat @r{do not record when re-instating repeating item}
6451lognoteclock-out @r{record timestamp and a note when clocking out} 6587lognoteclock-out @r{record timestamp and a note when clocking out}
6452@end example 6588@end example
@@ -6531,6 +6667,9 @@ default location.
6531If the cursor is on a @code{<<<target>>>}, update radio targets and 6667If the cursor is on a @code{<<<target>>>}, update radio targets and
6532corresponding links in this buffer. 6668corresponding links in this buffer.
6533@item 6669@item
6670If the cursor is in a property line or at the start or end of a property
6671drawer, offer property commands.
6672@item
6534If the cursor is in a plain list item with a checkbox, toggle the status 6673If the cursor is in a plain list item with a checkbox, toggle the status
6535of the checkbox. 6674of 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
7293Here is a description of the functions that can be used to work with 7433Here is a description of the functions that can be used to work with
7294properties. 7434properties.