Bladeren bron

Release 4.53

Carsten Dominik 17 jaren geleden
bovenliggende
commit
4c7908e4c2
9 gewijzigde bestanden met toevoegingen van 1611 en 452 verwijderingen
  1. 1 1
      Makefile
  2. 286 208
      org
  3. 2 1
      org-install.el
  4. 860 0
      org-mouse.el
  5. 349 209
      org.el
  6. BIN
      org.pdf
  7. 111 32
      org.texi
  8. BIN
      orgcard.pdf
  9. 2 1
      orgcard.tex

+ 1 - 1
Makefile

@@ -56,7 +56,7 @@ CP = cp -p
 ##----------------------------------------------------------------------
 
 # The following variables need to be defined by the maintainer
-LISPFILES  = org.el org-publish.el org-install.el
+LISPFILES  = org.el org-publish.el org-mouse.el org-install.el
 ELCFILES   = $(LISPFILES:.el=.elc)
 TEXIFILES  = org.texi
 INFOFILES  = org

+ 286 - 208
org

@@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY
 * Org Mode: (org).      outline-based notes management and organizer
 END-INFO-DIR-ENTRY
 
-   This manual is for Org-mode (version 4.52).
+   This manual is for Org-mode (version 4.53).
 
    Copyright (C) 2004, 2005, 2006 Free Software Foundation
 
@@ -27,7 +27,7 @@ File: org,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)
 Org Mode Manual
 ***************
 
-This manual is for Org-mode (version 4.52).
+This manual is for Org-mode (version 4.53).
 
    Copyright (C) 2004, 2005, 2006 Free Software Foundation
 
@@ -139,11 +139,12 @@ Timestamps
 
 * Time stamps::                 Assigning a time to a tree entry
 * Creating timestamps::         Commands which insert timestamps
+* Custom time format::          If you cannot work with the ISO format
 * Progress logging::            Documenting when what work was done.
 
 Creating timestamps
 
-* The date/time prompt::
+* The date/time prompt::        How org-mode helps you entring date and time
 
 Progress Logging
 
@@ -286,6 +287,15 @@ can be exported as a structured ASCII file, as HTML, or (todo and
 agenda items only) as an iCalendar file.  It can also serve as a
 publishing tool for a set of linked webpages.
 
+   An important design aspect that distinguishes Org-mode from other
+packages like Planner/Muse is that it encougages to store every piece of
+information only once.  In Planner, you have project pages, day pages
+and possibly other files, duplicating some information such as tasks.
+In Org-mode, you only have notes files.  In your notes you mark entries
+as tasks, label them with tags and timestamps.  All necessary lists like
+a schedule for the day, the agenda for a meeting, tasks lists selected
+by tags etc are created dynamically when you need them.
+
    Org-mode keeps simple things simple.  When first fired up, it should
 feel like a straightforward, easy to use outliner.  Complexity is not
 imposed, but a large amount of functionality is available when you need
@@ -297,11 +307,12 @@ example:
      * as an ASCII table editor with spreadsheet-like capabilities
      * as a TODO list editor
      * as a full agenda and planner with deadlines and work scheduling
+     * as an environment to implement David Allen's GTD system
      * as a simple hypertext system, with HTML export
      * as a publishing tool to create a set of interlinked webpages
 
-   The Org-mode table editor can be integrated into any major mode by
-activating the minor Orgtbl-mode.
+   Org-mode's automatic, context sensitive table editor can be
+integrated into any major mode by activating the minor Orgtbl-mode.
 
    There is a website for Org-mode which provides links to the newest
 version of Org-mode, as well as additional information, frequently asked
@@ -554,7 +565,10 @@ File: org,  Node: Structure editing,  Next: Archiving,  Prev: Motion,  Up: Docum
      rest of the line becomes the new headline.  If the command is used
      at the beginning of a headline, the new headline is created before
      the current line.  If at the beginning of any other line, the
-     content of that line is made the new heading.  
+     content of that line is made the new heading.  If the command is
+     used at the end of a folded subtree (i.e. behind the ellipses at
+     the end of a headline), then a headline like the current one will
+     be inserted after the end of the subtree.  
 
 `M-S-<RET>'
      Insert new TODO entry with same level as current heading.  
@@ -2215,6 +2229,7 @@ planning.
 
 * Time stamps::                 Assigning a time to a tree entry
 * Creating timestamps::         Commands which insert timestamps
+* Custom time format::          If you cannot work with the ISO format
 * Progress logging::            Documenting when what work was done.
 
 
@@ -2224,10 +2239,11 @@ File: org,  Node: Time stamps,  Next: Creating timestamps,  Prev: Timestamps,  U
 =========================================
 
 A time stamp is a specification of a date (possibly with time) in a
-special format, either `<2003-09-16 Tue>' or `<2003-09-16 Tue 09:39>'.
-A time stamp can appear anywhere in the headline or body of an org-tree
-entry.  Its presence allows entries to be shown on specific dates in
-the agenda (*note Weekly/Daily agenda::).  We distinguish:
+special format, either `<2003-09-16 Tue>' or `<2003-09-16 Tue
+09:39>'(1).  A time stamp can appear anywhere in the headline or body
+of an org-tree entry.  Its presence allows entries to be shown on
+specific dates in the agenda (*note Weekly/Daily agenda::).  We
+distinguish:
 
 PLAIN TIME STAMP
      A simple time stamp just assigns a date/time to an item.  This is
@@ -2237,6 +2253,15 @@ PLAIN TIME STAMP
      headline of an entry associated with a plain time stamp will be
      shown exactly on that date.
 
+          * Meet Peter at the movies <2006-11-01 Wed 19:15>
+
+INACTIVE TIME STAMP
+     Just like a plain time stamp, but with square brackets instead of
+     angular ones.  These time stamps are inactive in the sense that
+     thay do _not_ trigger an entry to show up in the agenda.
+
+          * Gillian comes late for the fifth time [2006-11-01 Wed]
+
 TIME STAMP RANGE
      Two time stamps connected by `--' denote a time range.  The
      headline will be shown on the first and last day of the range, and
@@ -2284,8 +2309,13 @@ TIME RANGE WITH CLOCK KEYWORD
      enclosed in square brackets instead of angular brackets.  *Note
      Clocking work time::.
 
+   ---------- Footnotes ----------
+
+   (1) This is the standard ISO date/time format.  If you cannot get
+used to these, see *Note Custom time format::
+
 
-File: org,  Node: Creating timestamps,  Next: Progress logging,  Prev: Time stamps,  Up: Timestamps
+File: org,  Node: Creating timestamps,  Next: Custom time format,  Prev: Time stamps,  Up: Timestamps
 
 6.2 Creating timestamps
 =======================
@@ -2318,8 +2348,8 @@ format.
      timestamp in the current line, goto the corresponding date instead.
 
 `C-c C-o'
-     Access the agenda for the date given by the time stamp at point
-     (*note Weekly/Daily agenda::).
+     Access the agenda for the date given by the time stamp or -range at
+     point (*note Weekly/Daily agenda::).
 
 `C-c C-d'
      Insert `DEADLINE' keyword along with a stamp.  The insertion will
@@ -2346,9 +2376,9 @@ format.
 `S-<down>'
      Change the item under the cursor in a timestamp.  The cursor can
      be on a year, month, day, hour or minute.  Note that if the cursor
-     is not at a time stamp, these same keys modify the priority of an
-     item.  (*note Priorities::). The key bindings also conflict with
-     CUA-mode (*note Conflicts::).
+     is in a headline and not at a time stamp, these same keys modify
+     the priority of an item.  (*note Priorities::). The key bindings
+     also conflict with CUA-mode (*note Conflicts::).
 
 `C-c C-y'
      Evaluate a time range by computing the difference between start and
@@ -2357,7 +2387,7 @@ format.
 
 * Menu:
 
-* The date/time prompt::
+* The date/time prompt::        How org-mode helps you entring date and time
 
 
 File: org,  Node: The date/time prompt,  Prev: Creating timestamps,  Up: Creating timestamps
@@ -2415,7 +2445,8 @@ can control the calendar fully from the minibuffer:
      One month back.  
 
 `<RET>'
-     Choose date in calendar (only if nothing typed into minibuffer).
+     Choose date in calendar (only if nothing was typed into
+     minibuffer).
 
    ---------- Footnotes ----------
 
@@ -2423,9 +2454,45 @@ can control the calendar fully from the minibuffer:
 `org-popup-calendar-for-date-prompt'.
 
 
-File: org,  Node: Progress logging,  Prev: Creating timestamps,  Up: Timestamps
+File: org,  Node: Custom time format,  Next: Progress logging,  Prev: Creating timestamps,  Up: Timestamps
+
+6.3 Custom time format
+======================
 
-6.3 Progress Logging
+Org-mode uses the standard ISO notation for dates and times as it is
+defined in ISO 8601.  If you cannot get used to this and require another
+representation of date and time to keep you happy, you can get it by
+customizing the variables `org-display-custom-times' and
+`org-time-stamp-custom-formats'.
+
+`C-c C-x C-t'
+     Toggle the display of custom formats for dates and times.
+
+Org-mode needs the default format for scanning, so the custom date/time
+format does not _replace_ the default format - instead it is put _over_
+the default format using text properties.  This has the following
+consequences:
+   * You cannot place the cursor onto a time stamp anymore, only before
+     or after.
+
+   * The `S-<up>/<down>' keys can no longer be used to adjust each
+     component of a time stamp.  If the cursor is at the beginning of
+     the stamp, `S-<up>/<down>' will change the stamp by one day, just
+     like `S-<left>/<right>'.  At the end of the stamp, the time will
+     be changed by one minute.
+
+   * When you delete a time stamp character-by-character, it will only
+     disappear from the buffer after _all_ (invisible) characters
+     belonging to the ISO timestamp have been removed.
+
+   * If the custom time stamp format is longer than the default and you
+     are using dates in tables, table alignment will be messed up.  If
+     the custom format is shorter, things do work as expected.
+
+
+File: org,  Node: Progress logging,  Prev: Custom time format,  Up: Timestamps
+
+6.4 Progress Logging
 ====================
 
 Org-mode can automatically record a time stamp when you mark a TODO item
@@ -2441,7 +2508,7 @@ stop working on an aspect of a project.
 
 File: org,  Node: Closing items,  Next: Clocking work time,  Prev: Progress logging,  Up: Progress logging
 
-6.3.1 Closing items
+6.4.1 Closing items
 -------------------
 
 If you want to keep track of _when_ a certain TODO item was finished,
