|
@@ -3,8 +3,8 @@
|
|
|
@setfilename ../info/org
|
|
|
@settitle Org Mode Manual
|
|
|
|
|
|
-@set VERSION 4.79
|
|
|
-@set DATE June 2007
|
|
|
+@set VERSION 5.01
|
|
|
+@set DATE July 2007
|
|
|
|
|
|
@dircategory Emacs
|
|
|
@direntry
|
|
@@ -81,6 +81,7 @@ Software Foundation raise funds for GNU development.''
|
|
|
* Hyperlinks:: Notes in context
|
|
|
* TODO items:: Every tree branch can be a TODO item
|
|
|
* Tags:: Tagging headlines and matching sets of tags
|
|
|
+* Properties::
|
|
|
* Timestamps:: Assign date and time to items
|
|
|
* Agenda views:: Collecting information into views
|
|
|
* Embedded LaTeX:: LaTeX fragments and formulas
|
|
@@ -112,6 +113,7 @@ Document Structure
|
|
|
* Archiving:: Move done task trees to a different place
|
|
|
* Sparse trees:: Matches embedded in context
|
|
|
* Plain lists:: Additional structure within an entry
|
|
|
+* Drawers::
|
|
|
|
|
|
Archiving
|
|
|
|
|
@@ -179,6 +181,19 @@ Tags
|
|
|
* Setting tags:: How to assign tags to a headline
|
|
|
* Tag searches:: Searching for combinations of tags
|
|
|
|
|
|
+Properties
|
|
|
+
|
|
|
+* Property syntax:: How properties are spelled out
|
|
|
+* Special properties:: Access to other Org-mode features
|
|
|
+* Property searches:: Matching property values
|
|
|
+* Column view:: Tabular viewing and editing
|
|
|
+* Property API:: Properties for Lisp programmers
|
|
|
+
|
|
|
+Column View
|
|
|
+
|
|
|
+* Defining columns:: The COLUMNS format property
|
|
|
+* Using column view:: How to create and use column view
|
|
|
+
|
|
|
Timestamps
|
|
|
|
|
|
* Time stamps:: Assigning a time to a tree entry
|
|
@@ -215,7 +230,7 @@ The built-in agenda views
|
|
|
|
|
|
* Weekly/Daily agenda:: The calendar page with current tasks
|
|
|
* Global TODO list:: All unfinished action items
|
|
|
-* Matching headline tags:: Structured information with fine-tuned search
|
|
|
+* Matching tags and properties:: Structured information with fine-tuned search
|
|
|
* Timeline:: Time-sorted view for single file
|
|
|
* Stuck projects:: Find projects you need to review
|
|
|
|
|
@@ -308,6 +323,7 @@ Extensions, Hooks and Hacking
|
|
|
* Tables in arbitrary syntax:: Orgtbl for LaTeX and other programs
|
|
|
* Dynamic blocks:: Automatically filled blocks
|
|
|
* Special agenda views:: Customized views
|
|
|
+* Using the property API:: Writing programs that use entry properties
|
|
|
|
|
|
Tables in arbitrary syntax
|
|
|
|
|
@@ -333,7 +349,7 @@ Tables in arbitrary syntax
|
|
|
@section Summary
|
|
|
@cindex summary
|
|
|
|
|
|
-Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing
|
|
|
+Org-mode is a mode for keeping notes, maintaining TODO lists, and doing
|
|
|
project planning with a fast and effective plain-text system.
|
|
|
|
|
|
Org-mode develops organizational tasks around NOTES files that contain
|
|
@@ -341,7 +357,7 @@ lists or information about projects as plain text. Org-mode is
|
|
|
implemented on top of outline-mode, which makes it possible to keep the
|
|
|
content of large files well structured. Visibility cycling and
|
|
|
structure editing help to work with the tree. Tables are easily created
|
|
|
-with a built-in table editor. Org-mode supports ToDo items, deadlines,
|
|
|
+with a built-in table editor. Org-mode supports TODO items, deadlines,
|
|
|
time stamps, and scheduling. It dynamically compiles entries into an
|
|
|
agenda that utilizes and smoothly integrates much of the Emacs calendar
|
|
|
and diary. Plain text URL-like links connect to websites, emails,
|
|
@@ -564,6 +580,7 @@ edit the structure of the document.
|
|
|
* Archiving:: Move done task trees to a different place
|
|
|
* Sparse trees:: Matches embedded in context
|
|
|
* Plain lists:: Additional structure within an entry
|
|
|
+* Drawers::
|
|
|
@end menu
|
|
|
|
|
|
@node Outlines, Headlines, Document structure, Document structure
|
|
@@ -991,7 +1008,7 @@ XEmacs uses selective display for outlining, not text properties.}.
|
|
|
Or you can use the command @kbd{C-c C-e v} to export only the visible
|
|
|
part of the document and print the resulting file.
|
|
|
|
|
|
-@node Plain lists, , Sparse trees, Document structure
|
|
|
+@node Plain lists, Drawers, Sparse trees, Document structure
|
|
|
@section Plain lists
|
|
|
@cindex plain lists
|
|
|
@cindex lists, plain
|
|
@@ -1017,9 +1034,9 @@ the 2--digit numbers must be written left-aligned with the other numbers
|
|
|
in the list. Indentation also determines the end of a list item. It
|
|
|
ends before the next line that is indented like the bullet/number, or
|
|
|
less. Empty lines are part of the previous item, so you can have
|
|
|
-several paragraphs in one item. If you would like an emtpy line to
|
|
|
+several paragraphs in one item. If you would like an empty line to
|
|
|
terminate all currently open plain lists, configure the variable
|
|
|
-@code{org-empty-line-terminates-plain-lists}. Here is an for example:
|
|
|
+@code{org-empty-line-terminates-plain-lists}. Here is an example:
|
|
|
|
|
|
@example
|
|
|
@group
|
|
@@ -1097,8 +1114,37 @@ If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the
|
|
|
state of the checkbox. If not, make this command makes sure that all
|
|
|
the items on this list level use the same bullet. Furthermore, if this
|
|
|
is an ordered list, make sure the numbering is ok.
|
|
|
+@kindex C-c -
|
|
|
+@item C-c -
|
|
|
+Cycle the entire list level through the different itemize/enumerate
|
|
|
+bullets (@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}).
|
|
|
+With prefix arg, select the nth bullet from this list.
|
|
|
@end table
|
|
|
|
|
|
+@node Drawers, , Plain lists, Document structure
|
|
|
+@section Drawers
|
|
|
+@cindex drawers
|
|
|
+
|
|
|
+Sometimes you want to keep information associated with an entry, but you
|
|
|
+normally don't want to see it, except when explicitly asking for it.
|
|
|
+For this, Org-mode has @emph{drawers}. Drawers need to be configured
|
|
|
+with the variable @code{org-drawers}, and look like this:
|
|
|
+
|
|
|
+@example
|
|
|
+** This is a headline
|
|
|
+ Still outside the drawer
|
|
|
+ :DRAWERNAME:
|
|
|
+ This is inside the drawer.
|
|
|
+ :END:
|
|
|
+ After the drawer.
|
|
|
+@end example
|
|
|
+
|
|
|
+Visibility cycling (@pxref{Visibility cycling}) on the headline will
|
|
|
+hide and show the entry, but keep the drawer collapsed to a single line.
|
|
|
+In order to look inside the drawer, you need to move the cursor to the
|
|
|
+drawer line and press @key{TAB} there. Org-mode uses a drawer for
|
|
|
+storing properties (@pxref{Properties}).
|
|
|
+
|
|
|
@node Tables, Hyperlinks, Document structure, Top
|
|
|
@chapter Tables
|
|
|
@cindex tables
|
|
@@ -1557,12 +1603,23 @@ see the @samp{E} mode switch below). If there are no non-empty fields,
|
|
|
|
|
|
@samp{$name} is interpreted as the name of a column, parameter or
|
|
|
constant. Constants are defined globally through the variable
|
|
|
-@code{org-table-formula-constants}. If you have the @file{constants.el}
|
|
|
-package, it will also be used to resolve constants, including natural
|
|
|
-constants like @samp{$h} for Planck's constant, and units like
|
|
|
-@samp{$km} for kilometers@footnote{@file{Constant.el} can supply the
|
|
|
-values of constants in two different unit systems, @code{SI} and
|
|
|
-@code{cgs}. Which one is used depends on the value of the variable
|
|
|
+@code{org-table-formula-constants}, and locally (for the file) through a
|
|
|
+line like
|
|
|
+
|
|
|
+@example
|
|
|
+#+CONSTANTS: c=299792458. pi=3.14 eps=2.4e-6
|
|
|
+@end example
|
|
|
+
|
|
|
+@noindent
|
|
|
+Also properties (@pxref{Properties}) can be used as constants in table
|
|
|
+formulas: For a property @samp{:XYZ:} use the name @samp{$PROP_XYZ}, and
|
|
|
+the property will be searched in the current outline entry and in the
|
|
|
+hierarchy above it. If you have the @file{constants.el} package, it
|
|
|
+will also be used to resolve constants, including natural constants like
|
|
|
+@samp{$h} for Planck's constant, and units like @samp{$km} for
|
|
|
+kilometers@footnote{@file{Constant.el} can supply the values of
|
|
|
+constants in two different unit systems, @code{SI} and @code{cgs}.
|
|
|
+Which one is used depends on the value of the variable
|
|
|
@code{constants-unit-system}. You can use the @code{#+STARTUP} options
|
|
|
@code{constSI} and @code{constcgs} to set this value for the current
|
|
|
buffer.}. Column names and parameters can be specified in special table
|
|
@@ -2511,6 +2568,8 @@ insertion of content:
|
|
|
%a @r{annotation, normally the link created with @code{org-store-link}}
|
|
|
%i @r{initial content, the region when remember is called with C-u.}
|
|
|
@r{The entire text will be indented like @code{%i} itself.}
|
|
|
+%^g @r{prompt for tags, with completion on tags in target file.}
|
|
|
+%^G @r{prompt for tags, with completion all tags in all agenda files.}
|
|
|
%:keyword @r{specific information for certain link types, see below}
|
|
|
@end example
|
|
|
|
|
@@ -2663,6 +2722,9 @@ the TODO entries directly from that buffer (@pxref{Agenda commands}).
|
|
|
@c @item @code{org-agenda-include-all-todo}
|
|
|
@c If you would like to have all your TODO items listed as part of your
|
|
|
@c agenda, customize the variable @code{org-agenda-include-all-todo}.
|
|
|
+@kindex S-M-@key{RET}
|
|
|
+@item S-M-@key{RET}
|
|
|
+Insert a new TODO entry below the current one.
|
|
|
@end table
|
|
|
|
|
|
@node TODO extensions, Priorities, TODO basics, TODO items
|
|
@@ -2968,7 +3030,7 @@ back into synch. Or simply toggle any checkbox twice with @kbd{C-c C-c}.
|
|
|
@end table
|
|
|
|
|
|
|
|
|
-@node Tags, Timestamps, TODO items, Top
|
|
|
+@node Tags, Properties, TODO items, Top
|
|
|
@chapter Tags
|
|
|
@cindex tags
|
|
|
@cindex headline tagging
|
|
@@ -3161,7 +3223,7 @@ Create a sparse tree with all headlines matching a tags search. With a
|
|
|
@kindex C-c a m
|
|
|
@item C-c a m
|
|
|
Create a global list of tag matches from all agenda files.
|
|
|
-@xref{Matching headline tags}.
|
|
|
+@xref{Matching tags and properties}.
|
|
|
@kindex C-c a M
|
|
|
@item C-c a M
|
|
|
Create a global list of tag matches from all agenda files, but check
|
|
@@ -3224,7 +3286,215 @@ instead of any TAG an expression like @samp{LEVEL=3}. For example, a
|
|
|
search @samp{+LEVEL=3+BOSS/-DONE} lists all level three headlines that
|
|
|
have the tag BOSS and are @emph{not} marked with the todo keyword DONE.
|
|
|
|
|
|
-@node Timestamps, Agenda views, Tags, Top
|
|
|
+@node Properties, Timestamps, Tags, Top
|
|
|
+@chapter Properties
|
|
|
+@cindex properties
|
|
|
+
|
|
|
+Properties are a set of key-value pairs associated with an entry. There
|
|
|
+are two main applications for properties in Org-mode. First, properties
|
|
|
+are like tags, but with a value. For example, in a file where you
|
|
|
+document bugs and plan releases of a piece of software, instead of using
|
|
|
+tags like @code{:release_1:}, @code{:release_2:}, it can be more
|
|
|
+efficient to use a property @code{RELEASE} with a value @code{1.0} or
|
|
|
+@code{2.0}. Second, you can use properties to implement (very basic)
|
|
|
+database capabilities in an Org-mode buffer, for example to create a
|
|
|
+list of Music CD's you own.
|
|
|
+
|
|
|
+@menu
|
|
|
+* Property syntax:: How properties are spelled out
|
|
|
+* Special properties:: Access to other Org-mode features
|
|
|
+* Property searches:: Matching property values
|
|
|
+* Column view:: Tabular viewing and editing
|
|
|
+* Property API:: Properties for Lisp programmers
|
|
|
+@end menu
|
|
|
+
|
|
|
+@node Property syntax, Special properties, Properties, Properties
|
|
|
+@section Property Syntax
|
|
|
+
|
|
|
+Properties are key-value pairs. They need to be inserted into a special
|
|
|
+drawer (@pxref{Drawers}) with the name @code{PROPERTIES}. Each property
|
|
|
+is specified on a single line, with the key (surrounded by colons)
|
|
|
+first, and the value after it. Here is an example:
|
|
|
+
|
|
|
+@example
|
|
|
+* CD collection
|
|
|
+** Classic
|
|
|
+*** Goldberg Variations
|
|
|
+ :PROPERTIES:
|
|
|
+ :Title: Goldberg Variations
|
|
|
+ :Composer: J.S. Bach
|
|
|
+ :Artist: Glen Gould
|
|
|
+ :END:
|
|
|
+@end example
|
|
|
+
|
|
|
+@noindent
|
|
|
+The following commands help to insert properties:
|
|
|
+
|
|
|
+@table @kbd
|
|
|
+@kindex M-@key{TAB}
|
|
|
+@item M-@key{TAB}
|
|
|
+After an initial colon in a line, complete property keys. All keys used
|
|
|
+in the current file will be offered as possible completions.
|
|
|
+@end table
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+@node Special properties, Property searches, Property syntax, Properties
|
|
|
+@section Special Properties
|
|
|
+
|
|
|
+Several properties are special, because they can be used to access other
|
|
|
+features of Org-mode like the TODO status:
|
|
|
+
|
|
|
+@example
|
|
|
+TODO @r{The TODO keyword of the entry.}
|
|
|
+TAGS @r{The tags defined directly in the headline.}
|
|
|
+ALLTAGS @r{All tags, including inherited ones.}
|
|
|
+PRIORITY @r{The priority of the entry, a string with a single letter.}
|
|
|
+DEADLINE @r{The deadline time string, without the angular brackets.}
|
|
|
+SCHEDULED @r{The scheduling time stamp, without the angular brackets.}
|
|
|
+@end example
|
|
|
+
|
|
|
+@node Property searches, Column view, Special properties, Properties
|
|
|
+@section Property searches
|
|
|
+
|
|
|
+To create sparse trees and special lists with selection based on
|
|
|
+properties, the same commands are used as for tag searches (@pxref{Tag
|
|
|
+searches}), and the same logic applies. For example, a search string
|
|
|
+
|
|
|
+@example
|
|
|
++WORK-BOSS+PRIORITY="A"+coffee="unlimited"+with=@{Sarah\|Denny@}
|
|
|
+@end example
|
|
|
+
|
|
|
+@noindent
|
|
|
+finds entries tagged @samp{:WORK:} but not @samp{:BOSS:}, which
|
|
|
+also have a priority value @samp{A}, a @samp{:coffee:} property with the
|
|
|
+value @samp{unlimited}, and a @samp{:with:} property that is matched by
|
|
|
+the regular expression @samp{Sarah\|Denny}.
|
|
|
+
|
|
|
+@node Column view, Property API, Property searches, Properties
|
|
|
+@section Column View
|
|
|
+
|
|
|
+If different items in a document have similar properties, it can be nice
|
|
|
+to view and edit those properties in a table-like format, in
|
|
|
+@emph{column view}. Org-mode implements columns by overlaying a tabular
|
|
|
+structure over the headline of an item. So the column view does not use
|
|
|
+a special buffer, it happens in exactly the same buffer where the
|
|
|
+outline is, and only temporarily changes the look of this buffer - not
|
|
|
+the content. This has the advantage that you can still change the
|
|
|
+visibility of the outline tree. For example, you get a compact table by
|
|
|
+switching to CONTENTS view, but you can still open, read, and edit the
|
|
|
+entry below each headline. Or, you can switch to column view after
|
|
|
+executing a sparse tree command and in this way get a table only for the
|
|
|
+selected items. Column view also works in agenda buffers (@pxref{Agenda
|
|
|
+views}) where queries have collected selected items, possibly from a
|
|
|
+number of files.
|
|
|
+
|
|
|
+@menu
|
|
|
+* Defining columns:: The COLUMNS format property
|
|
|
+* Using column view:: How to create and use column view
|
|
|
+@end menu
|
|
|
+
|
|
|
+@node Defining columns, Using column view, Column view, Column view
|
|
|
+@subsection Defining Columns
|
|
|
+
|
|
|
+Setting up a column view first requires defining the columns. A column
|
|
|
+definition is a property itself and looks like this:
|
|
|
+
|
|
|
+@example
|
|
|
+:COLUMNS: %25ITEM %TAGS %PRIORITY %TODO
|
|
|
+@end example
|
|
|
+
|
|
|
+This definition means that column 1 should be the first 25 characters of
|
|
|
+the item itself, i.e. of the headline. You probably always should start
|
|
|
+the column definition with the ITEM specifier - just select a useful
|
|
|
+width for it. The other specifiers create columns for the local tags,
|
|
|
+for the priority and for the TODO state. When no width is given after
|
|
|
+the @samp{%} character, the column will be exactly as wide as it need to
|
|
|
+be in order to fully display all values.
|
|
|
+
|
|
|
+If a @code{COLUMNS} property is present in an entry, it defines
|
|
|
+columns for the entry itself, and for the entire subtree below it.
|
|
|
+Since the column definition is part of the hierarchical structure of the
|
|
|
+document, you can define columns on level 1 that are general enough for
|
|
|
+all sublevels, and more specific columns further down, when you edit a deeper
|
|
|
+part of the tree. Here is an example:
|
|
|
+
|
|
|
+@example
|
|
|
+* People
|
|
|
+ :PROPERTIES:
|
|
|
+ :COLUMNS: %25ITEM %Name
|
|
|
+ :END:
|
|
|
+** Family
|
|
|
+ :PROPERTIES:
|
|
|
+ :COLUMNS: %25ITEM %Name %3Age
|
|
|
+ :END:
|
|
|
+*** Sam
|
|
|
+ Info about Sam, including a property list with Name and Age.
|
|
|
+*** Sarah
|
|
|
+ Info about Sarah, including a property list with Name and Age.
|
|
|
+** Office
|
|
|
+ :PROPERTIES:
|
|
|
+ :COLUMNS: %25ITEM %Name %Function %Salary
|
|
|
+ :END:
|
|
|
+*** Boss
|
|
|
+ Info about the Boss, including a property list with Name,
|
|
|
+ Function and Salary (if only we knew....).
|
|
|
+@end example
|
|
|
+
|
|
|
+Now we have defined three different sets of columns. If you switch to
|
|
|
+column view in the @emph{Family} section, you will get a different table
|
|
|
+than if you do it in the @emph{Office} section. However, if you switch
|
|
|
+to column view with the cursor on the @emph{People} section, the table
|
|
|
+will cover all entries, but contain only the @emph{Name} column.
|
|
|
+
|
|
|
+If no COLUMNS property applies to a given location, Org-mode uses a
|
|
|
+default format specified in the variable
|
|
|
+@code{org-default-columns-format}. This format in particular also
|
|
|
+applies when column view is invoked with the cursor before the first
|
|
|
+headline. You can set the default format on a per-file basis with a
|
|
|
+line (don't forget to press @kbd{C-c C-c} to activate any changes to
|
|
|
+this line).
|
|
|
+
|
|
|
+@example
|
|
|
+#+COLUMNS: %25ITEM ....."
|
|
|
+@end example
|
|
|
+
|
|
|
+@node Using column view, , Defining columns, Column view
|
|
|
+@subsection Using Column View
|
|
|
+
|
|
|
+@table @kbd
|
|
|
+@kindex C-c C-x C-c
|
|
|
+@item C-c C-x C-c
|
|
|
+Create the column view for the local environment. This command searches
|
|
|
+the hierarchy, up from point, for a @code{COLUMNS} property that defines
|
|
|
+a format. When one is found, the column view table is established for
|
|
|
+the entire subtree.
|
|
|
+@item @key{left} @key{right} @key{up} @key{down}
|
|
|
+Move through the column view from field to field.
|
|
|
+@kindex e
|
|
|
+@item e
|
|
|
+Edit the property at point. For the special properties, this will
|
|
|
+invoke the same interface that you normally use to change that
|
|
|
+property. For example, when editing a TAGS property, the tag completion
|
|
|
+or fast selection interface will pop up.
|
|
|
+@kindex v
|
|
|
+@item v
|
|
|
+View the full value of this property. This is useful if the width of
|
|
|
+the column is smaller than that of the value.
|
|
|
+@kindex q
|
|
|
+@item q
|
|
|
+Exit column view.
|
|
|
+@end table
|
|
|
+
|
|
|
+@node Property API, , Column view, Properties
|
|
|
+@section The Property API
|
|
|
+
|
|
|
+There is a full API for accessing and changing properties. This API can
|
|
|
+be used by Emacs Lisp programs to work with properties and to implement
|
|
|
+features based on them. For more information see @ref{Using the
|
|
|
+property API}.
|
|
|
+
|
|
|
+@node Timestamps, Agenda views, Properties, Top
|
|
|
@chapter Timestamps
|
|
|
@cindex time stamps
|
|
|
@cindex date stamps
|
|
@@ -3885,7 +4155,7 @@ Create the calendar-like agenda (@pxref{Weekly/Daily agenda}).
|
|
|
Create a list of all TODO items (@pxref{Global TODO list}).
|
|
|
@item m @r{/} M
|
|
|
Create a list of headlines matching a TAGS expression (@pxref{Matching
|
|
|
-headline tags}).
|
|
|
+tags and properties}).
|
|
|
@item L
|
|
|
Create the timeline view for the current buffer (@pxref{Timeline}).
|
|
|
@item # @r{/} !
|
|
@@ -3914,7 +4184,7 @@ In this section we describe the built-in views.
|
|
|
@menu
|
|
|
* Weekly/Daily agenda:: The calendar page with current tasks
|
|
|
* Global TODO list:: All unfinished action items
|
|
|
-* Matching headline tags:: Structured information with fine-tuned search
|
|
|
+* Matching tags and properties:: Structured information with fine-tuned search
|
|
|
* Timeline:: Time-sorted view for single file
|
|
|
* Stuck projects:: Find projects you need to review
|
|
|
@end menu
|
|
@@ -3988,11 +4258,11 @@ will be made in the agenda:
|
|
|
#+CATEGORY: Holiday
|
|
|
%%(org-calendar-holiday) ; special function for holiday names
|
|
|
#+CATEGORY: Ann
|
|
|
-%%(diary-anniversary 14 5 1956) Artur Dent %d is years old
|
|
|
+%%(diary-anniversary 14 5 1956) Arthur Dent is %d years old
|
|
|
%%(diary-anniversary 2 10 1869) Mahatma Gandhi would be %d years old
|
|
|
@end example
|
|
|
|
|
|
-@node Global TODO list, Matching headline tags, Weekly/Daily agenda, Built-in agenda views
|
|
|
+@node Global TODO list, Matching tags and properties, Weekly/Daily agenda, Built-in agenda views
|
|
|
@subsection The global TODO list
|
|
|
@cindex global TODO list
|
|
|
@cindex TODO list, global
|
|
@@ -4046,9 +4316,10 @@ and omit the sublevels from the global list. Configure the variable
|
|
|
@code{org-agenda-todo-list-sublevels} to get this behavior.
|
|
|
@end itemize
|
|
|
|
|
|
-@node Matching headline tags, Timeline, Global TODO list, Built-in agenda views
|
|
|
-@subsection Matching headline tags
|
|
|
+@node Matching tags and properties, Timeline, Global TODO list, Built-in agenda views
|
|
|
+@subsection Matching Tags and Properties
|
|
|
@cindex matching, of tags
|
|
|
+@cindex matching, of properties
|
|
|
@cindex tags view
|
|
|
|
|
|
If headlines in the agenda files are marked with @emph{tags}
|
|
@@ -4074,7 +4345,7 @@ together with a tags match is also possible, see @ref{Tag searches}.
|
|
|
The commands available in the tags list are described in @ref{Agenda
|
|
|
commands}.
|
|
|
|
|
|
-@node Timeline, Stuck projects, Matching headline tags, Built-in agenda views
|
|
|
+@node Timeline, Stuck projects, Matching tags and properties, Built-in agenda views
|
|
|
@subsection Timeline for a single file
|
|
|
@cindex timeline, single file
|
|
|
@cindex time-sorted view
|
|
@@ -4328,13 +4599,12 @@ as are entries that have been clocked on that day.
|
|
|
@item o
|
|
|
Delete other windows.
|
|
|
@c
|
|
|
-@kindex w
|
|
|
-@item w
|
|
|
-Switch to weekly view (7 days displayed together).
|
|
|
-@c
|
|
|
@kindex d
|
|
|
-@item d
|
|
|
-Switch to daily view (just one day displayed).
|
|
|
+@kindex w
|
|
|
+@kindex m
|
|
|
+@kindex y
|
|
|
+@item d w m y
|
|
|
+Switch to day/week/month/year view.
|
|
|
@c
|
|
|
@kindex D
|
|
|
@item D
|
|
@@ -6033,6 +6303,7 @@ force publishing of all files by giving a prefix argument.
|
|
|
@cindex completion, of dictionary words
|
|
|
@cindex completion, of option keywords
|
|
|
@cindex completion, of tags
|
|
|
+@cindex completion, of property keys
|
|
|
@cindex completion, of link abbreviations
|
|
|
@cindex @TeX{} symbol completion
|
|
|
@cindex TODO keywords completion
|
|
@@ -6058,10 +6329,14 @@ After @samp{\}, complete @TeX{} symbols supported by the exporter.
|
|
|
After @samp{*}, complete headlines in the current buffer so that they
|
|
|
can be used in search links like @samp{[[*find this headline]]}.
|
|
|
@item
|
|
|
-After @samp{:}, complete tags. The list of tags is taken from the
|
|
|
-variable @code{org-tag-alist} (possibly set through the @samp{#+TAGS}
|
|
|
-in-buffer option, @pxref{Setting tags}), or it is created dynamically
|
|
|
-from all tags used in the current buffer.
|
|
|
+After @samp{:} in a headline, complete tags. The list of tags is taken
|
|
|
+from the variable @code{org-tag-alist} (possibly set through the
|
|
|
+@samp{#+TAGS} in-buffer option, @pxref{Setting tags}), or it is created
|
|
|
+dynamically from all tags used in the current buffer.
|
|
|
+@item
|
|
|
+After @samp{:} and not in a headline, complete property keys. The list
|
|
|
+of keys is constructed dynamically from all keys used in the current
|
|
|
+buffer.
|
|
|
@item
|
|
|
After @samp{[}, complete link abbreviations (@pxref{Link abbreviations}).
|
|
|
@item
|
|
@@ -6107,6 +6382,32 @@ activate the changes immediately. Otherwise they become effective only
|
|
|
when the file is visited again in a new Emacs session.
|
|
|
|
|
|
@table @kbd
|
|
|
+@item #+ARCHIVE: %s_done::
|
|
|
+This line sets the archive location for the agenda file. It applies for
|
|
|
+all subsequent lines until the next @samp{#+CATEGORY} line, or the end
|
|
|
+of the file. The first such line also applies to any entries before it.
|
|
|
+The corresponding variable is @code{org-archive-location}.
|
|
|
+@item #+CATEGORY:
|
|
|
+This line sets the category for the agenda file. The category applies
|
|
|
+for all subsequent lines until the next @samp{#+CATEGORY} line, or the
|
|
|
+end of the file. The first such line also applies to any entries before it.
|
|
|
+@item #+COLUMNS: %25ITEM .....
|
|
|
+Set the default format for columns view. This format applies when
|
|
|
+columns view is invoked in location where no COLUMNS property applies.
|
|
|
+@item #+CONSTANTS: name1=value1 ...
|
|
|
+Set file-local values for constants to be used in table formulas. This
|
|
|
+line set the local variable @code{org-table-formula-constants-local}.
|
|
|
+The global version of theis variable is
|
|
|
+@code{org-table-formula-constants}.
|
|
|
+corresponding
|
|
|
+@item #+LINK: linkword replace
|
|
|
+These lines (several are allowed) specify link abbreviations.
|
|
|
+@xref{Link abbreviations}. The corresponding variable is
|
|
|
+@code{org-link-abbrev-alist}.
|
|
|
+@item #+PRIORITIES: highest lowest default
|
|
|
+This line sets the limits and the default for the priorities. All three
|
|
|
+must be either letters A-Z or numbers 0-9. The highest priority must
|
|
|
+have a lower ASCII number that the lowest priority.
|
|
|
@item #+STARTUP:
|
|
|
This line sets options to be used at startup of org-mode, when an
|
|
|
Org-mode file is being visited. The first set of options deals with the
|
|
@@ -6178,36 +6479,19 @@ The following options influence the table spreadsheet (variable
|
|
|
constcgs @r{@file{constants.el} should use the c-g-s unit system}
|
|
|
constSI @r{@file{constants.el} should use the SI unit system}
|
|
|
@end example
|
|
|
-@item #+SEQ_TODO: #+TYP_TODO:
|
|
|
-These lines set the TODO keywords and their interpretation in the
|
|
|
-current file. The corresponding variables are @code{org-todo-keywords}
|
|
|
-and @code{org-todo-interpretation}.
|
|
|
@item #+TAGS: TAG1(c1) TAG2(c2)
|
|
|
These lines (several such lines are allowed) specify the legal tags in
|
|
|
this file, and (potentially) the corresponding @emph{fast tag selection}
|
|
|
keys. The corresponding variable is @code{org-tag-alist}.
|
|
|
-@item #+LINK: linkword replace
|
|
|
-These lines (several are allowed) specify link abbreviations.
|
|
|
-@xref{Link abbreviations}. The corresponding variable is
|
|
|
-@code{org-link-abbrev-alist}.
|
|
|
-@item #+CATEGORY:
|
|
|
-This line sets the category for the agenda file. The category applies
|
|
|
-for all subsequent lines until the next @samp{#+CATEGORY} line, or the
|
|
|
-end of the file. The first such line also applies to any entries before it.
|
|
|
-@item #+ARCHIVE: %s_done::
|
|
|
-This line sets the archive location for the agenda file. It applies for
|
|
|
-all subsequent lines until the next @samp{#+CATEGORY} line, or the end
|
|
|
-of the file. The first such line also applies to any entries before it.
|
|
|
-The corresponding variable is @code{org-archive-location}.
|
|
|
-@item #+PRIORITIES: highest lowest default
|
|
|
-This line sets the limits and the default for the priorities. All three
|
|
|
-must be either letters A-Z or numbers 0-9. The highest priority must
|
|
|
-have a lower ASCII number that the lowest priority.
|
|
|
@item #+TBLFM:
|
|
|
This line contains the formulas for the table directly above the line.
|
|
|
@item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+OPTIONS:
|
|
|
These lines provide settings for exporting files. For more details see
|
|
|
@ref{Export options}.
|
|
|
+@item #+SEQ_TODO: #+TYP_TODO:
|
|
|
+These lines set the TODO keywords and their interpretation in the
|
|
|
+current file. The corresponding variables are @code{org-todo-keywords}
|
|
|
+and @code{org-todo-interpretation}.
|
|
|
@end table
|
|
|
|
|
|
@node The very busy C-c C-c key, Clean view, In-buffer settings, Miscellaneous
|
|
@@ -6575,6 +6859,7 @@ Org-mode.
|
|
|
* Tables in arbitrary syntax:: Orgtbl for LaTeX and other programs
|
|
|
* Dynamic blocks:: Automatically filled blocks
|
|
|
* Special agenda views:: Customized views
|
|
|
+* Using the property API:: Writing programs that use entry properties
|
|
|
@end menu
|
|
|
|
|
|
@node Extensions, Tables in arbitrary syntax, Extensions and Hacking, Extensions and Hacking
|
|
@@ -6948,7 +7233,7 @@ you could add the function @code{org-update-all-dblocks} to a hook, for
|
|
|
example @code{before-save-hook}. @code{org-update-all-dblocks} is
|
|
|
written in a way that is does nothing in buffers that are not in Org-mode.
|
|
|
|
|
|
-@node Special agenda views, , Dynamic blocks, Extensions and Hacking
|
|
|
+@node Special agenda views, Using the property API, Dynamic blocks, Extensions and Hacking
|
|
|
@section Special Agenda Views
|
|
|
@cindex agenda views, user-defined
|
|
|
|
|
@@ -7001,6 +7286,44 @@ MATCH is being ignored."
|
|
|
(org-todo-list "PROJECT")))
|
|
|
@end lisp
|
|
|
|
|
|
+@node Using the property API, , Special agenda views, Extensions and Hacking
|
|
|
+@section Using the property API
|
|
|
+@cindex API, for properties
|
|
|
+
|
|
|
+Here is a description of the functions that can be used to work with
|
|
|
+properties.
|
|
|
+
|
|
|
+@defun org-entry-properties &optional pom which
|
|
|
+Get all properties of the entry at point-or-marker POM.
|
|
|
+This includes the TODO keyword, the tags, time strings for deadline,
|
|
|
+scheduled, and clocking, and any additional properties defined in the
|
|
|
+entry. The return value is an alist, keys may occur multiple times
|
|
|
+if the property key was used several times.
|
|
|
+POM may also be nil, in which case the current entry is used.
|
|
|
+If WHICH is nil or `all', get all properties. If WHICH is
|
|
|
+`special' or `standard', only get that subclass.
|
|
|
+@end defun
|
|
|
+@defun org-entry-get pom property &optional inherit
|
|
|
+Get value of PROPERTY for entry at point-or-marker POM.
|
|
|
+If INHERIT is non-nil and the entry does not have the property,
|
|
|
+then also check higher levels of the hierarchy.
|
|
|
+@end defun
|
|
|
+
|
|
|
+@defun org-entry-delete pom property
|
|
|
+Delete the property PROPERTY from entry at point-or-marker POM.
|
|
|
+@end defun
|
|
|
+
|
|
|
+@defun org-entry-put pom property value
|
|
|
+Set PROPERTY to VALUE for entry at point-or-marker POM.
|
|
|
+@end defun
|
|
|
+
|
|
|
+@defun org-buffer-property-keys &optional include-specials
|
|
|
+Get all property keys in the current buffer.
|
|
|
+@end defun
|
|
|
+
|
|
|
+@defun org-insert-property-drawer
|
|
|
+Insert a property drawer at point.
|
|
|
+@end defun
|
|
|
|
|
|
@node History and Acknowledgments, Index, Extensions and Hacking, Top
|
|
|
@appendix History and Acknowledgments
|
|
@@ -7025,7 +7348,7 @@ goals that Org-mode still has today: To create a new, outline-based,
|
|
|
plain text mode with innovative and intuitive editing features, and to
|
|
|
incorporate project planning functionality directly into a notes file.
|
|
|
|
|
|
-Since the first release, hundreds of emails to me or on
|
|
|
+Since the first release, literally thousands of emails to me or on
|
|
|
@code{emacs-orgmode@@gnu.org} have provided a constant stream of bug
|
|
|
reports, feedback, new ideas, and sometimes patches and add-on code.
|
|
|
Many thanks to everyone who has helped to improve this package. I am
|
|
@@ -7036,6 +7359,8 @@ let me know.
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
|
|
+@item
|
|
|
+@i{Russel Adams} came up with the idea for drawers.
|
|
|
@item
|
|
|
@i{Thomas Baumann} contributed the code for links to the MH-E email
|
|
|
system.
|
|
@@ -7054,7 +7379,9 @@ calculations and improved XEmacs compatibility, in particular by porting
|
|
|
@item
|
|
|
@i{Sacha Chua} suggested to copy some linking code from Planner.
|
|
|
@item
|
|
|
-@i{Eddward DeVilla} proposed and tested checkbox statistics.
|
|
|
+@i{Eddward DeVilla} proposed and tested checkbox statistics. He also
|
|
|
+came up with the idea of properties, and that there should be an API for
|
|
|
+them.
|
|
|
@item
|
|
|
@i{Kees Dullemond} used to edit projects lists directly in HTML and so
|
|
|
inspired some of the early development, including HTML export. He also
|
|
@@ -7078,6 +7405,9 @@ translated David O'Toole's tutorial into French.
|
|
|
@item
|
|
|
@i{Kai Grossjohann} pointed out key-binding conflicts with other packages.
|
|
|
@item
|
|
|
+@i{Scott Jaderholm} proposed footnotes, control over whitespace between
|
|
|
+folded entries, and column view for properties.
|
|
|
+@item
|
|
|
@i{Shidai Liu} ("Leo") asked for embedded LaTeX and tested it. He also
|
|
|
provided frequent feedback and some patches.
|
|
|
@item
|