@@ -2462,7 +2529,7 @@ possibility to record an additional note together with a timestamp.
 
 File: org,  Node: Clocking work time,  Prev: Closing items,  Up: Progress logging
 
-6.3.2 Clocking work time
+6.4.2 Clocking work time
 ------------------------
 
 Org-mode allows you to clock the time you spent on specific tasks in a
@@ -2479,7 +2546,8 @@ also computes the total time spent on each subtree of a project.
      Stop the clock (clock-out).  The inserts another timestamp at the
      same location where the clock was last started.  It also directly
      computes the resulting time in inserts it after the time range as
-     `=> HH:MM'.  
+     `=> HH:MM'.  See the variable `org-log-done' for the possibility to
+     record an additional note together with a the clock-out time stamp.  
 
 `C-c C-y'
      Recompute the time interval after changing one of the time stamps.
@@ -2499,7 +2567,8 @@ also computes the total time spent on each subtree of a project.
      This puts overlays at the end of each headline, showing the total
      time recorded under that heading, including the time of any
      subheadings. You can use visibility cycling to study the tree, but
-     the overlays disappear automatically when the buffer is changed.  
+     the overlays disappear when you change the buffer (see variable
+     `org-remove-highlights-with-change') or press `C-c C-c'.  
 
 `C-c C-x C-r'
      Insert a dynamic block (*note Dynamic blocks::) containing a clock
@@ -2535,9 +2604,6 @@ also computes the total time spent on each subtree of a project.
 the agenda (*note Weekly/Daily agenda::) to show which tasks have been
 worked on or closed during a day.
 
-   See the variable `org-log-done' for the possibility to record an
-additional note together with a the clock-out time stamp.
-
    ---------- Footnotes ----------
 
    (1) Note that all parameters must be specified in a single line -
@@ -2725,21 +2791,21 @@ operator `&' is optional when `+' or `-' is present.  Examples:
 
    If you are using multi-state TODO keywords (*note TODO
 extensions::), it can be useful to also match on the TODO keyword.
-This can be done by adding a condition after a double slash to a tags
-match.  The syntax is similar to the tag matches, but should be applied
-with consideration: For example, a positive selection on several TODO
+This can be done by adding a condition after a slash to a tags match.
+The syntax is similar to the tag matches, but should be applied with
+consideration: For example, a positive selection on several TODO
 keywords can not meaningfully be combined with boolean AND.  However,
 _negative selection_ combined with AND can be meaningful.  Examples:
 
-`WORK//WAITING'
+`WORK/WAITING'
      Select `:WORK:'-tagged TODO lines with the specific TODO keyword
      `WAITING'.
 
-`WORK//-WAITING-NEXT'
+`WORK/-WAITING-NEXT'
      Select `:WORK:'-tagged TODO lines that are neither `WAITING' nor
      `NEXT'
 
-`WORK//+WAITING|+NEXT'
+`WORK/+WAITING|+NEXT'
      Select `:WORK:'-tagged TODO lines that are either `WAITING' or
      `NEXT'.
 
@@ -4487,6 +4553,10 @@ file is visited again in a new Emacs session.
           showstars  show all stars starting a headline
           odd        allow only odd outline levels (1,3,...)
           oddeven    allow all outline levels
+     To turn on custom format overlayes over time stamps (variables
+     `org-put-time-stamp-overlays' and
+     `org-time-stamp-overlay-formats'), use
+          customtime overlay custom time format
 
 `#+SEQ_TODO:   #+TYP_TODO:'
      These lines set the TODO keywords and their interpretation in the
@@ -5065,7 +5135,7 @@ Index
 * active region <2>:                     ASCII export.        (line   9)
 * active region <3>:                     Built-in table editor.
                                                               (line 165)
-* active region:                         Structure editing.   (line  51)
+* active region:                         Structure editing.   (line  54)
 * agenda:                                Weekly/Daily agenda. (line   6)
 * agenda dispatcher:                     Agenda dispatcher.   (line   6)
 * agenda files:                          Agenda files.        (line   6)
@@ -5110,8 +5180,8 @@ Index
 * checkboxes:                            Checkboxes.          (line   6)
 * children, subtree visibility state:    Visibility cycling.  (line  10)
 * clean outline view:                    Clean view.          (line   6)
-* CLOCK keyword:                         Time stamps.         (line  61)
-* CLOSED keyword:                        Time stamps.         (line  55)
+* CLOCK keyword:                         Time stamps.         (line  71)
+* CLOSED keyword:                        Time stamps.         (line  65)
 * column formula:                        Column formulas.     (line   6)
 * commands, in agenda buffer:            Agenda commands.     (line   6)
 * comment lines:                         Comment lines.       (line   6)
@@ -5135,17 +5205,19 @@ Index
 * creating timestamps:                   Creating timestamps. (line   6)
 * CUA.el:                                Conflicts.           (line  15)
 * custom agenda views:                   Custom agenda views. (line   6)
+* custom date/time format:               Custom time format.  (line   6)
 * custom search strings:                 Custom searches.     (line   6)
 * customization:                         Customization.       (line   6)
 * cutting, of subtrees:                  Structure editing.   (line   6)
 * cycling, of TODO states:               TODO basics.         (line  13)
 * cycling, visibility:                   Visibility cycling.  (line   6)
 * daily agenda:                          Weekly/Daily agenda. (line   6)
+* date format, custom:                   Custom time format.  (line   6)
 * date stamps <1>:                       Time stamps.         (line   6)
 * date stamps:                           Timestamps.          (line   6)
 * date, reading in minibuffer:           The date/time prompt.
                                                               (line   6)
-* DEADLINE keyword:                      Time stamps.         (line  43)
+* DEADLINE keyword:                      Time stamps.         (line  53)
 * deadlines:                             Time stamps.         (line   6)
 * demotion, of subtrees:                 Structure editing.   (line   6)
 * diary entries, creating from agenda:   Agenda commands.     (line 179)
@@ -5171,7 +5243,7 @@ Index
 * external archiving:                    Moving subtrees.     (line   6)
 * external links:                        External links.      (line   6)
 * external links, in HTML export:        HTML export.         (line  35)
-* FAQ:                                   Summary.             (line  41)
+* FAQ:                                   Summary.             (line  51)
 * feedback:                              Feedback.            (line   6)
 * file links:                            External links.      (line   6)
 * file links, searching:                 Search options.      (line   6)
@@ -5215,6 +5287,7 @@ Index
 * hyperlinks:                            Hyperlinks.          (line   6)
 * iCalendar export:                      iCalendar export.    (line   6)
 * in-buffer settings:                    In-buffer settings.  (line   6)
+* inactive timestamp:                    Time stamps.         (line  24)
 * index, of published pages:             Project page index.  (line   6)
 * Info links:                            External links.      (line   6)
 * inheritance, of tags:                  Tag inheritance.     (line   6)
@@ -5310,13 +5383,13 @@ Index
 * region, active <2>:                    ASCII export.        (line   9)
 * region, active <3>:                    Built-in table editor.
                                                               (line 165)
-* region, active:                        Structure editing.   (line  51)
+* region, active:                        Structure editing.   (line  54)
 * remember.el <1>:                       Cooperation.         (line  33)
 * remember.el:                           Remember.            (line   6)
 * remote editing, from agenda:           Agenda commands.     (line 100)
 * richer text:                           Enhancing text.      (line   6)
 * RMAIL links:                           External links.      (line   6)
-* SCHEDULED keyword:                     Time stamps.         (line  30)
+* SCHEDULED keyword:                     Time stamps.         (line  40)
 * scheduling:                            Time stamps.         (line   6)
 * search option in file links:           Search options.      (line   6)
 * search strings, custom:                Custom searches.     (line   6)
@@ -5379,6 +5452,7 @@ Index
 * TeX-like syntax for sub- and superscripts: Export options.  (line  25)
 * thanks:                                History and Acknowledgments.
                                                               (line   6)
+* time format, custom:                   Custom time format.  (line   6)
 * time grid:                             Time-of-day specifications.
                                                               (line  26)
 * time stamps <1>:                       Time stamps.         (line   6)
@@ -5389,8 +5463,9 @@ Index
                                                               (line   6)
 * time-sorted view:                      Timeline.            (line   6)
 * timeline, single file:                 Timeline.            (line   6)
-* timerange:                             Time stamps.         (line  21)
-* timestamp:                             Time stamps.         (line  13)
+* timerange:                             Time stamps.         (line  31)
+* timestamp:                             Time stamps.         (line  14)
+* timestamp, inactive:                   Time stamps.         (line  24)
 * timestamps, creating:                  Creating timestamps. (line   6)
 * TODO items:                            TODO items.          (line   6)
 * TODO keyword matching:                 Global TODO list.    (line  17)
@@ -5403,7 +5478,7 @@ Index
 * transient-mark-mode <2>:               ASCII export.        (line   9)
 * transient-mark-mode <3>:               Built-in table editor.
                                                               (line 165)
-* transient-mark-mode:                   Structure editing.   (line  51)
+* transient-mark-mode:                   Structure editing.   (line  54)
 * trees, sparse:                         Sparse trees.        (line   6)
 * trees, visibility:                     Visibility cycling.  (line   6)
 * tty keybindings:                       TTY keys.            (line   6)
@@ -5561,7 +5636,7 @@ Key Index
                                                               (line 119)
 * C-c C-s <1>:                           Agenda commands.     (line 136)
 * C-c C-s:                               Creating timestamps. (line  48)
-* C-c C-t <1>:                           Clocking work time.  (line  25)
+* C-c C-t <1>:                           Clocking work time.  (line  26)
 * C-c C-t:                               TODO basics.         (line  13)
 * C-c C-u:                               Motion.              (line  18)
 * C-c C-v:                               TODO basics.         (line  26)
@@ -5569,25 +5644,26 @@ Key Index
 * C-c C-x C-a:                           ARCHIVE tag.         (line  28)
 * C-c C-x C-b:                           Checkboxes.          (line  38)
 * C-c C-x C-c:                           Agenda commands.     (line 201)
-* C-c C-x C-d:                           Clocking work time.  (line  33)
+* C-c C-x C-d:                           Clocking work time.  (line  34)
 * C-c C-x C-i:                           Clocking work time.  (line  12)
-* C-c C-x C-k:                           Structure editing.   (line  36)
+* C-c C-x C-k:                           Structure editing.   (line  39)
 * C-c C-x C-l:                           Processing LaTeX fragments.
                                                               (line   9)
 * C-c C-x C-o:                           Clocking work time.  (line  14)
-* C-c C-x C-r:                           Clocking work time.  (line  40)
+* C-c C-x C-r:                           Clocking work time.  (line  42)
+* C-c C-x C-t:                           Custom time format.  (line  12)
 * C-c C-x C-u:                           Dynamic blocks.      (line  21)
 * C-c C-x C-w <1>:                       Built-in table editor.
                                                               (line 108)
-* C-c C-x C-w:                           Structure editing.   (line  36)
-* C-c C-x C-x:                           Clocking work time.  (line  29)
+* C-c C-x C-w:                           Structure editing.   (line  39)
+* C-c C-x C-x:                           Clocking work time.  (line  30)
 * C-c C-x C-y <1>:                       Built-in table editor.
                                                               (line 112)
-* C-c C-x C-y:                           Structure editing.   (line  43)
+* C-c C-x C-y:                           Structure editing.   (line  46)
 * C-c C-x M-w <1>:                       Built-in table editor.
                                                               (line 105)
-* C-c C-x M-w:                           Structure editing.   (line  40)
-* C-c C-y <1>:                           Clocking work time.  (line  20)
+* C-c C-x M-w:                           Structure editing.   (line  43)
+* C-c C-y <1>:                           Clocking work time.  (line  21)
 * C-c C-y:                               Creating timestamps. (line  66)
 * C-c l:                                 Handling links.      (line   9)
 * C-c {:                                 CDLaTeX mode.        (line  21)
@@ -5602,7 +5678,7 @@ Key Index
 * C-u C-c C-l:                           Handling links.      (line  43)
 * C-u C-c C-x C-a:                       ARCHIVE tag.         (line  31)
 * C-u C-c C-x C-u <1>:                   Dynamic blocks.      (line  22)
-* C-u C-c C-x C-u:                       Clocking work time.  (line  67)
+* C-u C-c C-x C-u:                       Clocking work time.  (line  69)
 * D:                                     Agenda commands.     (line  68)
 * d:                                     Agenda commands.     (line  65)
 * f:                                     Agenda commands.     (line  44)
@@ -5617,12 +5693,12 @@ Key Index
                                                               (line  82)
 * M-<left> <1>:                          Built-in table editor.
                                                               (line  72)
-* M-<left>:                              Structure editing.   (line  18)
+* M-<left>:                              Structure editing.   (line  21)
 * M-<RET> <1>:                           Plain lists.         (line  42)
 * M-<RET>:                               Structure editing.   (line   6)
 * M-<right> <1>:                         Built-in table editor.
                                                               (line  72)
-* M-<right>:                             Structure editing.   (line  21)
+* M-<right>:                             Structure editing.   (line  24)
 * M-<TAB> <1>:                           Completion.          (line  10)
 * M-<TAB> <2>:                           Setting tags.        (line   6)
 * M-<TAB>:                               Per file keywords.   (line  17)
@@ -5631,26 +5707,26 @@ Key Index
 * M-S-<down> <1>:                        Built-in table editor.
                                                               (line  89)
 * M-S-<down> <2>:                        Plain lists.         (line  59)
-* M-S-<down>:                            Structure editing.   (line  33)
+* M-S-<down>:                            Structure editing.   (line  36)
 * M-S-<left> <1>:                        The date/time prompt.
                                                               (line  50)
 * M-S-<left> <2>:                        Built-in table editor.
                                                               (line  76)
 * M-S-<left> <3>:                        Plain lists.         (line  65)
-* M-S-<left>:                            Structure editing.   (line  24)
+* M-S-<left>:                            Structure editing.   (line  27)
 * M-S-<RET> <1>:                         Checkboxes.          (line  52)
 * M-S-<RET> <2>:                         Plain lists.         (line  52)
-* M-S-<RET>:                             Structure editing.   (line  15)
+* M-S-<RET>:                             Structure editing.   (line  18)
 * M-S-<right> <1>:                       The date/time prompt.
                                                               (line  47)
 * M-S-<right> <2>:                       Built-in table editor.
                                                               (line  79)
 * M-S-<right> <3>:                       Plain lists.         (line  65)
-* M-S-<right>:                           Structure editing.   (line  27)
+* M-S-<right>:                           Structure editing.   (line  30)
 * M-S-<up> <1>:                          Built-in table editor.
                                                               (line  86)
 * M-S-<up> <2>:                          Plain lists.         (line  59)
-* M-S-<up>:                              Structure editing.   (line  30)
+* M-S-<up>:                              Structure editing.   (line  33)
 * mouse-1 <1>:                           Agenda commands.     (line  35)
 * mouse-1 <2>:                           The date/time prompt.
                                                               (line  32)
@@ -5706,153 +5782,155 @@ Key Index
 
 Tag Table:
 Node: Top964
-Node: Introduction10239
-Node: Summary10654
-Node: Installation12921
-Node: Activation14299
-Node: Feedback15548
-Node: Document structure16317
-Node: Outlines17091
-Node: Headlines17751
-Node: Visibility cycling18374
-Ref: Visibility cycling-Footnote-119849
-Ref: Visibility cycling-Footnote-219907
-Node: Motion19957
-Node: Structure editing20741
-Node: Archiving22850
-Node: ARCHIVE tag23408
-Node: Moving subtrees25201
-Node: Sparse trees26242
-Ref: Sparse trees-Footnote-128373
-Ref: Sparse trees-Footnote-228465
-Node: Plain lists28580
-Ref: Plain lists-Footnote-132105
-Ref: Plain lists-Footnote-232462
-Node: Tables32644
-Node: Built-in table editor33192
-Node: Narrow columns40800
-Ref: Narrow columns-Footnote-142739
-Node: Table calculations42785
-Node: Formula syntax44105
-Ref: Formula syntax-Footnote-147010
-Node: Lisp formulas47310
-Node: Column formulas48099
-Node: Advanced features49861
-Node: Named-field formulas53115
-Node: Editing/debugging formulas53755
-Node: Appetizer55513
-Node: orgtbl-mode56616
-Node: table.el57107
-Node: Hyperlinks58084
-Node: Link format58857
-Node: Internal links60150
-Ref: Internal links-Footnote-162139
-Node: Radio targets62271
-Node: CamelCase links62986
-Node: External links63580
-Node: Handling links65711
-Ref: Handling links-Footnote-170363
-Ref: Handling links-Footnote-270600
-Node: Link abbreviations70674
-Node: Search options72353
-Ref: Search options-Footnote-174131
-Node: Custom searches74212
-Node: Remember75260
-Node: TODO items78950
-Node: TODO basics79932
-Node: TODO extensions81459
-Node: Workflow states82254
-Node: TODO types83122
-Ref: TODO types-Footnote-184780
-Node: Per file keywords84862
-Ref: Per file keywords-Footnote-186316
-Node: Priorities86517
-Node: Breaking down tasks87761
-Ref: Breaking down tasks-Footnote-188281
-Node: Checkboxes88377
-Node: Timestamps91113
-Node: Time stamps91503
-Node: Creating timestamps94600
-Node: The date/time prompt97143
-Ref: The date/time prompt-Footnote-198827
-Node: Progress logging98933
-Node: Closing items99463
-Node: Clocking work time100367
-Ref: Clocking work time-Footnote-1103930
-Node: Tags104056
-Node: Tag inheritance104818
-Node: Setting tags105755
-Ref: Setting tags-Footnote-1109271
-Ref: Setting tags-Footnote-2109383
-Node: Tag searches109463
-Node: Agenda views111474
-Node: Agenda files113567
-Ref: Agenda files-Footnote-1114527
-Ref: Agenda files-Footnote-2114676
-Node: Agenda dispatcher114869
-Node: Weekly/Daily agenda116486
-Node: Calendar/Diary integration117451
-Node: Global TODO list118789
-Node: Matching headline tags120949
-Node: Timeline122007
-Node: Presentation and sorting122670
-Node: Categories123448
-Node: Time-of-day specifications124112
-Node: Sorting of agenda items126090
-Node: Agenda commands127372
-Node: Custom agenda views133260
-Node: Storing searches133935
-Node: Block agenda135847
-Node: Setting Options137077
-Node: Batch processing139789
-Node: Embedded LaTeX140919
-Ref: Embedded LaTeX-Footnote-1142011
-Node: Math symbols142201
-Node: Subscripts and Superscripts142966
-Node: LaTeX fragments143810
-Ref: LaTeX fragments-Footnote-1145918
-Node: Processing LaTeX fragments146180
-Node: CDLaTeX mode147126
-Ref: CDLaTeX mode-Footnote-1149610
-Node: Exporting149758
-Node: ASCII export151072
-Node: HTML export152362
-Node: XOXO export155198
-Node: iCalendar export155637
-Node: Text interpretation157460
-Node: Comment lines157939
-Node: Enhancing text158410
-Node: Export options160102
-Node: Publishing161769
-Ref: Publishing-Footnote-1162565
-Node: Configuration162761
-Node: Project alist163479
-Node: Sources and destinations164545
-Node: Selecting files165275
-Node: Publishing action166023
-Node: Publishing options167256
-Node: Publishing links169408
-Node: Project page index170921
-Node: Sample configuration171699
-Node: Simple example172191
-Node: Complex example172864
-Node: Triggering publication174940
-Node: Miscellaneous175625
-Node: Completion176259
-Node: Customization177730
-Node: In-buffer settings178315
-Node: The very busy C-c C-c key181736
-Node: Clean view183380
-Node: TTY keys185957
-Node: Interaction187566
-Node: Cooperation187963
-Node: Conflicts189830
-Node: Bugs191422
-Node: Extensions and Hacking193045
-Node: Extensions193531
-Node: Dynamic blocks195101
-Node: History and Acknowledgments197028
-Node: Index202036
-Node: Key Index228686
+Node: Introduction10362
+Node: Summary10777
+Node: Installation13689
+Node: Activation15067
+Node: Feedback16316
+Node: Document structure17085
+Node: Outlines17859
+Node: Headlines18519
+Node: Visibility cycling19142
+Ref: Visibility cycling-Footnote-120617
+Ref: Visibility cycling-Footnote-220675
+Node: Motion20725
+Node: Structure editing21509
+Node: Archiving23825
+Node: ARCHIVE tag24383
+Node: Moving subtrees26176
+Node: Sparse trees27217
+Ref: Sparse trees-Footnote-129348
+Ref: Sparse trees-Footnote-229440
+Node: Plain lists29555
+Ref: Plain lists-Footnote-133080
+Ref: Plain lists-Footnote-233437
+Node: Tables33619
+Node: Built-in table editor34167
+Node: Narrow columns41775
+Ref: Narrow columns-Footnote-143714
+Node: Table calculations43760
+Node: Formula syntax45080
+Ref: Formula syntax-Footnote-147985
+Node: Lisp formulas48285
+Node: Column formulas49074
+Node: Advanced features50836
+Node: Named-field formulas54090
+Node: Editing/debugging formulas54730
+Node: Appetizer56488
+Node: orgtbl-mode57591
+Node: table.el58082
+Node: Hyperlinks59059
+Node: Link format59832
+Node: Internal links61125
+Ref: Internal links-Footnote-163114
+Node: Radio targets63246
+Node: CamelCase links63961
+Node: External links64555
+Node: Handling links66686
+Ref: Handling links-Footnote-171338
+Ref: Handling links-Footnote-271575
+Node: Link abbreviations71649
+Node: Search options73328
+Ref: Search options-Footnote-175106
+Node: Custom searches75187
+Node: Remember76235
+Node: TODO items79925
+Node: TODO basics80907
+Node: TODO extensions82434
+Node: Workflow states83229
+Node: TODO types84097
+Ref: TODO types-Footnote-185755
+Node: Per file keywords85837
+Ref: Per file keywords-Footnote-187291
+Node: Priorities87492
+Node: Breaking down tasks88736
+Ref: Breaking down tasks-Footnote-189256
+Node: Checkboxes89352
+Node: Timestamps92088
+Node: Time stamps92549
+Ref: Time stamps-Footnote-196038
+Node: Creating timestamps96154
+Node: The date/time prompt98779
+Ref: The date/time prompt-Footnote-1100472
+Node: Custom time format100578
+Node: Progress logging102137
+Node: Closing items102666
+Node: Clocking work time103570
+Ref: Clocking work time-Footnote-1107196
+Node: Tags107322
+Node: Tag inheritance108084
+Node: Setting tags109021
+Ref: Setting tags-Footnote-1112537
+Ref: Setting tags-Footnote-2112649
+Node: Tag searches112729
+Node: Agenda views114729
+Node: Agenda files116822
+Ref: Agenda files-Footnote-1117782
+Ref: Agenda files-Footnote-2117931
+Node: Agenda dispatcher118124
+Node: Weekly/Daily agenda119741
+Node: Calendar/Diary integration120706
+Node: Global TODO list122044
+Node: Matching headline tags124204
+Node: Timeline125262
+Node: Presentation and sorting125925
+Node: Categories126703
+Node: Time-of-day specifications127367
+Node: Sorting of agenda items129345
+Node: Agenda commands130627
+Node: Custom agenda views136515
+Node: Storing searches137190
+Node: Block agenda139102
+Node: Setting Options140332
+Node: Batch processing143044
+Node: Embedded LaTeX144174
+Ref: Embedded LaTeX-Footnote-1145266
+Node: Math symbols145456
+Node: Subscripts and Superscripts146221
+Node: LaTeX fragments147065
+Ref: LaTeX fragments-Footnote-1149173
+Node: Processing LaTeX fragments149435
+Node: CDLaTeX mode150381
+Ref: CDLaTeX mode-Footnote-1152865
+Node: Exporting153013
+Node: ASCII export154327
+Node: HTML export155617
+Node: XOXO export158453
+Node: iCalendar export158892
+Node: Text interpretation160715
+Node: Comment lines161194
+Node: Enhancing text161665
+Node: Export options163357
+Node: Publishing165024
+Ref: Publishing-Footnote-1165820
+Node: Configuration166016
+Node: Project alist166734
+Node: Sources and destinations167800
+Node: Selecting files168530
+Node: Publishing action169278
+Node: Publishing options170511
+Node: Publishing links172663
+Node: Project page index174176
+Node: Sample configuration174954
+Node: Simple example175446
+Node: Complex example176119
+Node: Triggering publication178195
+Node: Miscellaneous178880
+Node: Completion179514
+Node: Customization180985
+Node: In-buffer settings181570
+Node: The very busy C-c C-c key185190
+Node: Clean view186834
+Node: TTY keys189411
+Node: Interaction191020
+Node: Cooperation191417
+Node: Conflicts193284
+Node: Bugs194876
+Node: Extensions and Hacking196499
+Node: Extensions196985
+Node: Dynamic blocks198555
+Node: History and Acknowledgments200482
+Node: Index205490
+Node: Key Index232505
 
 End Tag Table

+ 2 - 1
org-install.el

@@ -8,7 +8,8 @@
 (autoload 'turn-on-orgtbl "org" "Org tables as a minor mode.")
 (autoload 'org-cycle "org" "Subtree visibility cycling." t)
 (autoload 'org-global-cycle "org" "Global visibility cycling." t)
-(autoload 'org-agenda-list "org" "Produce calendar-loke agenda view." t)
+(autoload 'org-agenda-list "org" "Produce calendar-like agenda view." t)
+(autoload 'org-cycle-agenda-files "org" "Cycle through agenda-files." t)
 (autoload 'org-todo-list "org" "Produce global TODO list." t)
 (autoload 'org-tags-view "org" "Produce global TAGS agenda view." t)
 (autoload 'org-remember-annotation "org")

+ 860 - 0
org-mouse.el

@@ -0,0 +1,860 @@
+;;; org-mouse.el --- Better mouse support for org-mode
+
+;; Copyright (c) 2006 Piotr Zielinski
+;;
+;; Author: Piotr Zielinski <piotr dot zielinski at gmail dot com>
+;; Version: 0.18
+;; $Id: org-mouse.el 254 2006-10-26 21:15:52Z pz215 $
+;; 
+;; The latest version of this file is available from
+;;
+;; http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el
+;;
+;; This file is *NOT* part of GNU Emacs.
+;; This file is distributed under the same terms as GNU Emacs.
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2 of
+;; the License, or (at your option) any later version.
+
+;; This program is distributed in the hope that it will be
+;; useful, but WITHOUT ANY WARRANTY; without even the implied
+;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+;; PURPOSE.  See the GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public
+;; License along with this program; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+;; MA 02111-1307 USA
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;;; Commentary:
+;;
+;; Org-mouse provides better mouse support for org-mode.  Org-mode is
+;; a mode for keeping notes, maintaining ToDo lists, and doing project
+;; planning with a fast and effective plain-text system.  It is
+;; available from
+;;
+;; http://staff.science.uva.nl/~dominik/Tools/org/
+;;
+;; Org-mouse implements the following features:
+;; * following links with the left mouse button (in Emacs 22)
+;; * subtree expansion/collapse (org-cycle) with the left mouse button
+;; * several context menus on the right mouse button:
+;;    + general text
+;;    + headlines
+;;    + timestamps
+;;    + priorities
+;;    + links
+;;    + tags
+;; * promoting/demoting/moving subtrees with mouse-3
+;;    + if the drag starts and ends in the same line then promote/demote
+;;    + otherwise move the subtree 
+;; * date/time extraction from selected text (requires a python script)
+;;   (eg. select text from your email and click "Add Appointment")
+;;
+;; The python script that automatically extracts date/time information
+;; from a piece of English text is available from:
+;;
+;; http://www.cl.cam.ac.uk/~pz215/files/timeparser.py
+;;
+;; Use
+;; ------------
+;;
+;; To use this package, put the following line in your .emacs:
+;;
+;;    (require 'org-mouse)
+;;
+;; Tested with Emacs 22.0.50, org-mode 4.33
+
+;; Fixme:
+;; + deal with folding / unfolding issues
+
+;; TODO (This list is only theoretical, if you'd like to have some
+;; feature implemented or a bug fix please send me an email, even if
+;; something similar appears in the list below.  This will help me get
+;; the priorities right.):
+
+;; + The "New Appointment" menu entry seems out of place.  Remove it
+;;   and enhance the time/data selection function so that if the text
+;;   in the clipboard contains a date/time, then set that date as the
+;;   default (instead of "today")
+
+;; + org-store-link, insert link
+;; + org tables
+;; + occur with the current word/tag (same menu item)
+;; + ctrl-c ctrl-c, for example, renumber the current list
+;; + internal links
+
+;; Please email me with new feature suggestions / bugs
+
+;; History:
+;;
+;; Version 0.19
+;; + added support for dragging URLs to the org-buffer
+;;
+;; Version 0.18
+;; + added support for agenda blocks
+;;
+;; Version 0.17
+;; + toggle checkboxes with a single click
+;;
+;; Version 0.16
+;; + added support for checkboxes
+;;
+;; Version 0.15
+;; + org-mode now works with the Agenda buffer as well
+;;
+;; Version 0.14
+;; + added a menu option that converts plain list items to outline items
+;;
+;; Version 0.13 
+;; + "Insert Heading" now inserts a sibling heading if the point is
+;;   on "***" and a child heading otherwise
+;; 
+;; Version 0.12
+;; + compatible with Emacs 21
+;; + custom agenda commands added to the main menu
+;; + moving trees should now work between windows in the same frame
+;;
+;; Version 0.11
+;; + fixed org-mouse-at-link (thanks to Carsten)
+;; + removed [follow-link] bindings
+;;
+;; Version 0.10
+;; + added a menu option to remove highlights
+;; + compatible with org-mode 4.21 now
+;;
+;; Version 0.08: 
+;; + trees can be moved/promoted/demoted by dragging with the right
+;;   mouse button (mouse-3)
+;; + small changes in the above function
+;;
+;; Versions 0.01 -- 0.07: (I don't remember)
+
+(eval-when-compile (require 'cl))
+
+(defvar org-mouse-plain-list-regexp "\\([ \t]*\\)\\([-+*]\\|[0-9]+[.)]\\) ")
+(defvar org-mouse-direct t)
+
+(defgroup org-mouse nil
+  "Org-mouse"
+  :tag "Org Mouse."
+  :group 'org)
+
+(defcustom org-mouse-punctuation ":"
+  ""
+  :group 'org-mouse
+  :type 'string)
+
+
+(defun org-mouse-re-search-line (regexp)
+  "Searches the current line for a given regular expression."
+  (beginning-of-line)
+  (re-search-forward regexp (point-at-eol) t))
+
+(defun org-mouse-end-headline ()
+  "Go to the end of current headline (ignoring tags)."
+  (interactive)
+  (end-of-line)
+  (skip-chars-backward "\t ")
+  (when (looking-back ":[A-Za-z]+:")
+    (skip-chars-backward ":A-Za-z")
+    (skip-chars-backward "\t ")))
+
+
+(defun org-mouse-show-context-menu (event prefix)
+  (interactive "@e \nP")
+  (if (and (= (event-click-count event) 1)
+	   (or (not mark-active) 
+	       (sit-for (/ double-click-time 1000.0))))
+      (progn
+ 	(select-window (posn-window (event-start event)))
+ 	(goto-char (posn-point (event-start event)))
+	(when (not (eolp)) (save-excursion (run-hooks 'post-command-hook)))
+	(let ((redisplay-dont-pause t))
+	  (sit-for 0))
+	(if (functionp org-mouse-context-menu-function)
+	    (funcall org-mouse-context-menu-function)
+	  (mouse-major-mode-menu event prefix))
+	)
+    (setq this-command 'mouse-save-then-kill)
+    (mouse-save-then-kill event)))
+
+
+(defun org-mouse-line-position ()
+  "Returns :beginning :middle :end"
+  (cond
+   ((eolp) :end)
+   ((org-mouse-bolp) :begin)
+   (t :middle)))
+
+(defun org-mouse-empty-line ()
+  (save-excursion (beginning-of-line) (looking-at "[ \t]*$")))
+
+(defun org-mouse-next-heading ()
+  "Goes to the next heading and if there is none, it ensures that the point is at the beginning of an empty line."
+  (unless (outline-next-heading)
+    (beginning-of-line)
+    (unless (org-mouse-empty-line)
+      (end-of-line)
+      (newline))))
+
+(defun org-mouse-insert-heading ()
+  (interactive)
+  (case (org-mouse-line-position)
+    (:begin (beginning-of-line)
+	    (org-insert-heading))
+    (t (org-mouse-next-heading)
+       (org-insert-heading))))
+
+(defun org-mouse-timestamp-today (&optional shift units) 
+  (interactive)
+  (flet ((org-read-date (x &optional y) (current-time)))
+     (org-time-stamp nil))
+  (when shift
+    (org-timestamp-change shift units)))
+
+(defun org-mouse-keyword-menu (keywords function &optional selected itemformat)
+  (mapcar 
+   (lambda (keyword) 
+     (vector (cond
+	      ((functionp itemformat) (funcall itemformat keyword))
+	      ((stringp itemformat) (format itemformat keyword))
+	      (t keyword))
+	     `(funcall ,function ,keyword)
+	     :style (cond 
+		     ((null selected) t)
+		     ((functionp selected) 'toggle)
+		     (t 'radio))
+	     :selected `(if (functionp ,selected) 
+			    (funcall ,selected ,keyword)
+			  (equal ,selected ,keyword))))
+    keywords))
+     
+(defun org-mouse-remove-match-and-spaces ()
+  (interactive)
+  (replace-match "")
+  (when (looking-at " +")
+    (replace-match "")))
+  
+
+(defun org-mouse-keyword-replace-menu (keywords &optional group itemformat)
+  (setq group (or group 0))
+  (append
+   (org-mouse-keyword-menu 
+    keywords
+    `(lambda (keyword) (replace-match keyword t t nil ,group))
+    `(match-string ,group)
+    itemformat)
+   '(["None" org-mouse-remove-match-and-spaces t])))
+     
+(defvar org-mouse-context-menu-function nil)
+(make-variable-buffer-local 'org-mouse-context-menu-function)
+
+(defun org-mouse-show-headlines ()
+  (interactive) 
+  (let ((this-command 'org-cycle) 
+	(last-command 'org-cycle)
+	(org-cycle-global-status nil))
+    (org-cycle '(4))
+    (org-cycle '(4))))
+
+(defun org-mouse-show-overview ()
+  (interactive) 
+  (let ((org-cycle-global-status nil))
+    (org-cycle '(4))))
+
+(defun org-mouse-set-priority (priority)
+  (flet ((read-char-exclusive () priority))
+    (org-priority)))
+
+(defvar org-mouse-priority-regexp "\\[#\\([A-Z]\\)\\]"
+  "Regular expression matching the priority indicator.  Differs from `org-priority-regexp' in that it doesn't contain the leading '.*?'.")
+
+
+(defun org-mouse-get-priority (&optional default)
+  (save-excursion 
+    (if (org-mouse-re-search-line org-mouse-priority-regexp)
+	(match-string 1)
+      (when default (char-to-string org-default-priority)))))
+
+(defun org-mouse-at-link ()
+  (and (eq (get-text-property (point) 'face) 'org-link)
+       (save-excursion
+         (goto-char (previous-single-property-change (point) 'face))
+         (or (looking-at org-bracket-link-regexp)
+             (looking-at org-angle-link-re)
+             (looking-at org-plain-link-re)))))
+
+
+(defun org-mouse-delete-timestamp ()
+  "Deletes the current timestamp as well as the preceding
+SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
+  (when (or (org-at-date-range-p) (org-at-timestamp-p))
+    (replace-match "")			; delete the timestamp
+    (skip-chars-backward " :A-Z")
+    (when (looking-at " *[A-Z][A-Z]+:")
+      (replace-match ""))))
+
+(defun org-mouse-looking-at (regexp skipchars &optional movechars) 
+  (save-excursion
+    (let ((point (point)))
+      (if (looking-at regexp) t
+	(skip-chars-backward skipchars)
+	(forward-char (or movechars 0))
+	(when (looking-at regexp)
+	  (> (match-end 0) point))))))
+	      
+
+(defun org-mouse-priority-list ()
+  (let ((ret) (current org-lowest-priority))
+    (while (>= current ?A)
+      (push (char-to-string current) ret)
+      (decf current))
+    ret))
+
+(defun org-mouse-tag-menu ()		;todo
+  (append
+   (let ((tags (org-split-string (org-get-tags) ":")))
+     (org-mouse-keyword-menu 
+      (sort (mapcar 'car (org-get-buffer-tags)) 'string-lessp)
+      `(lambda (tag) 
+	 (org-mouse-set-tags 
+	  (sort (if (member tag (quote ,tags)) 
+		    (delete tag (quote ,tags))
+		  (cons tag (quote ,tags)))
+		'string-lessp)))
+      `(lambda (tag) (member tag (quote ,tags)))
+      ))
+   '("--"
+     ["Align Tags Here" (org-set-tags nil t) t]
+     ["Align Tags in Buffer" (org-set-tags t t) t]
+     ["Set Tags ..." (org-set-tags) t])))
+   
+
+
+(defun org-mouse-set-tags (tags)
+  (save-excursion
+    ;; remove existing tags first
+    (beginning-of-line)
+    (when (org-mouse-re-search-line ":\\(\\([A-Za-z_]+:\\)+\\)")
+      (replace-match ""))
+
+    ;; set new tags if any
+    (when tags
+      (end-of-line)
+      (insert " :" (mapconcat 'identity tags ":") ":")
+      (org-set-tags nil t))))
+			  
+(defun org-mouse-insert-checkbox ()
+  (interactive)
+  (and (org-at-item-p)
+       (goto-char (match-end 0))
+       (unless (org-at-item-checkbox-p)
+	 (delete-horizontal-space)
+	 (insert " [ ] "))))
+
+(defun org-mouse-agenda-type (type)
+  (case type
+   ('tags "Tags: ")
+   ('todo "TODO: ")
+   ('tags-tree "Tags tree: ")
+   ('todo-tree "TODO tree: ")
+   ('occur-tree "Occur tree: ")
+   (t "Agenda command ???")))
+
+
+(defun org-mouse-clip-text (text maxlength)
+  (if (> (length text) maxlength)
+      (concat (substring text 0 (- maxlength 3)) "...")
+    text))
+
+(defun org-mouse-popup-global-menu ()
+  (popup-menu  
+   `("Main Menu"
+     ["Show Overview" org-mouse-show-overview t]
+     ["Show Headlines" org-mouse-show-headlines t]
+     ["Show All" show-all t]
+     ["Remove Highlights" org-remove-occur-highlights
+      :visible org-occur-highlights]
+     "--"
+     ["Check Deadlines" 
+      (if (functionp 'org-check-deadlines-and-todos)
+	  (org-check-deadlines-and-todos org-deadline-warning-days)
+	(org-check-deadlines org-deadline-warning-days)) t]
+     ["Check TODOs" org-show-todo-tree t]
+     ("Check Tags" 
+      ,@(org-mouse-keyword-menu 
+	 (sort (mapcar 'car (org-get-buffer-tags)) 'string-lessp)
+	 '(lambda (tag) (org-tags-sparse-tree nil tag)))
+      "--"
+      ["Custom Tag ..." org-tags-sparse-tree t])
+     ["Check Phrase ..." org-occur]
+     "--"
+     ["Display Agenda" org-agenda-list t]
+     ["Display Timeline" org-timeline t]
+     ["Display TODO List" org-todo-list t]
+     ("Display Tags" 
+      ,@(org-mouse-keyword-menu 
+	 (sort (mapcar 'car (org-get-buffer-tags)) 'string-lessp)
+	 '(lambda (tag) (org-tags-view nil tag)))
+      "--"
+      ["Custom Tag ..." org-tags-view t])
+     ["Display Calendar" org-goto-calendar t]
+     "--"
+;;      ("Custom Commands"
+;;       ,@(org-mouse-keyword-menu 
+;; 	 (mapcar 'car org-agenda-custom-commands)
+;; 	 '(lambda (key) 
+;; 	    (eval `(flet ((read-char-exclusive () (string-to-char ,key))) 
+;; 		     (let ((current-prefix-arg t))
+;; 		       (org-agenda nil)))))
+;; 	 nil "Agenda (TODO) '%s'")
+;;      "--"
+     ,@(org-mouse-keyword-menu 
+	(mapcar 'car org-agenda-custom-commands)
+	'(lambda (key) 
+	   (eval `(flet ((read-char-exclusive () (string-to-char ,key))) 
+		      (org-agenda nil))))
+	nil 
+	'(lambda (key)
+	   (let ((entry (assoc key org-agenda-custom-commands)))
+	     (org-mouse-clip-text 
+	      (cond
+	       ((stringp (nth 1 entry)) (nth 1 entry))
+	       ((stringp (nth 2 entry)) 
+		(concat (org-mouse-agenda-type (nth 1 entry))
+			(nth 2 entry)))
+	       (t "Agenda Command '%s'"))
+	      30))))
+;; )
+     "--"
+     ["Delete Blank Lines" delete-blank-lines 
+      :visible (org-mouse-empty-line)]
+     ["Insert Checkbox" org-mouse-insert-checkbox
+      :visible (and (org-at-item-p) (not (org-at-item-checkbox-p)))]
+     ["Insert Checkboxes" 
+      (org-mouse-for-each-item 'org-mouse-insert-checkbox)
+      :visible (and (org-at-item-p) (not (org-at-item-checkbox-p)))]
+     ["Plain List to Outline" org-mouse-transform-to-outline
+      :visible (org-at-item-p)])))
+
+			      
+;     ["Jump" org-goto])))
+
+(defun org-mouse-get-context (contextlist context)
+  (let ((contextdata (find-if (lambda (x) (eq (car x) context)) contextlist)))
+    (when contextdata
+      (save-excursion 
+	(goto-char (nth 1 contextdata))
+;	(looking-at regexp)))))
+	(re-search-forward ".*" (nth 2 contextdata))))))
+
+(defun org-mouse-for-each-item (function)
+  (save-excursion 
+    (ignore-errors 
+      (while t (org-previous-item)))
+    (ignore-errors 
+      (while t 
+	(funcall function)
+	(org-next-item)))))
+
+(defun org-mouse-bolp ()
+  "Returns true if there only spaces, tabs, and '*',  between the beginning of line and the point"
+  (save-excursion
+    (skip-chars-backward " \t*") (bolp)))
+  
+
+(defadvice dnd-insert-text (around org-mouse-dnd-insert-text activate)
+  (if (eq major-mode 'org-mode)
+      (case (org-mouse-line-position)
+	 (:begin			; insert before 
+	  (beginning-of-line) 
+	  (looking-at "[ \t]*")
+	  (open-line 1)
+	  (indent-to (- (match-end 0) (match-beginning 0)))
+	  (insert "+ "))
+	 
+	 (:middle			; insert after
+	  (end-of-line) 
+	  (newline t) 
+	  (indent-relative)
+	  (insert "+ "))
+
+	 (:end				; insert text here
+	  (skip-chars-backward " \t") 
+	  (kill-region (point) (point-at-eol))
+	  (unless (looking-back org-mouse-punctuation) 
+	    (insert (concat org-mouse-punctuation " "))))
+	 
+	(insert text)
+	(beginning-of-line))
+    ad-do-it))
+
+(defun org-mouse-context-menu ()
+  (let ((stamp-prefixes (list org-deadline-string org-scheduled-string))
+	(contextlist (org-context)))
+    (flet ((get-context (context) (org-mouse-get-context contextlist context)))
+  (cond
+   ((or (eolp) 
+	(and (looking-at "  \\|\t") (looking-back "  \\|\t")))
+    (org-mouse-popup-global-menu))
+;;   ((get-context :todo-keyword)
+   ((get-context :checkbox)
+    (popup-menu 
+     '(nil 
+       ["Toggle" org-toggle-checkbox t]
+       ["Remove" org-mouse-remove-match-and-spaces t]
+       ""
+       ["All Clear" (org-mouse-for-each-item
+		     (lambda ()
+		       (when (save-excursion (org-at-item-checkbox-p))
+			 (replace-match "[ ]"))))]
+       ["All Set" (org-mouse-for-each-item
+		     (lambda ()
+		       (when (save-excursion (org-at-item-checkbox-p))
+			 (replace-match "[X]"))))]
+       ["All Toggle" (org-mouse-for-each-item 'org-toggle-checkbox) t]
+       ["All Remove" (org-mouse-for-each-item
+		     (lambda ()
+		       (when (save-excursion (org-at-item-checkbox-p))
+			 (org-mouse-remove-match-and-spaces))))]
+       )))
+   ((and (org-mouse-looking-at "\\b\\w+" "a-zA-Z0-9_")
+ 	 (member (match-string 0) org-todo-keywords))
+    (popup-menu 
+     `(nil
+       ,@(org-mouse-keyword-replace-menu org-todo-keywords)
+       "--" 
+       ["Check TODOs" org-show-todo-tree t]
+       ["Display TODO List" org-todo-list t]
+       )))
+   ((and (org-mouse-looking-at "\\b[A-Z]+:" "A-Z")
+	 (member (match-string 0) stamp-prefixes))
+    (popup-menu 
+     `(nil 
+       ,@(org-mouse-keyword-replace-menu stamp-prefixes) 
+       "--"
+       ["Check Deadlines" org-check-deadlines t]
+       )))
+   ((org-mouse-looking-at org-mouse-priority-regexp "[]A-Z#") ; priority
+    (popup-menu `(nil ,@(org-mouse-keyword-replace-menu 
+			 (org-mouse-priority-list) 1 "Priority %s"))))
+   ((org-mouse-at-link)
+    (popup-menu
+     '(nil
+       ["Open" org-open-at-point t]
+       ["Open in Emacs" (org-open-at-point t) t]
+       "--"
+       ["Copy link" (kill-new (match-string 0))]
+       ["Cut link" (kill-region (match-beginning 0) (match-end 0))]
+;       ["Paste file link" ((insert "file:") (yank))]
+       )))
+   ((org-mouse-looking-at ":\\([A-Za-z0-9_]+\\):" "A-Za-z0-9_" -1) ;tags
+    (popup-menu 
+     `(nil 
+       [,(format "Display '%s'" (match-string 1))
+	(org-tags-view nil ,(match-string 1))]
+       [,(format "Narrow to '%s'" (match-string 1))
+	(org-tags-sparse-tree nil ,(match-string 1))]
+       "--"
+       ,@(org-mouse-tag-menu))))
+   ((org-at-timestamp-p)
+    (popup-menu 
+     '(nil
+       ["Show Day" org-open-at-point t]
+       ["Change Timestamp" org-time-stamp t]
+       ["Delete Timestamp" (org-mouse-delete-timestamp) t]
+       ["Compute Time Range" org-evaluate-time-range (org-at-date-range-p)]
+       "--"
+       ["Set for Today" org-mouse-timestamp-today]
+       ["Set for Tomorrow" (org-mouse-timestamp-today 1 'day)]
+       ["Set in 1 Week" (org-mouse-timestamp-today 7 'day)]
+       ["Set in 2 Weeks" (org-mouse-timestamp-today 14 'day)]
+       ["Set in a Month" (org-mouse-timestamp-today 1 'month)]
+       "--"
+       ["+ 1 Day" (org-timestamp-change 1 'day)]
+       ["+ 1 Week" (org-timestamp-change 7 'day)]
+       ["+ 1 Month" (org-timestamp-change 1 'month)]
+       "--"
+       ["- 1 Day" (org-timestamp-change -1 'day)]
+       ["- 1 Week" (org-timestamp-change -7 'day)]
+       ["- 1 Month" (org-timestamp-change -1 'month)])))
+   ((and (assq :headline contextlist) (not (eolp)))
+    (let ((priority (org-mouse-get-priority t)))
+      (popup-menu
+       `("Headline Menu"
+	 ("Tags and Priorities" 
+	  ,@(org-mouse-keyword-menu 
+	     (org-mouse-priority-list) 
+	     '(lambda (keyword) 
+		(org-mouse-set-priority (string-to-char keyword)))
+	     priority "Priority %s")
+	  "--"
+	  ,@(org-mouse-tag-menu))
+	 ["Show Tags" 
+	  (with-current-buffer org-mouse-main-buffer (org-agenda-show-tags))
+	  :visible (not org-mouse-direct)]
+	 ["Show Priority" 
+	  (with-current-buffer org-mouse-main-buffer (org-agenda-show-priority))
+	  :visible (not org-mouse-direct)]
+	 ,@(if org-mouse-direct '("--") nil)
+	 ["New Heading" org-mouse-insert-heading :visible org-mouse-direct]
+;; 	 ["New Appointment" org-mouse-new-appointment :visible org-mouse-direct]
+;; 	 "--"
+	 ["Cycle TODO" org-todo]
+	 ["Set Deadline" 
+	  (progn (org-mouse-end-headline) (insert " ") (org-deadline)) 
+	  :active (not (save-excursion 
+			 (org-mouse-re-search-line org-deadline-regexp)))]
+	 ["Schedule Task" 
+	  (progn (org-mouse-end-headline) (insert " ") (org-schedule)) 
+	  :active (not (save-excursion 
+			 (org-mouse-re-search-line org-scheduled-regexp)))]
+	 ["Insert Timestamp" 
+	  (progn (org-mouse-end-headline) (insert " ") (org-time-stamp nil)) t]
+;	 ["Timestamp (inactive)" org-time-stamp-inactive t]
+	 "--"
+	 ["Archive Subtree" org-archive-subtree]
+	 ["Cut Subtree"  org-cut-special]
+	 ["Copy Subtree"  org-copy-special]
+	 ["Paste Subtree"  org-paste-special :visible org-mouse-direct]
+	 "--"
+;; 	 ["Promote Subtree" org-shiftmetaleft]
+;; 	 ["Demote Subtree"  org-shiftmetaright]
+;; 	 ["Promote Heading" org-metaleft]
+;; 	 ["Demote Heading"  org-metaright]
+;; 	 "--"
+	 ["Move Trees" org-mouse-move-tree :active nil]
+	 ))))
+   (t 
+    (org-mouse-popup-global-menu))))))
+   
+
+
+;; (defun org-mouse-at-regexp (regexp)
+;;   (save-excursion
+;;     (let ((point (point))
+;; 	  (bol (progn (beginning-of-line) (point)))
+;; 	  (eol (progn (end-of-line) (point))))
+;;       (goto-char point)
+;;       (re-search-backward regexp bol 1)
+;;       (and (not (eolp))
+;; 	   (progn (forward-char)
+;; 		  (re-search-forward regexp eol t))
+;; 	   (<= (match-beginning 0) point)))))
+
+(defun org-mouse-in-region-p (pos)
+  (and mark-active (>= pos (region-beginning)) (<  pos (region-end))))
+
+(defun org-mouse-down-mouse (event)
+  (interactive "e")
+  (setq this-command last-command)
+  (unless (and transient-mark-mode
+	       (= 1 (event-click-count event))
+	       (org-mouse-in-region-p (posn-point (event-start event))))
+    (mouse-drag-region event)))
+
+(add-hook 'org-mode-hook
+  '(lambda ()
+     (setq org-mouse-context-menu-function 'org-mouse-context-menu)
+
+;     (define-key org-mouse-map [follow-link] 'mouse-face)
+     (define-key org-mouse-map (if (featurep 'xemacs) [button3] [mouse-3]) nil)
+     (define-key org-mode-map [mouse-3] 'org-mouse-show-context-menu)
+     (define-key org-mode-map [down-mouse-1] 'org-mouse-down-mouse)
+     (define-key org-mouse-map [C-drag-mouse-1] 'org-mouse-move-tree)
+     (define-key org-mouse-map [C-down-mouse-1] 'org-mouse-move-tree-start)
+     (define-key org-mouse-map [drag-mouse-3] 'org-mouse-move-tree)
+     (define-key org-mouse-map [down-mouse-3] 'org-mouse-move-tree-start)
+
+     (font-lock-add-keywords nil 
+	`((,outline-regexp 
+	   0 `(face org-link mouse-face highlight keymap ,org-mouse-map)  
+	   'prepend)
+	  ("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +" 
+	   (1 `(face org-link keymap ,org-mouse-map mouse-face highlight) 'prepend))
+	  ("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)" 
+	   (2 `(face bold keymap ,org-mouse-map mouse-face highlight) t)))
+ 	t)
+
+     (defadvice org-open-at-point (around org-mouse-open-at-point activate)
+       (let ((context (org-context)))
+	 (cond 
+	  ((assq :headline-stars context) (org-cycle))
+	  ((assq :checkbox context) (org-toggle-checkbox))
+	  ((assq :item-bullet context)
+	   (let ((org-cycle-include-plain-lists t)) (org-cycle)))
+	  (t ad-do-it))))))
+
+(defun org-mouse-move-tree-start (event)
+  (interactive "e")
+  (message "Same line: promote/demote, (***):move before, (text): make a child"))
+
+
+(defun org-mouse-make-marker (position)
+  (with-current-buffer (window-buffer (posn-window position))
+    (copy-marker (posn-point position))))
+
+(defun org-mouse-move-tree (event)
+  ;; todo: handle movements between different buffers
+  (interactive "e")
+  (save-excursion
+    (let* ((start (org-mouse-make-marker (event-start event)))
+	   (end (org-mouse-make-marker (event-end event)))
+	   (sbuf (marker-buffer start))
+	   (ebuf (marker-buffer end)))
+
+     (when (and sbuf ebuf)
+      (set-buffer sbuf)
+      (goto-char start)
+      (org-back-to-heading)
+      (if (and (eq sbuf ebuf)
+	       (equal 
+		(point)
+		(save-excursion (goto-char end) (org-back-to-heading) (point))))
+	;; if the same line then promote/demote
+	(if (>= end start) (org-demote-subtree) (org-promote-subtree))
+      ;; if different lines then move
+      (org-cut-subtree)
+      
+      (set-buffer ebuf)
+      (goto-char end)
+      (org-back-to-heading)
+      (when  (and (eq sbuf ebuf)
+		  (equal 
+		   (point)
+		   (save-excursion (goto-char start) 
+				   (org-back-to-heading) (point))))
+	(outline-end-of-subtree)
+	(end-of-line)
+	(if (eobp) (newline) (forward-char)))
+      
+      (when (looking-at outline-regexp)
+	(let ((level (- (match-end 0) (match-beginning 0))))
+	  (when (> end (match-end 0))
+	    (outline-end-of-subtree)
+	    (end-of-line)
+	    (if (eobp) (newline) (forward-char))
+	    (setq level (1+ level)))
+	  (org-paste-subtree level)
+	  (save-excursion
+	    (outline-end-of-subtree)
+	    (when (bolp) (delete-char -1))))))))))
+
+
+(defun org-mouse-transform-to-outline ()
+  (interactive)
+  (org-back-to-heading)
+  (let ((minlevel 1000)
+	(replace-text (concat (match-string 0) "* ")))
+    (beginning-of-line 2)
+    (save-excursion
+      (while (not (or (eobp) (looking-at outline-regexp)))
+	(when (looking-at org-mouse-plain-list-regexp)
+	  (setq minlevel (min minlevel (- (match-end 1) (match-beginning 1)))))
+	(forward-line)))
+    (while (not (or (eobp) (looking-at outline-regexp)))
+      (when (and (looking-at org-mouse-plain-list-regexp)
+		 (eq minlevel (- (match-end 1) (match-beginning 1))))
+	(replace-match replace-text))
+      (forward-line))))
+	
+    
+      
+(defun org-mouse-do-remotely (command)
+;  (org-agenda-check-no-diary)
+  (when (get-text-property (point) 'org-marker)
+    (let* ((anticol (- (point-at-eol) (point)))
+	   (marker (get-text-property (point) 'org-marker))
+	   (buffer (marker-buffer marker))
+	   (pos (marker-position marker))
+	   (hdmarker (get-text-property (point) 'org-hd-marker))
+	   (buffer-read-only nil)
+	   (newhead "--- removed ---")
+	   (org-mouse-direct nil)
+	   (org-mouse-main-buffer (current-buffer)))
+      (when (eq (with-current-buffer buffer major-mode) 'org-mode)
+	(let ((endmarker (save-excursion 
+			  (set-buffer buffer) 
+			  (outline-end-of-subtree) 
+			  (forward-char 1)
+			  (copy-marker (point)))))
+	  (with-current-buffer buffer
+	    (widen)
+	    (goto-char pos)
+	    (org-show-hidden-entry)
+	    (save-excursion
+	      (and (outline-next-heading)
+		   (org-flag-heading nil)))   ; show the next heading
+	    (org-back-to-heading)
+	    (setq marker (copy-marker (point)))
+	    (goto-char (max (point-at-bol) (- (point-at-eol) anticol)))
+	    (funcall command)
+	    (unless (eq (marker-position marker) (marker-position endmarker))
+	      (setq newhead (org-get-heading))))
+	  
+	  (beginning-of-line 1)
+	  (save-excursion
+	    (org-agenda-change-all-lines newhead hdmarker 'fixface)))
+	t))))
+
+(defun org-mouse-agenda-context-menu ()
+  (or (org-mouse-do-remotely 'org-mouse-context-menu)
+      (popup-menu  
+       '("Agenda"
+	 ("Agenda Files")
+	 "--"
+	 ["Rebuild Buffer" org-agenda-redo t]
+	 ["New Diary Entry" 
+	  org-agenda-diary-entry (org-agenda-check-type nil 'agenda 'timeline)]
+	 "--"
+	 ["Goto Today" org-agenda-goto-today 
+	  (org-agenda-check-type nil 'agenda 'timeline)]
+	 ["Display Calendar" org-agenda-goto-calendar 
+	  (org-agenda-check-type nil 'agenda 'timeline)]
+	 ("Calendar Commands"
+	  ["Phases of the Moon" org-agenda-phases-of-moon (org-agenda-check-type nil 'agenda 'timeline)]
+	  ["Sunrise/Sunset" org-agenda-sunrise-sunset (org-agenda-check-type nil 'agenda 'timeline)]
+	  ["Holidays" org-agenda-holidays (org-agenda-check-type nil 'agenda 'timeline)]
+	  ["Convert" org-agenda-convert-date (org-agenda-check-type nil 'agenda 'timeline)]
+	  "--"
+	  ["Create iCalendar file" org-export-icalendar-combine-agenda-files t])
+	 "--"
+	 ["Day View" org-agenda-day-view 
+	  :active (org-agenda-check-type nil 'agenda)
+	  :style radio :selected (equal org-agenda-ndays 1)]
+	 ["Week View" org-agenda-week-view 
+	  :active (org-agenda-check-type nil 'agenda)
+	  :style radio :selected (equal org-agenda-ndays 7)]
+	 "--"
+	 ["Show Logbook entries" org-agenda-log-mode
+	  :style toggle :selected org-agenda-show-log 
+	  :active (org-agenda-check-type nil 'agenda 'timeline)]
+	 ["Include Diary" org-agenda-toggle-diary
+	  :style toggle :selected org-agenda-include-diary 
+	  :active (org-agenda-check-type nil 'agenda)]
+	 ["Use Time Grid" org-agenda-toggle-time-grid
+	  :style toggle :selected org-agenda-use-time-grid
+	  :active (org-agenda-check-type nil 'agenda)]
+	 ["Follow Mode" org-agenda-follow-mode
+	  :style toggle :selected org-agenda-follow-mode]
+	 "--"
+	 ["Quit" org-agenda-quit t]
+	 ["Exit and Release Buffers" org-agenda-exit t]
+	 ))))
+
+
+; (setq org-agenda-mode-hook nil)
+(add-hook 'org-agenda-mode-hook 
+   '(lambda ()
+;      (define-key org-agenda-keymap [follow-link] 'mouse-face)
+     (setq org-mouse-context-menu-function 'org-mouse-agenda-context-menu)
+      (define-key org-agenda-keymap 
+	(if (featurep 'xemacs) [button3] [mouse-3]) 'org-mouse-show-context-menu)))
+
+(provide 'org-mouse)
+  

File diff suppressed because it is too large
+ 349 - 209
org.el


BIN
org.pdf


+ 111 - 32
org.texi

@@ -3,8 +3,8 @@
 @setfilename ../info/org
 @settitle Org Mode Manual
 
-@set VERSION 4.52
-@set DATE October 2006
+@set VERSION 4.53
+@set DATE November 2006
 
 @dircategory Emacs
 @direntry
@@ -170,11 +170,12 @@ Timestamps
 
 * Time stamps::                 Assigning a time to a tree entry
 * Creating timestamps::         Commands which insert timestamps
+* Custom time format::          If you cannot work with the ISO format
 * Progress logging::            Documenting when what work was done.
 
 Creating timestamps
 
-* The date/time prompt::        
+* The date/time prompt::        How org-mode helps you entring date and time
 
 Progress Logging
 
@@ -316,6 +317,15 @@ structured ASCII file, as HTML, or (todo and agenda items only) as an
 iCalendar file.  It can also serve as a publishing tool for a set of
 linked webpages.
 
+An important design aspect that distinguishes Org-mode from other
+packages like Planner/Muse is that it encougages to store every piece of
+information only once.  In Planner, you have project pages, day pages
+and possibly other files, duplicating some information such as tasks.
+In Org-mode, you only have notes files.  In your notes you mark entries
+as tasks, label them with tags and timestamps.  All necessary lists like
+a schedule for the day, the agenda for a meeting, tasks lists selected
+by tags etc are created dynamically when you need them.
+
 Org-mode keeps simple things simple.  When first fired up, it should
 feel like a straightforward, easy to use outliner.  Complexity is not
 imposed, but a large amount of functionality is available when you need
@@ -328,12 +338,13 @@ example:
 @r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities}
 @r{@bullet{} as a TODO list editor}
 @r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
+@r{@bullet{} as an environment to implement David Allen's GTD system}
 @r{@bullet{} as a simple hypertext system, with HTML export}
 @r{@bullet{} as a publishing tool to create a set of interlinked webpages}
 @end example
 
-The Org-mode table editor can be integrated into any major mode by
-activating the minor Orgtbl-mode.
+Org-mode's automatic, context sensitive table editor can be integrated
+into any major mode by activating the minor Orgtbl-mode.
 
 @cindex FAQ
 There is a website for Org-mode which provides links to the newest
@@ -642,7 +653,9 @@ the middle of a line, the line is split and the rest of the line becomes
 the new headline.  If the command is used at the beginning of a
 headline, the new headline is created before the current line.  If at
 the beginning of any other line, the content of that line is made the
-new heading.
+new heading.  If the command is used at the end of a folded subtree
+(i.e. behind the ellipses at the end of a headline), then a headline
+like the current one will be inserted after the end of the subtree.
 @kindex M-S-@key{RET}
 @item M-S-@key{RET}
 Insert new TODO entry with same level as current heading.
@@ -2441,6 +2454,7 @@ planning.
 @menu
 * Time stamps::                 Assigning a time to a tree entry
 * Creating timestamps::         Commands which insert timestamps
+* Custom time format::          If you cannot work with the ISO format
 * Progress logging::            Documenting when what work was done.
 @end menu
 
@@ -2454,10 +2468,12 @@ planning.
 @cindex scheduling
 
 A time stamp is a specification of a date (possibly with time) in a
-special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16
-Tue 09:39>}.  A time stamp can appear anywhere in the headline or body
-of an org-tree entry.  Its presence allows entries to be shown on specific
-dates in the agenda (@pxref{Weekly/Daily agenda}).  We distinguish:
+special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16 Tue
+09:39>}@footnote{This is the standard ISO date/time format.  If you
+cannot get used to these, see @ref{Custom time format}}.  A time stamp
+can appear anywhere in the headline or body of an org-tree entry.  Its
+presence allows entries to be shown on specific dates in the agenda
+(@pxref{Weekly/Daily agenda}).  We distinguish:
 
 @table @var
 @item Plain time stamp
@@ -2468,6 +2484,21 @@ an event in a diary, when you want to take note of when something
 happened.  In the timeline and agenda displays, the headline of an entry
 associated with a plain time stamp will be shown exactly on that date.
 
+@example
+* Meet Peter at the movies <2006-11-01 Wed 19:15>
+@end example
+
+@item Inactive time stamp
+@cindex timestamp, inactive
+@cindex inactive timestamp
+Just like a plain time stamp, but with square brackets instead of
+angular ones.  These time stamps are inactive in the sense that thay do
+@emph{not} trigger an entry to show up in the agenda.
+
+@example
+* Gillian comes late for the fifth time [2006-11-01 Wed]
+@end example
+
 @item Time stamp range
 @cindex timerange
 Two time stamps connected by @samp{--} denote a time range.  The
@@ -2524,7 +2555,7 @@ automatically into the file.  The time stamps are enclosed in square
 brackets instead of angular brackets.  @xref{Clocking work time}.
 @end table
 
-@node Creating timestamps, Progress logging, Time stamps, Timestamps
+@node Creating timestamps, Custom time format, Time stamps, Timestamps
 @section Creating timestamps
 @cindex creating timestamps
 @cindex timestamps, creating
@@ -2563,8 +2594,8 @@ instead.
 
 @kindex C-c C-o
 @item C-c C-o
-Access the agenda for the date given by the time stamp at point
-(@pxref{Weekly/Daily agenda}).
+Access the agenda for the date given by the time stamp or -range at
+point (@pxref{Weekly/Daily agenda}).
 
 @kindex C-c C-d
 @item C-c C-d
@@ -2598,11 +2629,11 @@ CUA-mode (@pxref{Conflicts}).
 @kindex S-@key{down}
 @item S-@key{up}
 @itemx S-@key{down}
-Change the item under the cursor in a timestamp.  The cursor can be on
-a year, month, day, hour or minute.  Note that if the cursor is not at
-a time stamp, these same keys modify the priority of an item.
-(@pxref{Priorities}). The key bindings also conflict with CUA-mode
-(@pxref{Conflicts}).
+Change the item under the cursor in a timestamp.  The cursor can be on a
+year, month, day, hour or minute.  Note that if the cursor is in a
+headline and not at a time stamp, these same keys modify the priority of
+an item.  (@pxref{Priorities}). The key bindings also conflict with
+CUA-mode (@pxref{Conflicts}).
 
 
 @kindex C-c C-y
@@ -2615,7 +2646,7 @@ into the following column).
 
 
 @menu
-* The date/time prompt::        
+* The date/time prompt::        How org-mode helps you entring date and time
 @end menu
 
 @node The date/time prompt,  , Creating timestamps, Creating timestamps
@@ -2680,10 +2711,53 @@ One month forward.
 One month back.
 @kindex @key{RET}
 @item @key{RET}
-Choose date in calendar (only if nothing typed into minibuffer).
+Choose date in calendar (only if nothing was typed into minibuffer).
+@end table
+
+@node Custom time format, Progress logging, Creating timestamps, Timestamps
+@section Custom time format
+@cindex custom date/time format
+@cindex time format, custom
+@cindex date format, custom
+
+Org-mode uses the standard ISO notation for dates and times as it is
+defined in ISO 8601.  If you cannot get used to this and require another
+representation of date and time to keep you happy, you can get it by
+customizing the variables @code{org-display-custom-times} and
+@code{org-time-stamp-custom-formats}.
+
+@table @kbd
+@kindex C-c C-x C-t
+@item C-c C-x C-t
+Toggle the display of custom formats for dates and times.
 @end table
 
-@node Progress logging,  , Creating timestamps, Timestamps
+@noindent
+Org-mode needs the default format for scanning, so the custom date/time
+format does not @emph{replace} the default format - instead it is put
+@emph{over} the default format using text properties.  This has the
+following consequences:
+@itemize @bullet
+@item 
+You cannot place the cursor onto a time stamp anymore, only before or
+after.
+@item
+The @kbd{S-@key{up}/@key{down}} keys can no longer be used to adjust
+each component of a time stamp.  If the cursor is at the beginning of
+the stamp, @kbd{S-@key{up}/@key{down}} will change the stamp by one day,
+just like @kbd{S-@key{left}/@key{right}}.  At the end of the stamp, the
+time will be changed by one minute.
+@item
+When you delete a time stamp character-by-character, it will only
+disappear from the buffer after @emph{all} (invisible) characters
+belonging to the ISO timestamp have been removed.
+@item
+If the custom time stamp format is longer than the default and you are
+using dates in tables, table alignment will be messed up.  If the custom
+format is shorter, things do work as expected.
+@end itemize
+
+@node Progress logging,  , Custom time format, Timestamps
 @section Progress Logging
 @cindex progress logging
 @cindex logging, of progress
@@ -2739,7 +2813,8 @@ keyword together with a timestamp.
 Stop the clock (clock-out).  The inserts another timestamp at the same
 location where the clock was last started.  It also directly computes
 the resulting time in inserts it after the time range as @samp{=>
-HH:MM}.  
+HH:MM}.  See the variable @code{org-log-done} for the possibility to
+record an additional note together with a the clock-out time stamp.
 @kindex C-c C-y
 @item C-c C-y
 Recompute the time interval after changing one of the time stamps.  This
@@ -2759,7 +2834,8 @@ Display time summaries for each subtree in the current buffer.  This
 puts overlays at the end of each headline, showing the total time
 recorded under that heading, including the time of any subheadings. You
 can use visibility cycling to study the tree, but the overlays disappear
-automatically when the buffer is changed.
+when you change the buffer (see variable
+@code{org-remove-highlights-with-change}) or press @kbd{C-c C-c}.
 @kindex C-c C-x C-r
 @item C-c C-x C-r
 Insert a dynamic block (@pxref{Dynamic blocks}) containing a clock
@@ -2807,9 +2883,6 @@ The @kbd{l} key may be used in the timeline (@pxref{Timeline}) and in
 the agenda (@pxref{Weekly/Daily agenda}) to show which tasks have been
 worked on or closed during a day.
 
-See the variable @code{org-log-done} for the possibility to record an
-additional note together with a the clock-out time stamp.
-
 @node Tags, Agenda views, Timestamps, Top
 @chapter Tags
 @cindex tags
@@ -3012,20 +3085,20 @@ tagged also @samp{NIGHT}.
 @cindex TODO keyword matching, with tags search
 If you are using multi-state TODO keywords (@pxref{TODO extensions}), it
 can be useful to also match on the TODO keyword.  This can be done by
-adding a condition after a double slash to a tags match.  The syntax is
-similar to the tag matches, but should be applied with consideration:
-For example, a positive selection on several TODO keywords can not
+adding a condition after a slash to a tags match.  The syntax is similar
+to the tag matches, but should be applied with consideration: For
+example, a positive selection on several TODO keywords can not
 meaningfully be combined with boolean AND.  However, @emph{negative
 selection} combined with AND can be meaningful.  Examples:
 
 @table @samp
-@item WORK//WAITING
+@item WORK/WAITING
 Select @samp{:WORK:}-tagged TODO lines with the specific TODO
 keyword @samp{WAITING}.
-@item WORK//-WAITING-NEXT
+@item WORK/-WAITING-NEXT
 Select @samp{:WORK:}-tagged TODO lines that are neither @samp{WAITING}
 nor @samp{NEXT}
-@item WORK//+WAITING|+NEXT
+@item WORK/+WAITING|+NEXT
 Select @samp{:WORK:}-tagged TODO lines that are either @samp{WAITING} or
 @samp{NEXT}.
 @end table
@@ -4944,6 +5017,12 @@ showstars  @r{show all stars starting a headline}
 odd        @r{allow only odd outline levels (1,3,...)}
 oddeven    @r{allow all outline levels}
 @end example
+To turn on custom format overlayes over time stamps (variables
+@code{org-put-time-stamp-overlays} and
+@code{org-time-stamp-overlay-formats}), use
+@example
+customtime @r{overlay custom time format}
+@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}

BIN
orgcard.pdf


+ 2 - 1
orgcard.tex

@@ -1,5 +1,5 @@
 % Reference Card for Org Mode
-\def\orgversionnumber{4.52}
+\def\orgversionnumber{4.53}
 \def\year{2006}
 %
 %**start of header
@@ -541,6 +541,7 @@ after  ``{\tt :}'', and dictionary words elsewhere.
 %\key{... forward/backward one day}{S-LEFT/RIGHT}
 %\key{... forward/backward one week}{S-UP/DOWN}
 %\key{... forward/backward one month}{M-S-LEFT/RIGT}
+\key{Toggle custom format display for dates/times}{C-c C-x C-t}
 
 
 \section{Clocking Time}

Some files were not shown because too many files changed in this diff