From 52ef0211694f6d72b1fb26a1a6370f8b29331115 Mon Sep 17 00:00:00 2001 From: Carsten Dominik Date: Thu, 28 Feb 2008 16:39:37 +0100 Subject: [PATCH 1/3] First implementation of the new search view. --- ChangeLog | 9 +++- org.el | 150 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 151 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index ebfdac99a..10f2e75da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,8 +2,15 @@ * org.el (org-auto-repeat-maybe): Make sure that the repeat stuff does not add another state note. + (org-agenda-search-history): New variable. + (org-search-view): New command. + (org-agenda-prefix-format, org-agenda-sorting-strategy): New + setting for search. + (org-agenda-custom-commands, org-agenda) + (org-agenda-get-restriction-and-command, org-run-agenda-series): + Cater for new agenda view. -2008-02-28 Bernt Hansen (tiny change) +2008-02-28 Bernt Hansen * org.el (org-put-clock-overlay): increase the limit of allowed levels to 8 when building the clock summary. diff --git a/org.el b/org.el index e6a9a43c4..39639ad09 100644 --- a/org.el +++ b/org.el @@ -2367,9 +2367,11 @@ key The key (one or more characters as a string) to be associated desc A description of the commend, when omitted or nil, a default description is built using MATCH. type The command type, any of the following symbols: + agenda The daily/weekly agenda. todo Entries with a specific TODO keyword, in all agenda files. - tags Tags match in all agenda files. - tags-todo Tags match in all agenda files, TODO entries only. + search Entries containing search words entry or headline. + tags Tags/Property/TODO match in all agenda files. + tags-todo Tags/P/T match in all agenda files, TODO entries only. todo-tree Sparse tree of specific TODO keyword in *current* file. tags-tree Sparse tree with all tags matches in *current* file. occur-tree Occur sparse tree for *current* file. @@ -2401,6 +2403,7 @@ cmd An agenda command, similar to the above. However, tree commands (alltodo) (stuck) (todo \"match\" options files) + (search \"match\" options files) (tags \"match\" options files) (tags-todo \"match\" options files) @@ -2426,6 +2429,7 @@ should provide a description for the prefix, like (choice (const :tag "Agenda" agenda) (const :tag "TODO list" alltodo) + (const :tag "Search words" search) (const :tag "Stuck projects" stuck) (const :tag "Tags search (all agenda files)" tags) (const :tag "Tags search of TODO entries (all agenda files)" tags-todo) @@ -2445,6 +2449,12 @@ should provide a description for the prefix, like (choice (const :tag "Agenda" (agenda)) (const :tag "TODO list" (alltodo)) + (list :tag "Search words" + (const :format "" search) + (string :tag "Match") + (repeat :tag "Local options" + (list (variable :tag "Option") + (sexp :tag "Value")))) (const :tag "Stuck projects" (stuck)) (list :tag "Tags search" (const :format "" tags) @@ -2810,7 +2820,8 @@ a grid line." (defcustom org-agenda-sorting-strategy '((agenda time-up category-keep priority-down) (todo category-keep priority-down) - (tags category-keep priority-down)) + (tags category-keep priority-down) + (search category-keep)) "Sorting structure for the agenda items of a single day. This is a list of symbols which will be used in sequence to determine if an entry should be listed before another entry. The following @@ -2873,7 +2884,8 @@ agenda entries." '((agenda . " %-12:c%?-12t% s") (timeline . " % s") (todo . " %-12:c") - (tags . " %-12:c")) + (tags . " %-12:c") + (search . " %-12:c")) "Format specifications for the prefix of items in the agenda views. An alist with four entries, for the different agenda types. The keys to the sublists are `agenda', `timeline', `todo', and `tags'. The values @@ -2928,7 +2940,8 @@ See also the variables `org-agenda-remove-times-when-in-prefix' and (cons (const agenda) (string :tag "Format")) (cons (const timeline) (string :tag "Format")) (cons (const todo) (string :tag "Format")) - (cons (const tags) (string :tag "Format")))) + (cons (const tags) (string :tag "Format")) + (cons (const search) (string :tag "Format")))) :group 'org-agenda-line-format) (defvar org-prefix-format-compiled nil @@ -19716,6 +19729,8 @@ Pressing `<' twice means to restrict to the current subtree or region (org-let lprops '(org-agenda-list current-prefix-arg))) ((eq type 'alltodo) (org-let lprops '(org-todo-list current-prefix-arg))) + ((eq type 'search) + (org-let lprops '(org-search-view current-prefix-arg match))) ((eq type 'stuck) (org-let lprops '(org-agenda-list-stuck-projects current-prefix-arg))) @@ -19746,6 +19761,7 @@ Pressing `<' twice means to restrict to the current subtree or region (setq org-agenda-custom-commands org-agenda-custom-commands-orig) (customize-variable 'org-agenda-custom-commands)) ((equal keys "a") (call-interactively 'org-agenda-list)) + ((equal keys "s") (call-interactively 'org-search-view)) ((equal keys "t") (call-interactively 'org-todo-list)) ((equal keys "T") (org-call-with-arg 'org-todo-list (or arg '(4)))) ((equal keys "m") (call-interactively 'org-tags-view)) @@ -19795,7 +19811,8 @@ a Agenda for current week or day e Export agenda views t List of all TODO entries T Entries with special TODO kwd m Match a TAGS query M Like m, but only TODO entries L Timeline for current buffer # List stuck projects (!=configure) -/ Multi-occur C Configure custom agenda commands +s Search for keywords C Configure custom agenda commands +/ Multi-occur ") (start 0)) (while (string-match @@ -19832,6 +19849,7 @@ L Timeline for current buffer # List stuck projects (!=configure) ((string-match "\\S-" desc) desc) ((eq type 'agenda) "Agenda for current week or day") ((eq type 'alltodo) "List of all TODO entries") + ((eq type 'search) "Word search") ((eq type 'stuck) "List of stuck projects") ((eq type 'todo) "TODO keyword") ((eq type 'tags) "Tags query") @@ -19912,7 +19930,7 @@ L Timeline for current buffer # List stuck projects (!=configure) ((eq c ?>) (org-agenda-remove-restriction-lock 'noupdate) (setq restriction nil)) - ((and (equal selstring "") (memq c '(?a ?t ?m ?L ?C ?e ?T ?M ?# ?! ?/))) + ((and (equal selstring "") (memq c '(?s ?a ?t ?m ?L ?C ?e ?T ?M ?# ?! ?/))) (throw 'exit (cons (setq selstring (char-to-string c)) restriction))) ((and (> (length selstring) 0) (eq c ?\d)) (delete-window) @@ -19938,6 +19956,9 @@ L Timeline for current buffer # List stuck projects (!=configure) ((eq type 'alltodo) (org-let2 gprops lprops '(call-interactively 'org-todo-list))) + ((eq type 'search) + (org-let2 gprops lprops + '(org-search-view current-prefix-arg match))) ((eq type 'stuck) (org-let2 gprops lprops '(call-interactively 'org-agenda-list-stuck-projects))) @@ -20840,6 +20861,121 @@ given in `org-agenda-start-on-weekday'." (defun org-agenda-ndays-to-span (n) (cond ((< n 7) 'day) ((= n 7) 'week) ((< n 32) 'month) (t 'year))) +;;; Agenda word search + +(defvar org-agenda-search-history nil) + +;;;###autoload +(defun org-search-view (&optional arg string) + "Show all entries that contain the words given in the search string. +If the search string starts with an asterisks, only search in headlines." + (interactive "P") + (org-compile-prefix-format 'search) + (org-set-sorting-strategy 'search) + (org-prepare-agenda "SEARCH") + (let* ((props (list 'face nil + 'done-face 'org-done + 'org-not-done-regexp org-not-done-regexp + 'org-todo-regexp org-todo-regexp + 'mouse-face 'highlight + 'keymap org-agenda-keymap + 'help-echo (format "mouse-2 or RET jump to location"))) + ;; FIXME: get rid of the \n at some point but watch out + (regexp (concat "^" org-outline-regexp)) + rtn rtnall files file pos + marker priority category tags + ee txt beg end words word-regexps hdl-only buffer beg1 str) + (unless (and (stringp string) + (string-match "\\S-" string)) + (setq string (read-string "Word Search: " nil + 'org-agenda-search-history))) + + (setq org-agenda-redo-command + (list 'org-search-view 'current-prefix-arg string)) + + (if (equal (string-to-char string) ?*) + (setq hdl-only t + words (substring string 1)) + (setq words string)) + (setq words (org-split-string words) + word-regexps + (mapcar (lambda (w) (concat "\\<" (regexp-quote (downcase w)) "\\>")) + words)) + (setq files (org-agenda-files) + rtnall nil) + (while (setq file (pop files)) + (setq ee nil) + (catch 'nextfile + (org-check-agenda-file file) + (setq buffer (if (file-exists-p file) + (org-get-agenda-file-buffer file) + (error "No such file %s" file))) + (if (not buffer) + ;; If file does not exist, make sure an error message is sent + (setq rtn (list (format "ORG-AGENDA-ERROR: No such org-file %s" + file)))) + (with-current-buffer buffer + (unless (org-mode-p) + (error "Agenda file %s is not in `org-mode'" file)) + (let ((case-fold-search t)) + (save-excursion + (save-restriction + (if org-agenda-restrict + (narrow-to-region org-agenda-restrict-begin + org-agenda-restrict-end) + (widen)) + (goto-char (point-min)) + (while (re-search-forward regexp nil t) + (catch :skip + (setq beg (point-at-bol) + beg1 (match-end 0) + end (progn (outline-next-heading) (point))) + (goto-char beg) + (org-agenda-skip) + (setq str (buffer-substring-no-properties + (point-at-bol) + (if hdl-only (point-at-eol) end))) + (mapc + (lambda (wr) + (unless (string-match wr str) + (goto-char (1- end)) + (throw :skip t))) + word-regexps) + (goto-char beg) + (setq marker (org-agenda-new-marker (point)) + category (org-get-category) + tags (org-get-tags-at (point)) + txt (org-format-agenda-item + "" + (buffer-substring-no-properties + beg1 (point-at-eol)) + category tags)) + (org-add-props txt props + 'org-marker marker 'org-hd-marker marker + 'priority 1000 'org-category category + 'type "search") + (push txt ee) + (goto-char (1- end))))))))) + (setq rtn ee) + (setq rtnall (append rtnall rtn))) + (if org-agenda-overriding-header + (insert (org-add-props (copy-sequence org-agenda-overriding-header) + nil 'face 'org-agenda-structure) "\n") + (insert "Search words: ") + (add-text-properties (point-min) (1- (point)) + (list 'face 'org-agenda-structure)) + (setq pos (point)) + (insert string "\n") + (add-text-properties pos (1- (point)) (list 'face 'org-warning)) + (setq pos (point))) + (when rtnall + (insert (org-finalize-agenda-entries rtnall) "\n")) + (goto-char (point-min)) + (org-fit-agenda-window) + (add-text-properties (point-min) (point-max) '(org-agenda-type search)) + (org-finalize-agenda) + (setq buffer-read-only t))) + ;;; Agenda TODO list (defvar org-select-this-todo-keyword nil) From d195e13448f0bf6e63b02a7087ddb2ba9aac1925 Mon Sep 17 00:00:00 2001 From: Carsten Dominik Date: Thu, 28 Feb 2008 19:38:08 +0100 Subject: [PATCH 2/3] intermediate --- ORGWEBPAGE/Changes.html | 6626 ----------------------------------- ORGWEBPAGE/Changes.org | 38 + ORGWEBPAGE/tmp/Changes.html | 106 +- org.el | 47 +- org.texi | 39 +- 5 files changed, 211 insertions(+), 6645 deletions(-) delete mode 100644 ORGWEBPAGE/Changes.html diff --git a/ORGWEBPAGE/Changes.html b/ORGWEBPAGE/Changes.html deleted file mode 100644 index 5ecd60b75..000000000 --- a/ORGWEBPAGE/Changes.html +++ /dev/null @@ -1,6626 +0,0 @@ - - - -Org-mode list of User-visible changes - - - - - - -

Org-mode list of User-visible changes

- -
-

Version 5.22

- - - -
-

Incompatible changes

- - -
    -
  • -The variable `org-log-done' is now less complex. -
  • -
  • -The in-buffer settings for logging have changed. Some -options no longer exists, some new ones have been added. - -
  • -
- -
-

Details

- - - -
-

Changes to logging progress

- - -

-There is now more control over which state changes are being -logged in what way. Please read carefully the corresponding -sections in the manual. Basically: -

-
    -
  • -The variable `org-log-done' has been simplified, it no -longer influences logging state changes and clocking out. -
  • -
  • -There is a new variable for triggering note-taking when -clocking out an item: `org-log-note-clock-out'. -
  • -
  • -Logging of state changes now has to be configured on a -pre-keyword basis, either in `org-todo-keywords' or in the -#+TODO in-buffer setting. -
  • -
  • -These per-keyword settings allow more control. For example -
    - WAIT(w@)    Record a note when entering this state.
    - WAIT(w!)    Record a timestamp when entering this state.
    - WAIT(w@/!)  Recore a note when entering and timestamp
    -             when leaving this state.  This is great for
    -             getting a record when switching *back* from
    -              WAIT to TODO.
    - WAIT(/!)    Record a timestamp when leaving this state.
    -             Here we not even define a fast access
    -             character, but just the logging stuff.
    -
    - - -
  • -
- -
-

Misc

- - -
    -
  • -M-RET no longer brakes a line in the middle, it will make a -new line ofter the current or (if cursor is at the beginning -of the line) before the current line. - -
  • -
  • -RET, when executed in a headline after the main text and -before the tags will leave the tags in the current line and -create a new line below the current one. - -
  • -
-
-
- -
-

Version 5.21

- - -

-Bug fixes, in particular the long-hunted bug about wrong window -positions after pressing SPACE in the agenda. Hopefully this -is really fixed. -

-
- -
-

Version 5.20

- - - -
-

Overview

- - - -
-

Remember/Refile/Goto

- - -
    -
  • -The use of prefix arguments for the commands `org-remember' -and `org-refile' has been normalized. - -
  • -
  • -The clock can now safely be used in a remember buffer. - -
  • -
  • -The variable `org-remember-use-refile-when-interactive' -introduced only in 5.19 is already obsolete. Please use -`org-remember-interactive-interface' instead. - -
  • -
  • -It is no longer necessary to update the refiling targets. - -
  • -
  • -Automatic isearch in `org-goto'. - -
  • -
  • -Outline-path-completion as alternative org-goto interface. - -
  • -
- -
-

Misc

- - -
    -
  • -Checkboxes now work hierarchically. - -
  • -
  • -`C-k' can now behave specially in headlines. - -
  • -
  • -Repeater for tasks in plain timestamps. - -
  • -
  • -All clock intervals of an item show in agenda/timeline. - -
  • -
  • -New parameter :step for clocktable, to get daily reports. - -
  • -
  • -Never loose a repeaded scheduled item from the agenda. - -
  • -
  • -Archiving a subtree now stores the outline path in a property. - -
  • -
  • -Links to messages in Apple Mail. - -
  • -
  • -Bug fixes. - -
  • -
-
- -
-

Incompatible Changes

- - -
    -
  • -The variable `org-remember-use-refile-when-interactive' -introduced only in 5.19 is already obsolete. Please use -`org-remember-interactive-interface' instead. - -
  • -
- -
-

Details

- - - -
-

Remember/Refile/Goto

- - -
    -
  • -The use of prefix arguments for the commands `org-remember' -and `org-refile' has been normalized: - -
      -
    • -when called without prefix argument, the command does its -normal job, starting a remember note or refiling a tree. - -
    • -
    • -when called with a single C-u prefix, these commands can be -used to select a target location and to jump there. In -the case of `org-remember', you will be prompted for a -template and then Emacs jumps to the default target -location or this template. In the case of `org-refile', -you select a location from the refile target list and jump -there. - -
    • -
    • -when called with two prefixes (`C-u C-u'), the command -jumps to the location last used for storing a note or a -moved tree. - -
    • -
  • -
  • -When the clock is running inside an remember buffer, storing -the remember buffer with `C-c C-c' will automatically clock -out. This was inspired by a request by Rainer Stengle. - -
  • -
  • -The variable `org-remember-use-refile-when-interactive' -introduced only in 5.19 is already obsolete. Please use -`org-remember-interactive-interface' instead. This new -variable does select the interface that is used to select -the target for a remember note in an interactive way. -Possible values are: - -
      -
    • -`outline': Use an outline of the document to select a -location. -
    • -
    • -`outline-path-completion': Use completion of an outline -path to select a location. -
    • -
    • -`refile': Offer the `org-refile-targets' as possible -targets. - -
    • -
  • -
  • -It is no longer necessary to update the refiling targets - -they are always current. - -
  • -
  • -In `org-goto', typing characters now automatically starts -isearch from the beginning of the buffer. The isearch is -special also because it only matches in headline. This -goes some way toward saving org-goto from being removed -from Org-mode. Thanks to Piotr Zielinski for the code, and -sorry that it took me so long to put it in. If you prefer -to use single letters n,p,f,b,u,q for navigation as before, -configure the variable `org-goto-auto-isearch'. - -
  • -
  • -Outline-path-completion is now available as an alternative -interface in the command `org-goto'. Please select the -default interface you'd like to use with the new variable -`org-goto-interface'. You can then select the alternative -interface with a prefix argument to `C-c C-j' (org-goto). I -am considering to make outline-path-completion the default -interface. Comments? - - -
  • -
- -
-

Misc

- - -
    -
  • -Checkboxes now work hierarchically. When a plain-list item -with a checkbox has children with checkboxes, the status of -the item's checkbox is calculated from the children, each -time a checkbox is toggled with C-c C-c. Thanks to Miguel -A. Figueroa-Villanueva for a patch to this effect. - -
  • -
  • -There is a new variable `org-special-ctrl-k'. When set, -`C-k' will behave specially in headlines: - -
      -
    • -When the cursor is at the beginning of a headline, kill -the entire line and possible the folded subtree below the -line. -
    • -
    • -When in the middle of the headline text, kill the -headline up to the tags. -
    • -
    • -When after the headline text, kill the tags. - -
    • -
    -

    This is following a proposal by Piotr Zielinski. -

    -
  • -
  • -You can now also have a plain (as opposed to deadline or -scheduled) repeater timestamp in a task. Switching the task -to DONE will now also shift a plain time stamp. This was a -request by Austin Frank. - -
  • -
  • -If an entry is clocked multiple times, it will now show up -several times in the agenda and timeline buffers, when -log-mode is on. This was a proposal by Jurgen Defurne. - -
  • -
  • -The clock table accepts a new parameter :step. This -parameter can be `day' or `week' and will result in separate -tables for each day or week in the requested time interval. -This was triggered by a proposal by Sacha Chua in her blog. - -
  • -
  • -A time-stamp with a repeater now no longer refers to the -date closest to the current day. Instead, it means either -today or the most recent match. This change makes sure that -overdue scheduled or deadline items never disappear from the -agenda. With the previous convention, an overdue scheduled -item would disappear. For example, a weekly item scheduled -for Sunday would appear as overdue until Wednesday, and the -suddenly disappear until next Sunday. Now the item will -show up as "Sched 7x" on Saturday. From Sunday on it will -be in the list as "Scheduled", i.e. old sins will be -forgiven. This follows a request by Warong, Dennis and -Bernt. - -
  • -
  • -Archiving a subtree now creates an additional property, -ARCHIVE_OLPATH. This property contains the "path" in the -outline tree to the archived entry, as it was in the -original file. For example, archiving Fix the door in the -following hierarchy - -

    -

    - * Tasks
    - ** HOME
    - *** Garage
    - **** Fix the door
    -
    -

    -

    -will file is with the following property -

    -

    -

    - :ARCHIVE_PATH: Task/HOME/Garage
    -
    -

    -

    -Note that you can configure (i.e. limit) the information -that gets stored upon archiving with the variable -`org-archive-save-context-info'. -

    -
  • -
  • -New file `org-mac-message.el' by John Wiegley to create -links for messages in Apple Mail, and to follow these -links. - -
  • -
  • -Bug fixes. - -
  • -
-
-
- -
-

Version 5.19

- - - -
-

Overview

- - -
    -
  • -Column view can list the clocked times of a subtree. - -
  • -
  • -Storing remember notes can use the `org-refile' interface. - -
  • -
  • -Storing remember notes no longer produced empty lines. - -
  • -
  • -Moving subtrees now folds all siblings of the subtree. - -
  • -
  • -New variable `org-agenda-todo-keyword-format'. - -
  • -
  • -Hack to allow brackets in link descriptions. - -
  • -
  • -Clocking into an entry can enforce a specific TODO state. - -
  • -
  • -EXPORT_FILE_NAME may be an absolute file name with "~". - -
  • -
  • -Bug fixes, lots of them. - -
  • -
- -
-

Details

- - -
    -
  • -A new special column definition lists the sum of all CLOCK -entries in a subtree. For example - -

    -

    - #+COLUMNS: %20ITEM %10Time_Estimate{:} %CLOCKSUM
    -
    -

    -

    -will allow you to compare estimated times (as given in the -Time_Estimate property) with the clocked times. This was a -request by Bernt Hansen. -

    -
  • -
  • -Storing remember notes can now use the `org-refile' -interface instead of the `org-goto' interface (see the -variable `org-remember-use-refile-when-interactive'). -Nothing will change if the note is stored immediately after -pressing `C-c C-c' in the *Remember* buffer. But if you -have chosen (e.g. by pressing `C-u C-c C-c') to -interactively select the filing location (file and -headline), the refile interface will be used instead. I am -excited about this change, because the `org-goto' interface -is basically a failure, at least for this application. Note -that in any case the refile interface has to be configured -first by customizing `org-refile-targets'. - -
  • -
  • -Notes inserted with remember now remove any whitespace -before and after the note before being pasted, so that there -will be no empty lines inserted together with the note. We -could invent special syntax in remember templates to allow -creating empty lines before a note - is there anyone who'd -want this? - -
  • -
  • -Moving subtrees now folds all siblings of the subtree. This -is the only reasonably simple way I could find to avoid the -reported inconsistencies in the folding state of the outline -tree after moving entries. There are reasons to like this -new behavior, because it easily visualizes where the tree is -located after the move. Still, not everyone might be happy -with this. Massive complaining would be needed to make me -fix this. - -
  • -
  • -New variable `org-agenda-todo-keyword-format' to specify the -width of the TODO keyword field in the agenda display. Use -it to get things to line up better. This was a proposal by -Rainer Stengele. - -
  • -
  • -If a link description inserted with `C-c C-l' contains -brackets, the brackets will now be converted into curly -braces. This looks similar enough. Supporting brackets in -link descriptions is, for technical reasons too long to -explain here, complex. - -
  • -
  • -The new option `org-clock-in-switch-to-state' can be set to -a TODO state that will be enforced when the clock is started -on an entry. This follows an idea by Sacha Chua. - -
  • -
  • -The EXPORT_FILE_NAME property may now also be an absolute -file name, and it may contain abbreviations like "~" for the -users home directory. This was requested by Adam Spiers. - -
  • -
  • -Bug fixes, lots of them. - -
  • -
-
- -
-

Version 5.18

- - -

-Minor fixes. -

-
- -
-

Version 5.17

- - - -
-

Details

- - - -
-

Whitespace

- - -
    -
  • -When cutting, pasting, or moving subtrees and items, the -empty lines before the subtree/item now belong to the -part and will be moved with it. There is one exception to -this rule: If the first child is moved down (or, -equivalently, the second is moved up), the amount of empty -lines above the first child to be moved along with it is -limited by the number of empty lines below it. This -sounds complicated, but it allows to have extra empty space -before the first child and still have good behavior of the -subtree motion commands. - -
  • -
  • -Plain lists items work the same. - -
  • -
-

I believe we have finally nailed this one. Thanks to Daniel -Pittman for bring this up again and to Eric Schulte for -pointing out that it is the empty lines before an entry -that really count. -

-

-This change was non-trivial, please give it a good test and -let me know about any problems. -

-
- -
-

Remember

- - -
    -
  • -The new command `org-remember-goto-last-stored' will jump -to the location of the remember note stored most recently. -If you have `org-remember' on a key like `C-c r', then you -can go to the location with a double prefix arg: `C-u C-u -C-c r'. This was a proposal by Rainer Stengele. - -
  • -
  • -Template items that are being prompted for can now specify -a default value and a completion table. Furthermore, -previous inputs at a specific prompt are captured in a -history variable. For example: - -

    -

    - %^{Author|Roald Dahl|Thomas Mann|Larry Niven}
    -
    -

    -

    -will prompt for an author name. Pressing RET without -typing anything will select "Roald Dahl". Completion will -give you any of the three names. And a history will be -kept, so you can use the arrow keys to get to previous -input. The history is tied to the prompt. By using the -same prompt in different templates, you can build a history -across templates. The ideas for this came from proposals -by Bastien and Adam. -

    -
  • -
  • -When a remember template contains the string `%!', the note -will be stored immediately after all template parts have -been filled in, so you don't even have to press `C-c -C-c'. The was a proposal by Adam Spiers. - -
  • -
- -
-

Refile

- - -
    -
  • -`org-refile-targets' has a new parameter to specify a -maximum level for target selection. Thanks to Wanrong Lin -for this proposal. - -
  • -
  • -When the new option `org-refile-use-outline-path' is set, -refile targets will be presented like a file path to the -completion interface: "level 1/level 2/level 3". This -may be the fastest interface yet to get to a certain -outline entry. Do we need to use this interface in other -places? Thanks to Jose Ruiz for this proposal. - -
  • -
-
-
- -
-

Version 5.16

- - - -
-

Details

- - - -
-

Restriction lock on agenda scope

- - -

-You can now permanently lock the agenda construction to a -certain scope, like a file or a subtree. So instead of -pressing "<" for each command in the agenda dispatcher, you -only once select a restriction scope. All subsequent agenda -commands will than respect this restriction. For example, -you can use this at work, to limit agendas to your work file -or tree, and at home to limit to the home file or tree. Or -you can use it during the day in order to focus in on certain -projects. -

-

-You select a scope with the command `C-c C-x <', which -restricts to the current subtree. When called with a `C-u' -prefix, the restriction is to the current file. You can also -make restrictions from the speedbar frame, see below. -

-

-When making a new restriction and an agenda window is -currently visible, it will immediately be updated to reflect -the new scope. TO if you like you can display an agenda view -and then watch it change in various scopes. -

-

-To get rid of the restriction, use the command "C-c C-x >". -Or press ">" in the agenda dispatcher. Also, and use of "<" -in the dispatcher will disable the restriction lock and -select a new restriction. -

-

-Thanks to Rick Moynihan for triggering this development. -

-
- -
-

Imenu and Speedbar support

- - -
    -
  • -Org-mode now supports Imenu. For example, with the setting - -

    -

    - (add-hook 'org-mode-hook 
    -    (lambda () 'imenu-add-to-menubar "Imenu"))
    -
    -

    -

    -a menu will be created in each Org-mode buffer that -provides access to all level 1 and level 2 headings. The -depth of the menu can be set with the variable -`org-imenu-depth'. -

    -
  • -
  • -org-mode now supports Speedbar. This means that you can -drill into the first and second level headlines of an -Org-mode file right from the speedbar frame. - -
  • -
  • -You can set a restriction lock for the Org-mode agenda to a -file or a subtree directly from the speedbar frame. Just -press "<" with the cursor on an Org-mode file or subtree to -set the lock and immediately update the agenda if it is -visible. Use ">" to get rid of the lock again. - -
  • -
-
-
- -
-

Version 5.15

- - - -
-

Details

- - -
    -
  • -There are new special properties TIMESTAMP and TIMESTAMP_IA. -These can be used to access the first keyword-less active -and inactive timestamp in an entry, respectively. - -
  • -
  • -New variable `org-clock-heading-function'. It can be set to -a function that creates the string shown in the mode line -when a clock is running. Thanks to Tom Weissmann for this -idea. - -
  • -
  • -Bug fixes. - -
  • -
-
- -
-

Version 5.14

- - - -
-

Overview

- - -
    -
  • -Remember and related stuff -
      -
    • -New command `org-refile' to quickly move a note. -
    • -
    • -Easy way to jump to the target location of remember template. -
    • -
    • -New %-escapes in remember templates: %c %(…) and %[…] -
    • -
    • -`org-remember-insinuate' simplifies remember setup - -
    • -
  • -
  • -Emphasis and Font-lock stuff -
      -
    • -Stacked emphasis is no longer allowed. -
    • -
    • -You may finally emphasize a single character like *a*. -
    • -
    • -Font-lock now can hide the emphasis markers -
    • -
    • -Text in the "=" emphasis is exported verbatim -
    • -
    • -There is a new emphasis marker "~" for verbatim text -
    • -
    • -Constructs treated specially by the exporters can be highlighted - -
    • -
  • -
  • -Properties and Column view -
      -
    • -More control over which properties use inheritance -
    • -
    • -CATEGORY="work" can now be used in a tags/property search -
    • -
    • -the {+} summary type can specify a printf-style output format -
    • -
    • -New currency summary type {$} - -
    • -
  • -
  • -The date/time prompt -
      -
    • -While entering data, watch live the current interpretation. -
    • -
    • -The date prompt now prefers to select the future -
    • -
    • -Easier modification of time in an existing time stamp. - -
    • -
  • -
  • -Export -
      -
    • -You can now export some special strings in HTML, like "…" -
    • -
    • -#+EMAIL: may contain several email addresses - -
    • -
  • -
  • -Agenda -
      -
    • -In the agenda, a few keys have changed: `g', `G', and `e'. - -
    • -
  • -
  • -Miscellaneous -
      -
    • -Class-dependent sectioning structures in LaTeX export. -
    • -
    • -Radio-lists modeled after the radio tables. -
    • -
    • -The default for `org-ellipsis' is back to nil -
    • -
    • -Support for pabbrev-mode -
    • -
    • -New variable `org-show-entry-below'. - -
    • -
  • -
- -
-

Incompatible changes

- - -
    -
  • -If you have customized the variable `org-emphasis-alist' or -org-export-emphasis-alist', you need to do it again by first -canceling your customization and then adding it again. - -
  • -
  • -I know that some people have defined their own private helper -functions to select a specific remember template, without being -prompted, like this: - -

    -

    - (defun my-remember-template-n ()
    -    (interactive)
    -    (org-remember ?n))
    -
    -

    -

    -You need to modify this. The character selecting the template -must now be the second argument to `org-remember': -

    -

    -

    - (defun my-remember-template-n ()
    -    (interactive)
    -    (org-remember nil ?n))
    -
    -

    -
  • -
  • -`C-c C-w' now refiles an entry. To get a sparse tree of -deadlines, use `C-c / d' instead. - -
  • -
- -
-

Details

- - - -
-

Remember and related stuff

- - -
    -
  • -New command `org-refile' to quickly move a note to a -different place. It is bound to `C-c C-w'. The foremost -application might be to put a note or task captured with -`remember' into the proper list or project. The command -offers a list of possible refiling targets for completion. -These are headings under which the entry will be inserted -as a subitem. By default, this will offer all top-level -headings in the current buffer, but you can configure the -variable `org-refile-targets' to get more complex -definitions. For example: - -

    -

    - (setq org-refile-targets '((nil . (:level . 2))))
    -
    -

    -

    -selects all level 2 headlines in the current buffer as -targets. And -

    -

    -

    - (setq org-refile-targets
    -      '((org-agenda-files . (:tag . "refile"))))
    -
    -

    -

    -searches all agenda files and selects headlines that are -explicitly marked with the tag :refile: . Note that the -list of targets is built upon first use only, to rebuilt -it, call the command `C-c C-w' with a double prefix -argument. -

    -

    -This is based on an idea and example implementation by Max -Mikhanosha. Many thanks Max. -

    -
  • -
  • -You can now use a C-u prefix on `org-remember' to jump to -the location where a specific templates stores its notes. -For example, if you have `org-remember' bound to `C-c r', -then `C-u C-c r n' will get you to the file and headline -given in the template associated with the letter "n". - -

    -This was proposed by someone, but I have lost track who. -Sorry, and thanks anyway. -

    -
  • -
  • -New %-escapes in remember templates: - -

    -

    - %c     insert the current clipboard, like C-y would do
    - %(..)  evaluate Lisp expression and insert the result
    - %[..]  include file
    -
    -

    -

    -Thanks to Adam Spiers and Tim O'Callaghan. -

    -
  • -
  • -New function `org-remember-insinuate' that makes is easier -to set Org-mode specific values for remember variables. -Thanks to Michael Olson for this proposal. It is -equivalent to: - -

    -

    - (require 'remember)
    - (setq remember-annotation-functions '(org-remember-annotation))
    - (setq remember-handler-functions '(org-remember-handler))
    - (add-hook 'remember-mode-hook 'org-remember-apply-template))
    -
    -

    -

    -You might still want to set `org-default-notes-file' to -provide a default for templates without a file, and -`org-directory' to show where to find other org files. -

    -
  • -
- -
-

Emphasis and Font-lock stuff

- - -
    -
  • -Stacked emphasis like */bold italic/* is no longer allowed. - -
  • -
  • -You may finally emphasize a single character like *a*. - -
  • -
  • -Font-lock now can hide the emphasis markers, just like Muse -does. Configure the variable `org-hide-emphasis-markers' -if you want this. Showing the characters continues to be -the default in Org-mode. - -
  • -
  • -Text in the "=" emphasis is now exported verbatim, i.e. no -further parsing and interpretation of this text takes place. So -you can write =quoted *xxx* a_x = b=. This and the following -point implement a request by Daniel Clemente. - -
  • -
  • -There is a new emphasis marker "~" which marks text to be -exported verbatim, without special formatting. Inside an -org-mode file, this text is highlighted with the org-verbatim -face. I am not happy with the face yet (currently is is like -org-code, but underlined), please suggest a better one. - -
  • -
  • -Whether an emphasis environment is verbatim or not is now an -extra flag in the variable `org-emphasis-alist'. If you have -configured this variable, do it again by first canceling your -customization to revert to the default, and then adding it -again. - -
  • -
  • -New variable `org-highlight-latex-fragments-and-specials'. -When turned on, Org-mode will highlight all strings that -are treated in a special way by the exporters. This is -great for export-oriented writing, but maybe a bit noisy -for note taking, so this feature is off by default. - -
  • -
- -
-

Properties and Column view

- - -
    -
  • -`org-use-property-inheritance' may now also be a list of -property names that should be treated with inheritance -during searches. - -
  • -
  • -CATEGORY="work" can now be used in a tags/property search, -even if the category is not specified as a property in the -entry, but rather is inherited or derived from #+CATEGORY. -Thanks to Adam, Tim, and Bastien for an interesting -discussion around this issue. - -
  • -
  • -Summary type improvements in column view. -
      -
    • -The {+} summary type can specify a printf-style output -format for computed values like this: {+;%5.2f} -This was triggered by a report by Levin. -
    • -
    • -New currency summary type {$}, which so far is just a -shorthand for {+;%.2f}. Do we need to have a currency -symbol in front of each value. Scott Jaderholm asked for -this, but I am not sure if this is already what he meant. - -
    • -
  • -
- -
-

The date/time prompt

- - -

-There have been several small but very useful additions to -the date prompt. -

-
    -
  • -While entering data at the date prompt, the current -interpretation of your input is shown next to your input in -the minibuffer. I find this great to understand how the -input works. If you find the extra stuff in the minibuffer -annoying, turn it off with `org-read-date-display-live'. - -
  • -
  • -The date prompt now prefers to select the future. If you -enter a date without a month, and the day number is before -today (for example, on the 16th of the month you enter -"9"), Org-mode will assume next month. Similarly, if you -enter a month and no year, next year will be assumed if the -entered month is before the current, for example if you -enter "May" in September. Thanks to John Rakestraw for -this great suggestion. If you find it confusing, turn it -off with `org-read-date-prefer-future'. - -
  • -
  • -When modifying an existing date using `C-c .' at the stamp, -the time or time range in the stamp are now offered as -default input at the prompt. This goes a long way to -simplifying the modification of an existing date. Thanks -to Adam Spiers for this proposal. - -
  • -
- -
-

Export (all implemented by Bastien…)

- - -
    -
  • -You can now export special strings in HTML. Here is the -list of newly performed conversions: - - -- - - - - - - - - -
    OrgDescriptionHTML
    \\-double backslash followed by minus&shy;
    --two dashes (minuses)&ndash;
    ---three dashes (minuses)&mdash;
    ...three dots&hellip;
    - - -

    -You can turn this globally on or off with -`org-export-with-special-strings' or locally with "-:t" or -"-:nil" in the #+OPTIONS line. Thanks to Adam Spiers for -starting the discussion, and thanks to Daniel Clemente and -William Henney for relevant inputs. -

    -
  • -
  • -Comma-separated emails in #+EMAIL: are correctly exported. -Thanks to Raman for pointing out this omission. - -
  • -
- -
-

Agenda

- - -
    -
  • -In the agenda, a few keys have changed -
    - g  does now the same a "r", refresh current display,
    -    because "g" is the Emacs standard for "refresh"
    - G  toggle the time grid, used to be "g"
    - e  Execute another agenda command, pretty much the same as
    -    `C-c a', but shorter and keep the same agenda window.
    -
    - -
  • -
- -
-

Miscellaneous (much of it from Bastien)

- - -
    -
  • -You can now select the sectioning structure of your LaTeX -export by setting it either globally -(`org-export-latex-default-class') or locally in each Org -file (with #+LaTeX_CLASS: myclass). You can also customize -the list of available classes and their sectioning -structures through the new `org-export-latex-classes' -option. Thanks to Daniel for discussions and suggestion on -this issue. - -
  • -
  • -You can send and receive radio lists in HTML, -LaTeX or TeXInfo, just as you send and receive radio -tables. Check the documentation for details and examples. - -
  • -
  • -The default for `org-ellipsis' is back to nil, some people -seem to have had problems with the face as a default. - -
  • -
  • -Support for pabbrev-mode, needs pabbrev version 1.1. Thanks -to Phillip Lord for adapting his package to make this -possible. - -
  • -
  • -New variable `org-show-entry-below' to force context-showing -commands to expose the body of a headline that is being -shown. Thanks to Harald Weis for pointing out this omission. - - -
  • -
-
-
- -
-

Version 5.13i

- - - -
-

Details

- - -
    -
  • -On the date/time prompt, you can now also answer with -something like +2tue to pick the second tuesday from today. -This was a proposal by Sacha Chua. - -
  • -
  • -When interpopating into Lisp formulas in the spreadsheet, -the values of constants and properties are no longer -enclosed into parenthesis. When interpolating for calc, -this still happens in order to allow expressions in -constants. This problem was reported by Eddward DeVilla. - -
  • -
  • -When a directory is listed in `org-agenda-files', all files -with extension matched by the new variable -`org-agenda-file-regexp' in that directory will be agenda -files. - -
  • -
  • -Bug fixes. - -
  • -
-
- -
-

Version 5.13

- - - -
-

Overview

- - -
    -
  • -Bug fixes and improvements in column view -
      -
    • -All known bugs fixed. -
    • -
    • -A Column view can be captured into a dynamic block. -
    • -
    • -The ITEM column is formatted core compactly. -
    • -
    • -Also ITEM can be edited with `e' - -
    • -
  • -
  • -The agenda dispatcher -
      -
    • -`<' cycles through restriction states. -
    • -
    • -Multi-character access codes to commands (= sub-keymaps). - -
    • -
  • -
  • -Sorting improvements -
      -
    • -User-defined sorting keys. -
    • -
    • -Sorting by properties. -
    • -
    • -Sorting of plain lists. - -
    • -
  • -
  • -HTML <div> structure - -
  • -
  • -Other stuff -
      -
    • -New variables, several of them. -
    • -
    • -Drawers can be set on a per-file basis. -
    • -
    • -Better control over priority fontification in agenda. -
    • -
    • -M-up and M-down now move the current line up and down. -
    • -
    • -Abort remember template selection with C-g. - -
    • -
  • -
- -
-

Details

- - - -
-

Bug fixes and improvements in column view

- - -
    -
  • -All the bugs described by Scott Jaderholm have been fixed -(at least I hope so…). - -
  • -
  • -You can now capture a column view into a dynamic block, for -exporting or printing it. The column view can be - -
      -
    • -global, i.e. for the entire file -
    • -
    • -local, i.e. for the subtree where the dynamic block is -
    • -
    • -from an entry with a specific :ID: property. - -
    • -
    -

    You can identify the entry whose column view you want to -capture by assigning an :ID: property, and use that property -in the dynamic block definition. For example: -

    -

    -

    - * Planning
    -   :PROPERTIES:
    -     :ID: planning-overview
    -   :END:
    -
    - [...]
    -
    - * The column view
    - #+BEGIN: columnview :hlines 1 :id "planning-overview"
    -
    - #+END:
    -
    -

    -

    -Use `C-c C-x r' to insert such a dynamic block, and you will -be prompted for the ID. -

    -
  • -
  • -When the current column format displays TODO keyword, -priority or tags, these parts are stripped from the content -of the ITEM column, making for more compact and readable -entries. When any of these "properties" are not listed in -the current column format, they are instead retained in the -ITEM column. - -
  • -
  • -You can now also edit the ITEM column with `e'. - -
  • -
- -
-

The agenda dispatcher

- - -
    -
  • -Instead of pressing `1' to restrict an agenda command to -the current buffer, or `0' to restrict it to the current -subtree or region, you can now also press `<' once or -twice, respectively. This frees up `1' and `0' for user -commands, a request by Bastien. In fact, "<" cycles -through different restriction states. "1" and "0" are -still available for backward compatibility, until you bind -them to custom commands. - -
  • -
  • -The access code to custom agenda commands can now contain -several characters, effectively allowing to bundle several -similar commands into a sub-keymap. This follows an -excellent proposal by Adam Spiers. For example: - -

    -

    - (setq org-agenda-custom-commands
    -   '(("h" . "HOME + Name tag searches") ; describe prefix "h"
    -     ("hl" tags "+HOME+Lisa")
    -     ("hp" tags "+HOME+Peter")
    -     ("hk" tags "+HOME+Kim")))
    -
    -

    -
  • -
  • -The user function option in org-agenda-custom-commands may -now also be a lambda expression, following a request by -Adam Spiers. - -
  • -
- -
-

Sorting improvements

- - -

-We are using a new routine for sorting entries, courtesy of -John Wiegley. Many thanks to John. -

-
    -
  • -You can define your own function to extract a sorting key -and in this way sort entries by anything you like. - -
  • -
  • -Entries can now be sorted according to the value of a -property. - -
  • -
  • -Plain lists can be sorted. - -
  • -
- -
-

HTML <div> structure

- - -

-There is now a <div>-based structure in exported HTML. -

-
    -
  • -The table of context is wrapped into a div with a class -"table-of-contents". - -
  • -
  • -The outline structure is embedded in <div> elements with -classes "outline-1", "outline-2" etc. - -
  • -
  • -The postamble, containing the author information and the -date is wrapped into a div with class "postamble". - -
  • -
-

I am not sure if the class names are the best choice, let me -know if there are more "canonical" choices. -

-

-Thanks to Mike Newman and Cezar for input, and in particular -to Mike for his clearly formulated specification. -

-
- -
-

Other stuff

- - -
    -
  • -New variable `org-agenda-window-frame-fractions' to -customize the size limits of the agenda window in the case -that you display the agenda window by reorganizing the -frame. - -
  • -
  • -Drawers can be set on a per-file basis using - -

    -

    - #+DRAWERS: HIDDEN STATE PROPERTIES
    -
    -

    -

    -This will define the drawers :HIDDEN: and :STATE:. -The :PROPERTY: drawer should always be part of this list, or -your properties will not be folded away. -Thanks to Richard G. Riley for this proposal. -

    -
  • -
  • -`org-agenda-fontify-priorities' may now also be an -association list of priorities and faces, to specify the -faces of priorities in the agenda individually. - -
  • -
  • -The variable `org-export-with-property-drawer' no longer -exists, please use `org-export-with-drawers' instead. Also, -the corresponding switch in the #+OPTIONS line has changed -from "p" to "d". Thanks to Bastien for pointing out that we -needed to handle not only the property drawer. - -
  • -
  • -M-up and M-down now move the current line up and down (if -not at a headline, item or table). Among other things you -can use this to re-order properties in the drawer. This was -a proposal by Bastien. - -
  • -
  • -New variable `org-agenda-todo-ignore-with-date', based on a -request by Wanrong Lin. - -
  • -
  • -Aborting remember template selection with C-g now kills the -remember buffer and restores the old window configuration. -This was a request by Nuutti Kotivuori. - -
  • -
-
-
- -
-

Version 5.12

- - - -
-

Overview

- - -
    -
  • -Remember templates can now have name. -
  • -
  • -`C-c C-k' will abort taking a note (remember of log) -
  • -
  • -`C-c C-x C-w' and `C-c C-x M-w' now accept a prefix arg. -
  • -
  • -Lines in the agenda can be fontified according to priority. -
  • -
  • -New variable `org-scheduled-past-days'. -
  • -
  • -New variables `org-agenda-deadline-leaders' and -`org-agenda-scheduled-leaders'. -
  • -
  • -New sparse tree function `org-sparse-tree'. -
  • -
  • -The variable `org-ellipsis' now defaults to `org-link'. -
  • -
  • -The #+OPTIONS line has a new option "tags". -
  • -
  • -New variable `org-use-property-inheritance'. - -
  • -
- -
-

Incompatible Changes

- - -
    -
  • -`C-c /' now calls `org-sparse-tree'. - -
  • -
- -
-

Details

- - -
    -
  • -Remember templates can now have a template name as the first -element. The name will be listed along with the selection -character when prompting for a template. It is best to have -the name start with the selection character, for example if -you use ("Note" "n"), you will be prompted like "[n]ote". -Thanks to Matiyam for this proposal. - -
  • -
  • -`C-c C-k' will abort taking a note. You can use this in remember -buffers and when taking a logging note (e.g. for a state -change). Thanks to Bastien. - -
  • -
  • -`C-c C-x C-w' and `C-c C-x M-w' now accept a prefix arg to -cut N sequential subtrees. This was a proposal by John. - -
  • -
  • -Lines in the agenda are now bold if they have priority A and -italic if they have priority C. You can turn this off using -the variable `org-agenda-fontify-priorities'. Thanks to -John Wiegley for the idea and code. - -
  • -
  • -New variable `org-scheduled-past-days' to set the number a -scheduled item will be listed after its date has passed. -Default is 10000, i.e. indefinitely. - -
  • -
  • -New variables `org-agenda-deadline-leaders' and -`org-agenda-scheduled-leaders' to adjust the leading text o -scheduled items and deadline in the agenda. Thanks to John -Wiegley for a patch. - -
  • -
  • -New sparse tree function `org-sparse-tree'. This is now the -default binding for `C-c /'. It requires one additional -keypress to select a command, but in return is provides a -single interface to all the different sparse tree commands, -with full completion support. - -
  • -
  • -The variable `org-ellipsis' now defaults to the face -`org-link' because the visibility of the dots is really bad -and I have found this change very useful indeed. - -
  • -
  • -The #+OPTIONS line has a new option "tags" which can be used -to set `org-export-with-tags'. Thanks to Wanrong Lin for -this proposal. - -
  • -
  • -New variable `org-use-property-inheritance'. Configure it -to `t' if you want that searching for entries with certain -properties always should assume inheritance. This is not -well tested yet, please check it out. - -
  • -
  • -Bug fixes - -
  • -
-
- -
-

Version 5.11

- - - -
-

Overview

- - -
    -
  • -SUMMARY, DESCRIPTION, LOCATION properties for iCalendar -
  • -
  • -Command to jump to the running clock -
  • -
  • -Clock entries can now have their own drawer -
  • -
  • -`C-c C-x C-r' only updates a clocktable at point -
  • -
  • -New way to assign a remember template to a single key -
  • -
  • -`C-n' and `C-p' are back to their default binding -
  • -
  • -`C-x C-s' in agenda buffer saves all org-mode buffers -
  • -
  • -Schedule/deadline leaves note in agenda buffer -
  • -
  • -Prefix argument for `C-c C-d/s' will remove date -
  • -
  • -New variable to make block aranda more compact -
  • -
  • -Better tag alignment in agenda - -
  • -
- -
-

Incompatible changes

- - -
    -
  • -If you have customized `org-drawers', you need to add -"CLOCK" to the list of drawers. - -
  • -
  • -The variable `org-agenda-align-tags-to-column' has been -renamed to `org-agenda-tags-column'. The old name is still -an alias, in Emacs 22 and in XEmacs, but not in Emacs 21. - -
  • -
  • -The default value for both `org-tags-column' and -`org-agenda-tags-column' is now -80. - -
  • -
  • -The variable -`org-insert-labeled-timestamps-before-properties-drawer' -is now obsolete. - -
  • -
- -
-

Details

- - -
    -
  • -The LOGGING property allows to modify the settings for -progress logging for a single entry. For example: - -

    -

    - :PROPERTIES:
    -   :LOGGING: nologging nologrepeat
    - :END:
    -
    -

    -

    -turns off all progress logging for the current entry and its -children. -

    -
  • -
  • -The properties SUMMARY, DESCRIPTION and LOCATION have -special meaning during iCalendar export, when they translate -to the corresponding VEVENT and VTODO fields. If not given, -Org-ode continues to use cleaned-up version of the headline -and body as the summary and the description, respectively. - -
  • -
  • -New function to go to the entry with the currently running -clock. Bound to `C-c C-x C-j', in agenda also to "J". If -you use this often, you might even want to assign a global -key. Thanks to Bernt and Bastien. - -
  • -
  • -Clock entries can now have their own drawer, the :CLOCK: -drawer. Check out the variable `org-clock-into-drawer' for -configuration of this feature. The default is to create a -drawer when the second clocking line gets added to an entry. -Note that "CLOCK" has been added to the default value of -`org-drawers', but if you have configured that variable, you -must go back and add "CLOCK" yourself to get this drawer -folded away. Thanks to Tom Weissman for pointing out that -too many clock entries are visually annoying. - -
  • -
  • -`C-c C-x C-r' no longer tries to find the first clocktable -in a buffer and then updates it. Instead, it will update -the clocktable at point if there is one (same as C-c C-c -will do if the cursor is in the "#+BEGIN" line of the -table). If there is none at point, a new one will be -inserted. This change was necessary because the new :scope -parameter allows to have several clocktables in a buffer. -Thanks to Bastien for pointing this out. -To update all dynamic blocks in a file, use `C-u C-c C-x C-u'. - -
  • -
  • -The function `org-remember' can now be called with a -template selection key as argument. This helps to make key -bindings that go directly to a specific template without -being prompted for a template, like this: - -

    -

    - (global-set-key [f5] (lambda () (interactive) (org-remember "j")))
    -
    -

    -

    -Thanks to Richard G Riley for bringing this up. -

    -
  • -
  • -`C-n' and `C-p' are back to their default binding -(next/previous line) in the agenda buffer. Enough people, -including recently Denis Bueno, have complained about this, -and I agree it is not good to break habits like that. - -
  • -
  • -`C-x C-s' in an agenda buffer now saves all org-mode buffers -(also `s' does this). - -
  • -
  • -Setting schedule or deadline dates from the agenda now -produces a note in the agenda, similarly to what happens -with S-left/right. - -
  • -
  • -Using a prefix argument for `C-c C-d' or `C-c C-s' will -remove the deadline or scheduling date from an item. Thanks -to Wanrong Lin for this proposal. - -
  • -
  • -New variable `org-agenda-compact-blocks'. When set, the -space between blocks in a block agenda is reduced as much as -possible, to show more items on a single screen. - -
  • -
  • -The variable `org-agenda-tags-column' (renamed from -`org-agenda-align-tags-to-column') can now also be negative, -to mean alignment to the left. The new default is -80, just -like it is now for `org-tags-column'. - -
  • -
  • -Bug fixes - -
  • -
-
- -
-

Version 5.10

- - - -
-

Overview

- - -
    -
  • -Category and the archive location can be properties. -
  • -
  • -The clocktable has a new :scope parameter. -
  • -
  • -CSV support when importing a table. -
  • -
  • -Better defaults when modifying a time stamp. -
  • -
  • -New way to specify the duration of an appointment. -
  • -
  • -More aggressive version of orgstruct-mode improved wrapping. -
  • -
  • -Modifications to priority cycling. -
  • -
  • -Modifications to computations in column view. -
  • -
  • -New command `org-occur-in-agenda-files'. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Details

- - -
    -
  • -Both the category and the archive location in a (sub)tree of -the buffer can now be specified using a property, for -example: - -

    -

    - * Tree with special properties
    -   :PROPERTIES:
    -     :CATEGORY: Examples
    -     :ARCHIVE:  /some/special/file::
    -   :END:
    -
    -

    -

    -This is a much cleaner way of dealing with multiple -categories and archives in a single file. The preferred use -of the #+CATEGORY and #+ARCHIVE lines is now to set a -single default for the file which is then locally -overruled by properties. This was a proposal from Bastien -if I remember correctly. Multiple #+ lines still work -and I don't plan to remove this support soon, but I -encourage you to stop using them. -

    -
  • -
  • -The clocktable has a new :scope parameter that determines -the range in the file from which clock entries should be -taken. This can be anything from the local subtree to the -entire buffer to even the full list of agenda files. Legal -values are: - - -- - - - - - - - - - - -
    valuescope
    nilthe current buffer or narrowed region
    filethe full current buffer
    subtreethe subtree where the clocktable is located
    treeNthe surrounding level N tree, for example tree3
    treethe surrounding level 1 tree
    agendaall agenda files
    - - -

    -Thanks to Jason F. McBrayer and Bernt Hansen for -inspiration. Thanks to cranreuch (what is you full name?) -for mentioning, at the right moment, that the clocktable is -not so bad - that remark made it seem worthwhile to add -features. -

    -
  • -
  • -The commands to import a table and to convert a region to a -table can now handle comma-separated values (CSV). The -algorithm does not yet treat quoting correctly, but for -basic input it works. - -
  • -
  • -When modifying an existing time stamp, or when entering the -second stamp of a range, the date prompt will now -consistently default to the date/time in the existing stamp. -This was triggered by Nuutti Kotivuori's request. - -
  • -
  • -At the date/time prompt, there is a new way to specify a -range of hours, by using "+DURATION" after the time. For -example: - -

    -

    -  14:00+2  means 14:00-16:00
    -  2pm+2:30 means 14:00-16:30
    -
    -

    -

    -Again, Nuutti Kotivuori's request. -

    -
  • -
  • -When you use the function `turn-on-orgstruct++' to turn on -orgstruct-mode, the special org-mode settings for -auto-filling, indentation and paragraphs are exported into -the buffer, so that typing list items with indentation works -better. This was Bastien's idea and request. - -
  • -
  • -New variable `org-priority-start-cycle-with-default'. When -t (the default), priority cycling will initially set the -default priority and then increase or decrease. When nil, -the first priority set by cycling is already 1 different -from the default priority. This was mostly driven by -Bastien. - -
  • -
  • -In column view: When an entry has a property for a summary -column defined, its value is normally overwritten by the sum -of all the children's values each time you enter column -view. Now there is an exception to this rule: If none of -the children has that particular property defined, the -parent's value stays. In this way you can still place TODO -items under such an entry without getting the property value -changed. Thanks to Russel Adams for pointing out that this -is a better way of doing things. - -
  • -
  • -In column view, computed values are now bold face, and -trying to edit them is an error. I think this works, but -testing is appreciated. - -
  • -
  • -New command `org-occur-in-agenda-files', this is basically -the quick command John Wiegley proposed the other day, but -it also works when the agenda files are not yet in buffers. -The key is `C-c C-x /', any better proposals? - -
  • -
  • -Links containing a space will now be handled correctly when -calling the browser. Note that you need to enclose such -links in square or angular brackets. - -
  • -
  • -Bug fixes. - -
  • -
-
- -
-

Version 5.09

- - - -
-

Overview

- - -
    -
  • -Taking a note upon TODO state changes can be restricted to -selected states. - -
  • -
  • -The format in which dates are shown in the daily/weekly -agenda can be configured. - -
  • -
  • -The default for `org-remember-store-without-prompt' is now t. - -
  • -
  • -`org-goto' has been made into a general lookup command. - -
  • -
  • -Priority cycling goes back to the nil state. - -
  • -
  • -You can store a remember note to the last used location. - -
  • -
  • -On Emacs 23, the headline faces for org-mode are now -inherited from the outline faces. - -
  • -
- -
-

Incompatible Changes

- - -
    -
  • -The default for `org-remember-store-without-prompt' is now -t, in order to better match the original intent of -remember.el (storing a note with minimum interruption of -work flow). I expect that many people will be hit by this -incompatible change - nevertheless I believe it is the right -thing to do. - -
  • -
- -
-

Details

- - -
    -
  • -You can now select specific states for recording a note when -switching to that state. With the setting - -

    -

    - #+SEQ_TODO: TODO(t) ORDERED(o@) INVOICE(i@) PAYED(p) | RECEIVED(r)
    - #+STARTUP: lognotestate
    -
    -

    -

    -only the states ORDERED and INVOICE will record a timestamp -and a note. -

    -
  • -
  • -You can now set the format of the string for each day in the -agenda and timeline buffers. You can use a format string -interpreted by `format-time-string', or you can write your -own function. Configure the new variable -`org-agenda-format-date'. Thanks to Levin for triggering -this development with a patch. - -
  • -
  • -The default for `org-remember-store-without-prompt' is now -t, in order to better match the original intent of -remember.el (storing a note with minimum interruption of -work flow). Since we can assign files and headlines to -templates, I guess this takes care of selecting a filing -location in most cases. For interactive filing, you now -need a prefix command when exiting `remember'. - -
  • -
  • -`org-goto' (bound to `C-c C-j') now uses an indirect buffer -and has additional commands enabled: Org-occur with `C-c /' -or even faster with `/', and the commands needed to select -and copy a region. This make `org-goto' a more general -lookup command instead of only a jumping command. Remember -that you can exit with `Q' to go back to the original -location. Thanks to William Henney for this idea. - -
  • -
  • -Setting the priority with S-up/down now cycles back to a -state where no priority is specified. This was requested by -Rick Moynihan. - -
  • -
  • -You can store a remember note to the last used location. -So if you select a location interactively once, you can -re-use it without having to find it again. For this, exit -the remember buffer with `C-u C-u C-c C-c'. The leading -comment in the remember buffer will tell exactly where the -note goes if you exit with a particular command. -Thanks to Maxim Loginov for this idea. - -
  • -
  • -On Emacs 23, the headline faces for org-mode are now -inherited from the outline faces. This is just a -convenience, so that you only have to configure one set of -faces, and that will then be outline-1 .. outline-8. You -will actually not see any difference in org-mode, because -Stefan Monnier has made the outline faces in Emacs 23 to -match the current org-mode faces. - -

    -This change does not effect XEmacs, nor Emacs 21 and 22. -

    -
  • -
-
- -
-

Version 5.08

- - - -
-

Incompatible changes

- - -
    -
  • -The default for `org-deadline-warning-days' is now 14. - -
  • -
- -
-

Details

- - -
    -
  • -There is now a separate interface for fast and directly -setting a TODO keyword. This interface kicks in when you -have configured keys for TODO keywords like - -

    -

    - #+SEQ_TODO: TODO(t) WAITING(w) | DONE(d) CANCELED(c)
    -
    -

    -

    -C-c C-t still does the cycling thing, you need to use a -prefix argument to get to the fast interface. Or configure -the variable `org-use-fast-todo-selection' to t, then this -will be the default and the prefix argument will make the -command fall back to cycling. -

    -

    -The tag selection no longer does include TODO keywords - -Leo's arguments have convinced me that this is not a good -idea. If you'd like to see the TODO keywords in the tags -interface anyway, set the variable -`org-fast-tag-selection-include-todo'. Thanks to Leo and -others for input on this issue. -

    -
  • -
  • -New variable `org-edit-timestamp-down-means-later'. When -set, `S-down' on a timestamp will change the timestamp to -later. Thanks to Raman for this idea. - -
  • -
  • -Property names can now contain non-ascii word characters. -This follows a request from Daniel Clemente. - -
  • -
  • -For export, the date that should be given in the exported -file can now be set to a specific value with a line like - -

    -

    - #+DATE: 15 November 2003
    -
    -

    -

    -If you want to use the date/time when the file was created, -use a format string that will be interpreted by -`format-time-string', for example: -

    -

    -

    - #+DATE: %Y/%m/%d %X
    -
    -

    -
  • -
  • -The default of `org-deadline-warning-days' has changed to 14 -days. 30 was really too much, I suspect most people (me -included) have changed this. - -
  • -
  • -When a deadline has an individual lead time, this lead time -obviously overrules `org-deadline-warning-days'. However, -if you bind `org-deadline-warning-days' to a number <=0, for -example during a custom agenda command, then the absolute -value of this number will be enforced also when a different -lead time has been specified. This is useful to get a list -of all deadlines coming up in the next N days. - -
  • -
-
- -
-

Version 5.07

- - - -
-

Overview

- - -
    -
  • -Different faces for different TODO keywords. - -
  • -
  • -Setting TODO states through the TAG setting interface. - -
  • -
  • -Context information is stored when moving a tree to the archive. - -
  • -
  • -Sorting can be done by priority. - -
  • -
  • -`Org-ellipsis' can now also be a face. - -
  • -
  • -Scheduling info is no longer removed entry is marked CLOSED. - -
  • -
  • -Unavailable files in `org-agenda-files' can be skipped. - -
  • -
- -
-

Incompatible changes

- - -
    -
  • -The time of archiving is now stored as a property. -ARCHIVED is no longer a special time keyword. - -
  • -
  • -Scheduling info is no longer removed entry is marked CLOSED. - -
  • -
- -
-

Details

- - -
    -
  • -You can now define different faces for different TODO -keywords. This request has come up frequently, so here it -is: Use the variable `org-todo-keyword-faces'. - -

    -A Here is a configuration example: -

    -

    -

    - (setq org-todo-keyword-faces
    -   '(("TODO"      . org-warning)
    -     ("DEFERRED"  . shadow)
    -     ("CANCELED"  . (:foreground "blue" :weight bold
    -                    :underline t))))
    -
    -

    -

    -Org-mode continue still use `org-todo' and `org-done' for -keywords that have no specific face assigned. -

    -
  • -
  • -Some People use TODO states more like tags. For them the -TODO keywords mark special states and they like to quickly -switch between states in arbitrary sequence. The standard -TODO interface is not perfect for this, because it assumes -that the states are reached in sequence. However, the fast -tag setting interface is in fact perfect for this. You can -now "misuse" the TAG selection interface to also set TODO -states. All you need to do is to assign keys to the TODO -states, just like you also do for tags. - -

    -

    - #+SEQ_TODO: TODO(t) WAITING(w) | CANCELED(c) DONE(d)
    - #+TAGS: @HOME(h) @OFFICE(o) @SHOP(s)
    -
    -

    -

    -Next time you try to set tags with C-c C-c, the todo states -will be offered as well, and the corresponding key will -switch the entry to that state. -

    -
  • -
  • -New variable `org-archive-save-context-info' governs if -information that would be lost by moving a subtree to the -archive file, should be stored as special properties. For -example, - -

    -

    - (setq org-archive-save-context-info '(itags category))
    -
    -

    -

    -will store the inherited tags and the category in properties -ARCHIVE_ITAGS and ARCHIVE_CATEGORY, respectively. The -default setting for this variable is to save everything that -could be lost. This was a proposal by John Wiegley. -

    -
  • -
  • -Sorting (`C-c ^') can use the use the priority to sort. Use -the "p" and "P" keys at the prompt. John Wiegley, again. - -
  • -
  • -`Org-ellipsis' can now also be a face to make the folding -ellipsis more visible. This is based on a post by Tassilo -Horn. Since `org-ellipsis' only works in Org-mode, you -might want to use Tassilo Horn's hack directly in order to -affect the folding ellipsis globally. - -
  • -
  • -Scheduling info is no longer removed when an entry is marked -CLOSED. This was a request by Brian van den Broek. Let me -know if this breaks anything for you - then it will become -an option. - -
  • -
  • -New option `org-agenda-skip-unavailable-files'. Currently, -if a file does not exist, it will be removed from -`org-agenda-files' after a query. When this option is set, -the file will simply be skipped. - -
  • -
  • -Bug fixes. - -
  • -
-
- -
-

Version 5.06

- - - -
-

Overview

- - -
- -
-

Details

- - -
    -
  • -When exporting only a region and this region is a single -(sub)tree (for example selected with `C-c @'), the title for -the exported document is taken to be the heading of the -subtree. The sublevels become top-level entries in the -export. Furthermore, if the head entry of the tree has or -inherits an EXPORT_FILE_NAME property, that file name (with -appropriately substituted extension) will be used for the -exported tree. Thanks to Patrick Drechsler and Jost Burkart -for these ideas. - -
  • -
  • -org-special-ctrl-a/e has a third allowed value, `reversed'. -When it is set to this value, the first C-a or C-e command -behaves normally, i.e. it goes to the true beginning or end -of the line. Only when you press C-a or C-e immediately -again, the the "special" position will be found. Additional -presses of the same key jump between the two positions. I -like this a lot better than the `t' setting, because now the -keys behave more predictable and still give easy access to -the special locations. - -
  • -
  • -New command to set or remove a tag from all headlines in a -region. - -
  • -
  • -When Org-mode visits a file, it will initially hide all -drawers. - -
  • -
  • -The default of the variable `org-cycle-global-at-bob' is now -nil, meaning that TAB no longer does global visibility -cycling at the beginning of the buffer. - -
  • -
  • -Bug fixes, in particular the problems with scheduling and -deadlines introduced in 5.05. Please check carefully if -this works correctly again, and complain if not. - -
  • -
-
- -
-

Version 5.05

- - - -
-

Overview

- - -
    -
  • -LaTeX export, finally, thanks to Bastien. - -
  • -
  • -Extension mechanism for the hyperlink system. - -
  • -
  • -Global access to commands inserting and following links. - -
  • -
  • -Individual lead-times for deadlines. - -
  • -
  • -Option to show only the next instance of repeating timestamp. - -
  • -
  • -Store remember notes with only 2 keys: C-c C-c - -
  • -
  • -Appointment reminders from Org-mode. - -
  • -
  • -Global values for selected properties. - -
  • -
  • -Bug fixes. - - -
  • -
- -
-

Details

- - -
    -
  • -Bastien's `org-export-latex.el' is now part of the org-mode -distribution. You can export an Org-mode document to a -LaTeX file with `C-c C-e l'. For more options, see the -manual, and the commentary in the Lisp file. Kudos to -Bastien for contributing this frequently requested feature. -I am sure this has been tough because of the many different -ways I have been allowing LaTeX snippets and environments to -be incorporated in lazy free-format ways. - -
  • -
  • -Org-mode has now an extension mechanism for the hyperlink -system. This should clear the road for all those mairix and -other ideas that have been floating around. Now it is on -you to write and share new link types for Org-mode. The -interface for adding a new link type is described in the -appendix of the manual, section A2. The unsolved problem is -currently how to handle the new link types for -export/publishing. - -
  • -
  • -New global commands `org-open-at-point-global' and -`org-insert-link-global'. You can bind these commands to -global keys and use them to insert and follow Org-mode-like -links anywhere in Emacs. Thanks to Adam Spiers for this -excellent idea. - -
  • -
  • -Each deadline timestamp may now specify its own interval of -lead-time display, given in days, weeks, months or years. -The syntax is like this - -

    -

    - DEADLINE: <2007-08-13 Mon -5d>
    -
    -

    -

    -When combined with a repeater, the repeater has to come -first: -

    -

    -

    - DEADLINE: <2007-08-13 Mon +2w -5d>
    -
    -

    -

    -You may now also customize the faces that are used in the -agenda to indicate the distance of an approaching deadline. -See the new option `org-agenda-deadline-faces'. -

    -

    -Thanks to Pavel Chalmoviansky and John Wiegley proposals in -this direction. -

    -
  • -
  • -New option `org-agenda-repeating-timestamp-show-all'. When -set to nil, repeating time stamps will only show up once in -the agenda, either today or in the near future. Other -matches will be ignored. Thanks to John Wiegley for this -proposal. - -
  • -
  • -New variable `org-remember-store-without-prompt'. When set, -exiting the remember buffer with C-c C-c will store the note -without further prompts to the default location, and `C-u -C-c C-c' will get the prompts for file and location. So -this variable reverses the prefix-argument functionality for -storing remember notes. This follows a request from John -Wiegley. - -
  • -
  • -A new function `org-agenda-to-appt' activates all -appointments for the current day so that Emacs will display -reminders. This uses appt.el. Thanks to Bastien for this -function. - -
  • -
  • -You can now set default values for properties that can be -inherited by all entries in a buffer, or by all entries -globally. Global properties are set in the variable -`org-global-properties', like this: - -

    -(setq org-global-properties '(("NAME" "This is the value"))) -

    -

    -Buffer-local values are set like this: -

    -

    -#+PROPERTY: NAME This is the value -

    -

    -When using org-entry-get to get the value of a property with -the `inherit' flag and the hierarchy above the entry does -not contain this property, the buffer-local and global lists -are checked as well. This is mostly useful (I think) to set -the list of allowed values for a property. Thanks to Bernt -Hansen and Bastien for these ideas. -

    -
  • -
  • -Bug fixes. - -
  • -
-
- -
-

Version 5.04

- - - -
-

Details

- - -
    -
  • -New variables `org-export-author-info' and -`org-export-time-stamp-file' to turn off inclusion of author -and time information into exported files. Thank to Patrick -Drechsler for pointing out that this would be useful. - -
  • -
  • -New variable to avoid moving DEADLINE and SCHEDULED info -into the property drawer. The default is now to not move -this stuff into the drawer. -`org-insert-labeled-timestamps-before-properties-drawer' - -
  • -
  • -`org-archive-mark-done' can be a string now, to select a -specific keyword that should be used for archived entries. - -
  • -
  • -New command "j" in agenda to jump to an arbitrary date. -Thanks to Bernt Hansen for the patch. - -
  • -
  • -Lots of minor fixes. - -
  • -
-
- -
-

Version 5.03

- - - -
-

Incompatible Changes

- - -
    -
  • -The variable `org-special-ctrl-a' has been renamed to -`org-special-ctrl-a/e'. The old one is still an alias (but -not on Emacs 21 where variable aliases cannot be defined). - -
  • -
- -
-

Details

- - -
    -
  • -When the variable `org-special-ctrl-a/e' is set, C-e in a -headline first goes to the end of the headline ignoring the -tags. A second C-e then goes to after the tags. - -
  • -
  • -Typing and removing single characters in a headline now -keeps the tags in the headline aligned. This could have a -little impact on performance while deleting stuff - let me -know if we need to make this customizable. - -
  • -
  • -New option `org-n-level-faces' can be used to set the number -of different faces that are used for headlines. Default is -all 8 faces Org-mode defines for this purpose, level 9 uses -again the level-1 face. However, you can use fewer, and then -the level-1 face will be reused already for level N+1, etc. - -
  • -
  • -Column View and hidestars now work together. - -
  • -
  • -Bug fixes. - - -
  • -
-
- -
-

Version 5.02

- - - -
-

Overview

- - -
    -
  • -The interfaces for properties and column view are finished -now and work well. - -
  • -
  • -Properties can be summaries, i.e. the parent nodes can -compute their value from the children's values. - -
  • -
  • -Headlines finally require a space ofter the star(s). The -conflict with bold text at the beginning of the line is no -longer there. - -
  • -
- -
-

Incompatible Changes

- - -
    -
  • -Bad news. It looks like it is going to be really hard to -make column view work on XEmacs and on Emacs 21. Emacs 22 -is currently the only Emacs where this works. If you are -using Emacs 21 or XEmacs, you can still use properties, but -not column view. - -
  • -
- -
-

Details

- - -
    -
  • -Improvements for properties: - -
      -
    • -There are interactive commands to insert and delete -properties. Read the manual chapter 7 for details. - -
    • -
    • -You can define allowed values for a property. When -these are defined, you can change the value of a property -with S-left and S-right. And you may use completion when -inserting the property. This goes a long way to prevent -typos when entering properties. - -
    • -
  • -
  • -Improvements for column view. - -
      -
    • -In column view, you may use the keys S-left/right (and -also the keys `n' and `p') to switch from one allowed -value to the next. - -
    • -
    • -You can define summaries for columns. For example, -parents can contain the sum of all children values of a -property, or the parent node can have a check box property -that is automatically checked when all children's boxes are -checked. - -
    • -
    • -There are interactive commands to add and remove columns, -and to change the attributes of a column like the summary -type. - -
    • -
    -

    These additions lead to the exciting fact that the example -from omni outliner posted by Scott Jaderholm can now be -accurately reproduced by Org-mode. -

    -
  • -
  • -The space after the stars is now required in a headline, in -order to remove the conflict with bold words at the -beginning of a line. So - -

    -

    -    * This is a level 1 headline
    -    *this is bold text*
    -
    -

    -
  • -
  • -S-up and S-down to navigate plain item lists are now also -available in orgstruct-mode. - -
  • -
-
- -
-

Version 5.01

- - - -
-

Overview

- - -
    -
  • -A new minor mode, orgstruct-mode, exports the Org-mode -structure editing commands into any other mode. - -
  • -
  • -DRAWERS are a new level off folding for special sections -that should stay closed during visibility cycling and only -open if explicitly asked. - -
  • -
  • -Entries can now have PROPERTIES. - -
  • -
  • -A COLUMN VIEW implementation allows to easily view and edit -the properties of a hierarchy of entries (Emacs only, for -now). - -
  • -
  • -Formula evaluation in the spreadsheet is more consistent -now. Properties and per-file constants can be used during -evaluation. - -
  • -
  • -Bug fixes and minor changes. - -
  • -
- -
-

Incompatible changes

- - -
    -
  • -When using LEVEL=N in a tags search, things have changed if -you are also using `org-odd-levels-only'. If you are using -only odd levels (i.e. 1 or 3 or 5… stars), LEVEL=2 will -now refer to 3 stars, LEVEL=3 to 5 stars etc. Many thanks -to Leo (or blame on him if you must) who has convinced me -that this is the better convention. - -
  • -
- -
-

Details

- - - -
-

Orgstruct minor mode

- - -

-There is a new minor mode, orgstruct-mode. This modes works -in a similar way as Orgtbl-mode. It can be used to export -the Org-mode structure-editing commands into arbitrary major -modes in Emacs. For example, you can use it in Mail-mode to -easily create lists. -

-

-The functionality in Orgstruct mode is only active, if the -cursor is in a line that looks either like a headline, or -like the first line of a plain list item. Then the commands -`TAB', `M-cursor', `M-S-cursor', `M-RET', `M-S-RET', `C-c ^', -`C-c C-c', and `C-c -' will do structure-related editing just -like in Org-mode. If the cursor is not in such a line, all -these keys will do whatever the major mode or other active -minor modes have assigned to them. -

-

-Orgstruct-mode is the result of a proposal by Raman, quite -some time ago. It has taken a long time, but here is finally -the promised implementation. -

-
- -
-

Drawers

- - -

-The new concept of drawers allows to create sections -that remain folded during visibility cycling. Drawers need -to be configured using the variable `org-drawers'. A drawer -starts with a line containing only the name of the drawer -bracketed by colons. It ends with :END:. For example, -after setting -

-

-

-   (setq org-drawers '("PROPERTIES" "HIDDEN"))
-
-

-

-you can then create drawers like this: -

-

-

-   :HIDDEN:
-     here is some stuff that remains hidden
-     unless TAB is pressed directly in that line
-   :END:
-
-

-

-The PROPERTIES drawer has special meaning for ORG-mode, it -contains properties of an entry (see below). -

-
- -
-

Properties and Column View

- - -
    -
  • -Entries in Org-mode can now have arbitrary properties -associated with them. Org-mode handles some default -properties like the TODO state, the priority, the local -tags, and planning information like DEADLINE and SCHEDULED. -In addition, you can assign arbitrary properties by creating -a property drawer and inserting a line like - -

    -

    -   :PROPNAME: This is the value of the property
    -
    -

    -

    -Org-mode has an API for properties, if you want to write a -program using properties, use the functions -`org-entry-properties', `org-entry-get', `org-entry-put', -and `org-entry-delete'. -

    -
  • -
  • -Planning information like DEADLINE can be hidden in the -properties drawer. - -

    -If the PROPERTIES drawer starts in the first line after a -headline, also the DEADLINE, SCHEDULED and CLOCK information -will be inserted inside the drawer. If no PROPERTIES drawer -is present, or if it does not start in the line right after -the headline, this information remains in the lines directly -after the headline, outside the drawer. -

    -
  • -
  • -TAGS searches can now also query properties. For example, -the search - -

    -

    -   LEVEL=3+BOSS+ASSIGNED="Hans"/WAITING
    -
    -

    -

    -will find entries that -

      -
    • -are level 3 -
    • -
    • -have the tag BOSS -
    • -
    • -have an ASSIGNED property with the value "Hans" -
    • -
    • -are TODO status WAITING. - -

      -So here is an entry that will match: -

      -

      -

      -   *** WAITING Clean up the factory     :BOSS:
      -       :PROPERTIES:
      -       :ASSIGNED: Hans
      -       :END:
      -
      -

      -

      -You may also use a regular expression to match against a -property value. For example, to find stuff assigned to Hans -or Sarah, use -

      -

      -

      -   ASSIGNED={^\(Hans\|Sarah\)$}
      -
      -

      -
    • -
  • -
  • -Column View is a special way to look at property values in -tabular form. Column View can be used in any org-mode -file, and also in any agenda buffer. It works by placing -an overlay over each headline (or agenda line) that shows a -table of selected properties. You can look at and edit -properties from this view. Which properties are shown in -the table must be set up using the COLUMNS property. You -can set up different property columns on different levels -of an outline tree. For 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....).
    -
    -

    -

    -Now we have defined three different sets of columns. If -you switch to column view in the Family section, you -will get a different table than if you do it in the -Office section. However, if you switch to column -view with the cursor on the People section, the -table will cover all entries, but contain only the -Name. -

    -

    -Column view does, for the time being, only work on Emacs. -The XEmacs implementation needs a bit of work. -

    -
  • -
  • -Properties can be used in table formulas. To access the -value of the property :XYZ:, use $PROP_XYZ. The property -needs to be defined in the hierarchy above the table, not -necessarily in the same entry as the table. This was a -request by Eddward. File-wide constants can be defined with -#+CONSTANTS, see below. - -
  • -
  • -Things that still need to be sorted out about drawers, -properties and column view - comments and suggestions -welcome! - -
      -
    • -How to deal with drawers and properties in HTML and ASCII -export? -
    • -
    • -What key could be used to insert an empty property drawer -into an entry? -
    • -
    • -Right now column view is invoked through the command C-c -C-x C-c. It is too easy to type C-x C-c by mistake, and -that causes Emacs to quit. Suggestions for a different -key? -
    • -
    • -Fontification of drawers and properties is not good yet. -Any suggestions for better defaults? -
    • -
    • -Mouse support for editing properties in column view would -be nice - maybe Piotr is interested to add this to -org-mouse.el? - -
    • -
  • -
- -
-

Spreadsheet

- - -
    -
  • -In the spreadsheet, the evaluation of formulas has changed. -Previously, first the column formulas would be evaluated -everywhere, and then the field formulas would kick in, and -in some cases overwrite the results of column formulas in -the appropriate fields. This had the side effect that some -formulas might always use the wrong, intermediate content of -a field that is computed both by a column and a field -formula. - -

    -From now on, column formulas will no longer temporarily -overwrite field formulas. This gives much more consistent -results. For example you can now finally have a column of -increasing numbers by setting the first field to a fixed -number, and let the rest follow from a column formula. -

    -

    -Here is an example -

    -

    -

    -   | 1 |
    -   | 2 |
    -   | 3 |
    -   #+TBLFM: $1=@-1+1::@1$1=1
    -
    -

    -
  • -
  • -Constants for formulas in spreadsheets are globally defined -with the variable `org-table-formula-constants'. File-local -constants can now be set with a line like: - -

    -

    -   #+CONSTANTS: c=299792458.  pi=3.14  eps=2.4e-6
    -
    -

    -
  • -
- -
-

Minor changes

- - -
    -
  • -When entries are archived, a timestamp for the moment of -archiving is added to the line with planning information. -It looks like this: - -

    -

    - ARCHIVED: [2007-07-02 Mon 11:34]
    -
    -

    -

    -Thanks to J. David Boyd for constructive comments. -

    -
  • -
  • -Bug fixes - -

    -Many bugs are fixed, as usually all the ones where I replied -"fixed" on emacs-orgmode. If you reported one of these -bugs, please check if it really has disappeared in the new -version, and complain if not. Thanks! -

    - -
  • -
-
-
- -
-

Version 4.79

- - - -
-

Details

- - -
    -
  • -We are back to a single file org.el that works both on Emacs -and on XEmacs. Merging comes at a speed penalty for you as -an XEmacs user, but only if you do not compile org.el. -Compilation completely removes the penalty. - -
  • -
  • -New L flag for literal interpolation in Lisp formulas. -See manual section 3.5.3. - -
  • -
  • -New options for turning off footnotes. -This was a request from Ignotus. -See the option `org-export-with-footnotes'. - -
  • -
  • -Default length for Agenda entries, but this is off by -default. This was a request from Micheal. -See the option `org-agenda-default-appointment-duration'. - -
  • -
  • -Bug fixes: - -
      -
    • -org-agenda-date-later (Juraj Kubelka) -
    • -
    • -letters off margin in orgcard.ps (Charles Cave) -
    • -
    • -TODO export problems on XEmacs (ignotus@freemail.hu) -
    • -
    • -args-out-of-range with table formulas (Cecil Westerhof) -
    • -
    • -problem with org-file without a heading (Tim O'Callaghan) - -
    • -
  • -
-
- -
-

Version 4.78

- - - -
-

Overview

- - -
    -
  • -Time stamps with a time range included, like -
    - <2007-06-18 Mon 17:33-18:23>
    -
    - -
  • -
  • -Clock times without clocking in/out: CLOCK: => 2:00 - -
  • -
  • -Language-specific characters allowed in TAGS (Emacs only). - -
  • -
  • -Promotion and demotion of items gets the indentation right. - -
  • -
  • -Indenting lines with TAB is more intelligent. - -
  • -
- -
-

Incompatible changes

- - -
    -
  • -There is now a special version of `org.el' for XEmacs. -Before installation, as an XEmacs user you must rename the -file org_xemacs.el to org.el, i.e. you must overwrite org.el -with the xemacs version. For example: - -

    -

    - mv org_xemacs.el org.el
    -
    -

    -

    -This is necessary so that I can make use of some features -that would be cumbersome to support in a single file. The -XEmacs version is derived from the Emacs version with a -program, so no reason to fear that I might be dropping -XEmacs support any time soon. Sorry for the trouble. -

    -
  • -
- -
-

Details

- - -
    -
  • -A time stamp may now contain a range of times. So you no -longer need to use two separate stamps to indicate a time -interval on a single day. For example - -

    -

    - <2007-06-18 Mon 17:30-18:20>
    -
    -

    -

    -This is now fully supported, including changing the time -with S-up/down while the cursor is on the end time. Also, -da the date/time prompt, you can simply write your time like -12:00-14:00 and the range will be inserted. -

    -

    -This was proposed by Leo some time ago, and recently by -Michael. -

    -
  • -
  • -You may specify clocking times by hand (i.e. without -clocking in and out) using this syntax. - -

    -

    - CLOCK: => 2:00
    -
    -

    -

    -Thanks to Scott Jaderholm for this proposal. -

    -
  • -
  • -TAGS may now contain language-specific word characters, as -long as they are matched by the "[:alnum:]" regexp syntax. -This is for Emacs only, the XEmacs version continues to use -the character class "a-zA-Z0-9_@" for tag names. Thanks to -David Smith for a patch to this effect (a modified version -of that patch was applied). I am considering to make the -same change for TODO keywords, but not yet. Note that files -using localization features may not work correctly in the -Emacs configuration of another user, so if you are sharing -org-mode files with other users, it might still be best to -stick to the ASCII characters. - -
  • -
  • -Promotion and demotion of plain list items (commands M-left, -M-right) no longer changes the indentation by just one -space. Instead, it uses intelligence gathered from the -surrounding list structure to do the right thing. Thanks to -William Henney for starting the discussion about this. - -
  • -
  • -TAB does now a better job of indenting lines. - -
      -
    • -After tables and code segments (lines starting with ":"), -indentation goes back to what it was before (thanks to -William Henney for suggesting this behavior). - -
    • -
    • -When plain lists items are involved, we had a long -discussion on emacs-orgmode where I tried to show that a -too-sophisticated implementation will still be easily -fooled. Here is what I have implemented now - lets see -if we can agree on this: - -

      -Indentation will flatten lists with the same bullet type, -but indent another bullet type further. The time when -this fails is in a nested list, when you want to get back -out to a previous level. For example -

      -

      -

      - - item 1
      - - item 2
      - + item 2a
      - + item 2b
      - - item 3
      -
      -

      -

      -When using TAB on every line in this list, the structure -will change to -

      -

      -

      - - item 1
      - - item 2
      -   + item 2a
      -   + item 2b
      -     - item 3
      -
      -

      -

      -So you need to change the level of the last line by hand, -using promotion and demotion functions. -

      -
    • -
  • -
-
- -
-

Version 4.77

- - - -
-

Overview

- - -
    -
  • -Vertical lines in exported tables. -
  • -
  • -New default for `org-show-following-heading'. - -
  • -
- -
-

Incompatible changes

- - -
    -
  • -The default for `org-show-following-heading' is now nil. - -
  • -
- -
-

Details

- - -
    -
  • -You can now specify column groups in tables, to the effect -that the groups will be separated by vertical lines in HTML -and ASCII output. Column groups are specified by the -characters "<" and ">" in a special table row. "<" starts a -group, ">" ends a group (in each case including the the -column where the character is specified). You may also use -"<>" to make a group a single column wide. For example: - -

    -

    - |   |  N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
    - |---+----+-----+-----+-----+---------+------------|
    - | / | <> |   < |     |   > |       < |          > |
    - | # |  1 |   1 |   1 |   1 |       1 |          1 |
    - | # |  2 |   4 |   8 |  16 |  1.4142 |     1.1892 |
    - | # |  3 |   9 |  27 |  81 |  1.7321 |     1.3161 |
    - #+TBLFM: $3=$2^2::$4=$2^3::$5=$2^4::$6=sqrt($2)::$7=sqrt(sqrt(($2))
    -
    -

    -

    -A table row with with nothing but "/" in the first field is -never exported, but can be used to place column group -information into the table. In this table, we create a -group for column 2, one for columns 3-5 and one for columns -6-7. HTML export will render a vertical line between these -groups. -

    -

    -Because HTML does not require closing <colgroup> tags with -</colgroup>), you can also simply start a new column -wherever you want a vertical line: -

    -

    -

    - | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N0 |
    - |---+-----+-----+-----+---------+------------|
    - | / | <   | <   |     | <       |            |
    -
    -

    -
  • -
  • -Vertical lines are now also omitted in ASCII export, unless -grouping explicitly requests these lines. - -
  • -
  • -The default for `org-show-following-heading' is now nil, -meaning that sparse trees will be more compact. This has -become possible due to in important remark by Jason Dunsmore -who pointed out that TAB should behave differently in the -inconsistent trees produced by the sparse tree commands. -TAB does now make sure that the heading after a freshly -unfolded tree is made visible at all, removing the confusing -behavior we had before. - -
  • -
  • -Several bugs fixed. In particular: - -
      -
    • -Strings produced by agenda batch processing with -`org-batch-agenda' and `org-batch-agenda-csv' are now -properly encoded, so that you should be able to use -special characters in other languages as along as your -post-processing program handles them correctly. At least -for Emacs this should work now, but have not yet figured -out how to do this in XEmacs. - -
    • -
  • -
-
- -
-

Version 4.76

- - - -
-

Overview

- - -
    -
  • -Exporting Footnotes to HTML - -
  • -
- -
-

Details

- - -
    -
  • -Footnotes like1 are now exported to HTML - -

    1This is a footnote - -

    -Thanks to Scott Jaderholm for this proposal and a detailed -HTML example on how the exported text should look like. -

    -
  • -
  • -Special version of the reference card, for letter paper. - -
  • -
  • -Switching to OVERVIEW with S-TAB no loner moves the cursor, -so after three `S-TAB' commands, you will be back where you -started. - -
  • -
  • -Bug fixes, lots of them again. - -
  • -
-
- -
-

Version 4.75

- - - -
-

Overview

- - -
    -
  • -Cyclic time stamps that repeat after an interval. -
  • -
  • -Special timestamps for appointments like "every 2nd Thursday -in a month". -
  • -
  • -Completion of link abbreviation prefixes inside `C-c C-l'. -
  • -
  • -Replacing a region of org-mode syntax with HTML. -
  • -
  • -iCalendar export now honors ARCHIVE etc. -
  • -
  • -New command to add/change emphasis markers. - -
  • -
- -
-

Incompatible Changes

- - -
    -
  • -The REPEAT(…) cookie is no longer supported, the repeater -interval now goes directly into the time stamp. - -
  • -
- -
-

Details

- - -
    -
  • -Time stamps can contain a repeater code, like +1w for once -every week, +2d for every two days, etc. For example, - -
  • -
-

2007-05-16 Wed 12:30 +1w
-

-

-will apply to every Wednesday, starting from the date given. -I believe this syntax was actually suggested by someone on -the mailing list, but I cannot find the email back. To -collect your credit, let me know! -

-
    -
  • -You can use an sexp diary entry (with the syntax used by the -Emacs calendar/diary) in a time stamp, like this: - -

    -*** The nerd club meets on 2nd Thursday of every month -

  • -
-

%%(diary-float t 4 2)
-

-
    -
  • -You can put diary-style sexp entries directly into an -org-mode file, where they will be interpreted just like they -would in the diary. For example - -
      -
    • -Birthdays and similar stuff -
    • -
    -

    #+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 2 10 1869) Mahatma Gandhi -

    -

    -These entries must start at column 0 to be evaluated. -

    -

    -It turns out that evaluating the entries in an org-mode file -is actually faster than in the diary itself, because using -the diary has some overhead (creating fancy diary display, -then reading and re-interpreting the entries). I have moved -all the sexp entries from my diary into an org-mode file, -put in a few categories, and then turned off -`org-agenda-include-diary'. This has led to a noticeably -faster agenda display. -

    -
  • -
  • -New command `org-replace-region-by-html' that converts the -current region from org-mode syntax into HTML. For example, -you might write an itemized list in plain text in an HTML -buffer, and then invoke this command to convert it. Thanks -to Raman for this idea. - -
  • -
  • -When inserting a link with `C-c C-l', completion will now -fill in all valid link prefixes, like http or ftp, but also -link abbreviation prefixes. This is based on an idea by -Bastien. - -
  • -
  • -Highest, lowest, and default priority can be set on a -per-file basis with #+PRIORITIES: H L D -For example, to use priorities from 1 to 9, you could use - -

    -#+PRIORITIES: 1 9 9 -

    -

    -Thanks to Dmitri Minaev for a patch to this effect. -

    -
  • -
  • -iCalendar export now honors (i.e. skips) subtrees marked as -ARCHIVE, COMMENT, or QUOTE. - -
  • -
  • -There is a new command to add or change the emphasis (like -bold or italic) of a piece of text. For lack of better -available keys the command is at `C-c C-x C-f', but you may -well want to choose a more convenient key like `C-c f' in -your private setup: - -

    -(add-hook 'org-load-hook -(lambda () (define-key org-mode-map "\C-cf" 'org-emphasize))) -

    -

    -The command will prompt for an emphasis type, and you may -reply either with the marker that triggers the emphasis, or -with the first letter of the corresponding HTML tag. For -example, to select italic, press either "/" or "i". -

    -

    -If there is an active region, the emphasis of this region -will be set or changed. If there is no region, only the -emphasis markers will be inserted and the cursor positioned -between them. Thanks to Bastien for proposing this feature. -

    -
  • -
  • -Bug fixes, everything where I have replied "fixed" on the -mailing list. Thanks to all of you for keeping these reports -coming. - -
  • -
-
- -
-

Version 4.74

- - - -
-

Overview

- - -

-This release is about exporting agenda views, to HTML, to -postscript for printing, and to a special format (CSV) for -further processing in scripts. -

-
- -
-

Incompatible Changes

- - -
    -
  • -The variable `org-agenda-remove-tags-when-in-prefix' has -been renamed to `org-agenda-remove-tags'. - -
  • -
- -
-

Details

- - -
    -
  • -Agenda views can be exported as plain text, as HTML, and as -Postscript(R). This can simply be done from the agenda -buffer with `C-x C-w' and then specifying a filename like -`myagenda.html' or `myagenda.ps'. See section 8.6.4 of the -manual. - -
  • -
  • -Each custom agenda view can specify a list of associated -files names. The command `C-c a e' then creates all views -that have associated file names and exports the views to -these files. This is great for producing paper versions of -your views, to take with you when you don't have your -computer. The manual has an example on how to do this, and -in particular on how to customize the format of the printed -version. See section 8.6.4 of the manual. - -
  • -
  • -You can produce a CSV format of agenda information with an -Emacs batch command. This is greate for further processing -in scipts. Thanks to Jason F. McBrayer for this idea. -See section 8.6.5 of the manual. - -
  • -
  • -New variable `org-agenda-skip-deadline-if-done'. When set, -a deadline associated with a DONE item will not be shown in -the agenda. This is based upon a report by Denis Bueno. - -
  • -
  • -Quite a few bug fixes. - -
  • -
-
- -
-

Version 4.73

- - -

-Minor bug fixes. -

-
- -
-

Version 4.72

- - - -
-

Overview

- - -
    -
  • -Control over blank lines between trees in collapsed view. - -
  • -
  • -Info about the running clock is shown in the modeline. - -
  • -
  • -C-a can behave specially in headlines. - -
  • -
  • -Better color and scaling defaults for LaTeX fragments. - -
  • -
  • -Customizable list of keys in org-mode to be replaced. - -
  • -
  • -Stuck project descriptions have been extended. - -
  • -
  • -Emphasis code has been modified to fix some issues. - -
  • -
  • -Bug fixes. - -
  • -
- -
-

Incompatible changes

- - -
    -
  • -The option `org-format-latex-options' has changed. If you -have customized it, please revert to default and then redo -your customization. - -
  • -
  • -`org-CUA-compatible' no longer modifies S-RET by default, -because newer versions of CUA don't use this key anymore. -If you need this replacement, customize the variable -`org-disputed-keys'. - -
  • -
  • -The variable `org-CUA-compatible' is obsolete, please use -`org-replace-disputed-keys' instead. `org-CUA-compatible' -is still an alias for this new variable, though. - -
  • -
- -
-

Details

- - -
    -
  • -Better control over blank lines between trees in collapsed -view. This has come up several times in the past and most -recently by Scott Jaderholm. There is now a new variable -`org-cycle-separator-lines' with default value 2. It says -how many empty lines there need to be after the end of a -subtree to get an empty line in collapsed view. So with the -default, if you leave only one empty line it will disappear -in collapsed view. If you leave two, one empty line will -remain so that you can use double empty lines to structure -the collapsed views of a file. I love it, so many thanks to -Scott fro bringing this up again. - -

    -One property of the new setup is that you will never get -more than one blank line in collapsed view. We could do -something special to allow several empty lines in -collapsed view, but I think this is counter-productive. -

    -

    -In Emacs 22, if you want to make full use of this, make sure -that you have not set `outline-blank-line'. -

    -
  • -
  • -When the clock is running, Org-mode will put info about it -into the modeline. The info consists of the elapsed time -and the heading of the clocked item. This was a proposal -from Bastien who got the idea from Muse. - -
  • -
  • -C-a can behave specially in headlines when you set the -variable `org-special-ctrl-a'. It will bring the cursor -first back only to the beginning of the headline text, -i.e. after the stars and the TODO keyword, if any. A second -C-a will then move the cursor to the beginning of the line. -If the cursor is already at the beginning of the line, C-a -will spring forward to the headline text. This was a -proposal from Leo, based on a request from Scott Jaderholm. - -

    -I have not turned this turned this on by default, should I? -

    -
  • -
  • -When LaTeX fragments are processed into images, there is now -more control and (hopefully) betters defaults for colors and -scaling. Special values can be set for HTML export, so that -these values can differ from what is used for display in an -emacs buffer. The default foreground and background colors -for images embedded in emacs are now taken from the default -emacs face. Thanks to Xiao-Yong Jin for proposing these -changes. - -
  • -
  • -There is now a much better mechanism to change some keys in -org-mode if these keys clash with other modes you use. Turn -this on by setting `org-replace-disputed-keys' (aliased to -`org-CUA-compatible'). The list of keys to replace is now -fully customizable, see the option `org-disputed-keys'. -Many thanks to Meciej Katafiasz for a patch implementing -this. - -
  • -
  • -Stuck project descriptions have been extended. You can now -use "*" as a TODO keyword or tag to say that any TODO -keyword or TAG marks a project as non-stuck. You also can -give an arbitrary regular expression that, if it matches, -indicates a non-stuck project. - -
  • -
  • -The code for emphasis like bold, italic etc has been -modified - I might have broken something in the process, -please let me know if you find problems. - -
  • -
  • -A number of bugs have been fixed - those where I have -replied "Fixed" on the mailing list. - -
  • -
-
- -
-

Version 4.71

- - - -
-

Overview

- - -
- -
-

Incompatible changes

- - -
- -
-

Details

- - -
    -
  • -New variables to customize the header and data tags in -exported HTML. These are the variables -`org-export-table-header-tags' and -`org-export-table-data-tags'. This follows a request from -Scott Otterson. - -
  • -
  • -New option `org-format-latex-header' for customizing the -header of the LaTeX file used to convert embedded LaTeX to -images. Thanks to `Matthieu Lemerre' for the suggestion. - -
  • -
  • -The prefix version of `org-todo-list' works again. This -means that `C-1 C-c a t' produces the list of TODO entries -for the first TODO keyword. If you use different TODO setups -in different agenda files, be careful: This number now -refers to the list of all todo keywords used in files -that are scanned for the agenda. - -
  • -
  • -Many bug fixes. - -
  • -
-
- -
-

Version 4.70

- - - -
-

Overview

- - -
    -
  • -Dust settles after revamp of TODO keyword system. -
  • -
  • -The export title can be taken from the first text line. -
  • -
  • -TTY replacement keys have changed. - -
  • -
- -
-

Incompatible changes

- - -
    -
  • -Some TTY replacement keys are changed, see below. - -
  • -
- -
-

Details

- - -
    -
  • -Further development concerning TODO keywords. - -
      -
    • -You can now have several DONE states in a sequence, like - -

      -#+SEQ_TODO: TODO VERIFY | DONE DELEGATED -

      -

      -The difference to the proposal discussed on the mailing -list (and which is also works!) -

      -

      -#+SEQ_TODO: TODO VERIFY | DONE -#+SEQ_TODO: | CANCELED -

      -

      -is that in the first case, the extra DONE states will be -reached with `C-c C-t' (or with `t' from the agenda), while -in the second case you need S-<right> to get to the special -states. I guess both ideas can be useful - I am leaning -toward using the latter. -

      -
    • -
    • -Setting up TODO keywords in Lisp previously used two -separate variables: `org-todo-keywords' and -`org-todo-interpretation'. The preferred way is now to use -only `org-todo-keywords', with a new structure: - -

      -(setq org-todo-keywords -'((sequence "TODO" "|" "DONE") -(sequence "BUG" "KNOWNCAUSE" "|" "FIXED" "IGNORED") -(type "Fred" "Lisa" "Peter" "|" "DONE") -(sequence "CANCELED") ; for things we decide to not do. -)) -

      -

      -If your setting has this new structure, -`org-todo-interpretation' will be ignored. This change -does not break backward compatibility. The old way of -using a flat list in `org-todo-keywords' and taking the -interpretation from the other variable still works. -

      -
    • -
    • -When listing specific TODO entries via a sparse tree -(`C-u C-c C-v') or via the agenda (`C-c a T' or `C-u C-c a -t'), you can now specify several keywords to be selected, -like "TODO|VERIFY|WAITING". This also works for custom -agenda commands. Thanks to Jason F. McBrayer for pointing -out this omission. - -
    • -
  • -
  • -If you have configured Org-mode to export also the text -before the first headline (this is done by setting the -variable `org-export-skip-text-before-1st-heading' to nil), -then the first normal text line in the buffer becomes the -title of the exported document. A title set with #+TITLE -overules this default, and the first line then belongs to the -normal text. Thanks to David House for this proposal. - -
  • -
  • -TTY replacement keys. Some of the key bindings used by -Org-mode do not work on a tty, so replacement key sequences -are provided on ttys. In version 4.70, there are some -changes in the tty replacements. Thanks to Jason F. McBrayer -for coming up with the idea to use C-c <cursor> keys. - - -- - - - - - - - - - - - -
    CommandOld TTYNew TTY
    org-…..Main KeyReplacementReplacement
    shiftleftS-leftC-c C-x leftC-c left
    shiftrightS-rightC-c C-x rightC-c right
    shiftupS-upC-c C-x upC-c up
    shiftdownS-downC-c C-x downC-c down
    shiftcontrolleftC-S-leftC-c C-x left
    shiftcontrolrightC-s-rightC-c C-x right
    - - - -
  • -
-
- -
-

Version 4.69

- - - -
-

Overview

- - -

-This time the changes affect the following areas: -

-
    -
  • -TODO keywords: Multiple sequences in a single file. -
  • -
  • -Export: More control over text before the first heading. -
  • -
  • -Export: More control over sub/superscript interpretation. -
  • -
  • -Plain lists: Option to let empty lines terminate lists. -
  • -
  • -Tables: New command to insert hline and move into line below. -
  • -
  • -REPEATing items: Turn of note taking. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Incompatible changes

- - -
    -
  • -It used to be possible to spread the list of TODO keywords -over several lines, like - -

    -#+SEQ_TODO: TODO -#+SEQ_TODO: PROGRESS -#+SEQ_TODO: DONE -

    -

    -This is no longer possible. Each such line now specifies an -independent set of TODO keywords, with its own DONE state. -See below for details. -

    -
  • -
  • -The #+TEXT construct has been used to insert unchanged HTML -into an exported file. This is no longer possible, the TEXT -lines will be processed like any other lines. However, -there are now much better ways of getting quoted HTML into -the exported file. - -
  • -
- -
-

Details

- - -
    -
  • -You can now use multiple sets of TODO keywords in the same -buffer. For example, you may put the following three lines -into a file: - -

    -#+SEQ_TODO: TODO DONE -#+SEQ_TODO: REPORT BUG KNOWNCAUSE RESOLVED -#+TYP_TODO: Fred Laura Peter Me OK -

    -

    -Each sub-sequence has its own DONE state. It is best to use -different keywords in all sequences, to make sure Org-mode -does not loose track in which specific sequence it is -working. You could use the same word for all DONE states, -but then cycling through to a TODO state might not bring you -where you want to be. -

    -

    -After initially setting a keyword, `C-c C-t' cycles through -a sublist, i.e. is cycles from TODO to DONE or from -KNOWNCAUSE to RESOLVED and further to (nothing) and back to -REPORT. -

    -

    -S-right and S-left allow to select any keyword, so they move -from DONE to REPORT and from RESOLVED to Fred. -

    -

    -C-S-right and C-S-left jump from one sub-sequence to the -next, for example from TODO or DONE to REPORT to Fred. -

    -

    -Thanks to Rick Moynihan for triggering this development. -

    -
  • -
  • -Text before the first headline can now be exported if you -configure Org-mode accordingly. Either set the variable -`org-export-skip-text-before-1st-heading' to nil, or use the -new in-buffer option - -

    -#+OPTION: skip:nil -

    -
  • -
  • -Export content specified via the #+TEXT construct is now -fully processed, i.e. links, emphasis etc. are all -interpreted. #+TEXT lines may include -#+BEGIN_HTML…#+END_HTML sections to embed literal HTML. - -
  • -
  • -During HTML export, you can request to have ab -interpreted as a subscript, but to leave a_b as it is. This -can be done by setting the variable -org-export-sub-superscript to the symbol `{}' with - -

    -(setq org-export-sub-superscript '{}) -

    -

    -or by using -

    -

    -#+OPTIONS: ^:{} -

    -

    -Thanks to Eddward DeVilla for this idea. -

    -
  • -
  • -New variable `org-empty-line-terminates-plain-lists'. -Default is nil, meaning that empty lines are part of the -previous list item, and that you can have several paragraphs -in one such item. Set this to t if you want an empty line -terminate all levels of plain list items. - -

    -Thanks to Mike Newman for triggering this development. -

    -
  • -
  • -C-c RET does insert a horizontal separator line and move the -cursor into the table line below it. Thanks to Bastien for -this proposal. - -
  • -
  • -Org-mode always offers you to record a note when a TODO item -automatically repeats, even if you are not logging state -changes. The new variable `org-log-repeat' allows to turn -this off, so that notes are really only been taken if you -are logging all state changes. - -
  • -
  • -Various Bug fixes, thanks to everyone who reported. - -
  • -
-
- -
-

Version 4.68

- - - -
-

Overview

- -
    -
  • -Priority handling in the tags view -
  • -
  • -Date/time prompt follows the popup calender, and accepts AM/PM times. -
  • -
  • -Standard references like B4 in the spreadsheet. -
  • -
  • -Improvements to the formula editor. -
  • -
  • -C-j does better indentation. -
  • -
  • -Bug fixes - -
  • -
- -
-

Details

- -
    -
  • -Priority handling in the tags view - -
      -
    • -Agenda lists selected by tag are now sorted by priority. -Thanks to Andrew Korty for reporting this omission. - -
    • -
  • -
  • -Improvements to the date/time prompt. - -
      -
    • -When you move (using S-cursor keys) the cursor in the pop-up -calendar window while responding to a date/time prompt, the -prompt is updated with the new default date (Emacs only). - -
    • -
    • -You can now enter AM/PM times at this prompt. - -
    • -
  • -
  • -Changes in the spreadsheet - -
      -
    • -You can now also write B4 instead of @4$2 as a reference in -formulas. The column references without specified row can be -written as C& instead of $3. Such references make formulas -easier to read and are now the default way how references are -shown when you edit existing formulas. To get the old behavior -back (i.e. only @row$col references), set the variable -`org-table-use-standard-references' to nil. - -

      -Relative references like @-3$-2 or @II..III continue to use the -internal format. -

      -
    • -
  • -
  • -Changes in the formula editor (the one you get with "C-c '") - -
      -
    • -The formulas are organized in a more logical way. - -
    • -
    • -There is now a menu with commands. - -
    • -
    • -When starting the formula editor with "C-c '", the cursor -immediately moves to the formula for the current field. - -
    • -
    • -With the cursor on a reference in the formula, you can use -S-cursor keys to change the field being referenced. - -
    • -
  • -
  • -C-j indents the following line correctly whe used in a headline -or in aplain list item. Thanks to Leo for this suggestion. - -
  • -
  • -Bug fixes - -
      -
    • -Flyspell now knows about special org-mode commands. -Thanks to Vinod Valsalam for reporting this problem, and to -Andrew Korty for showing how to fix it. - -
    • -
    • -Most other bugs discussed recently on emacs-orgmode@gnu.org -should be fixed, except the problem with non-ASCII characters -in tags…. - -
    • -
  • -
-
- -
-

Version 4.67

- - -
    -
  • -Expert mode for fast tag selection. -When org-fast-tag-selection-single-key is `expert', not even -the selection window is shown, only the prompt. One more C-c -gets you the window, another one goes to multiple selection mode. - -
  • -
  • -Synchronized with Emacs once more: Emacs CVS has now org-mode -4.67. At least until it causes a problem, then the Emacs people -will switch back to 4.56. Lets hope there will be no problem. - -
  • -
  • -Code cleanup - -
  • -
  • -Bug fixes - -
  • -
- -
-

Version 4.66

- - - -
-

Overview

- - -
    -
  • -Sorting of top-level entries works now if the region contains -top-level entries, or if the cursor is before the first headline. -Thanks to "redblue" for reporting this bug. - -
  • -
  • -When entering date and time at the prompt, you can now mix -entering text and selecting something in the calendar. For -example, enter 22:15 at the prompt without pressing RET, and then -click on a date in the calendar. Both pieces of information will -be included in the resulting time stamp. You can also use -S-curser to move the cursor in the calendar to the desired date -and then enter 22:15 and press RET at the prompt. - -
  • -
  • -When setting a deadline or a schedule, entering a time now -automatically selects the time stamp format that includes the -time. Bug report (by means of a question) from Bastre. - -
  • -
  • -C-c C-l can be used to convert a plain link into a bracket link. - -
  • -
  • -Internal links now match inside (the visible part of) other -links. Thanks to Scott Otterson for reporting this bug. - -
  • -
  • -iCalendar export of TODO items fixed, see also the variable -`org-icalendar-include-todo'. Thanks to Philipp Raschdorf. - -
  • -
  • -The number of levels in the table of contents of an exported -document can now be set independently of the number of headline -levels. For example: - -

    -#+OPTIONS: H:4 toc:2 -

    -
  • -
  • -The command `C-c }' toggles the display of row and column numbers -the the current table, to aid constructing formulas. To try it, -move the cursor to a table and press `C-c }', or use the menu -entry. - -
  • -
  • -Orgtbl translation functions (introduced in 4.65) have been -simplified using a generic function `orgtbl-to-generic' that can -be used for very general languanges. Writing your own translator -should be very easy now. More info in the manual. - -
  • -
  • -CONTENTS visibility can be limited to a certain level. The -command `C-3 S-TAB' will switch to CONTENTS view and show the -first 3 levels. - -
  • -
  • -Bug fixes. - -
  • -
-
- -
-

Version 4.65

- - - -
-

Overview

- - -
    -
  • -Orgtbl can be used to maintain tables in LaTeX, and in any other mode -
  • -
  • -Editing Lisp formulas for tables improved. -
  • -
  • -Better structure for HTML exported tables. -
  • -
  • -New "calculation" marker "/" to mark lines that should not be exported. - -
  • -
- -
-

Detailed description of changes

- - -
    -
  • -You can use orgtbl mode to maintain a LaTeX table, or pretty much -any table in any mode. - -

    -This does not work by making Orgtbl aware of LaTeX syntax. That -would be a box of Pandora I am not willing to open. Instead, you -use a normal Orgtbl-mode table, and a converter program to -automatically place a LaTeX version of the table into the correct -spot in the LaTeX file. The orgtbl-mode table can be maintained -inside the same file, in a block comment. -

    -

    -I am providing translators for LaTeX, HTML, and TeXInfo. For -other applications, you need to write one yourself - but that is -not hard if you start from the LaTeX version and just modify it. -Thanks to Thomas Baumann for triggering this development through -a request for a table-to-LaTeX converter. -

    -
  • -
  • -In the special buffer to edit the formulas of a table (created -with "C-c '"), there is now better support for editing Lisp -formulas. TAB and M-TAB work like in an Emacs Lisp buffer, -indenting lines and completing lisp symbols. With the cursor on -a line defining a complex Lisp formula, a first press on TAB will -convert the formula into a pretty-printed version with proper -linebreaks and indentation. A second TAB folds the line back to -the compact form. - -
  • -
  • -Tables in HTML export have now additional structure elements -defined. The header (before the first hline) is wrapped into -<thead>..</thead>, and each part of the body (as separated in -org-mode by hlines) is wrapped into <tbody>..</tbody> tags. I -have also changed the CSS style for <td> fields and the value of -`org-export-html-table-tag' to get cleaner tables. Basically, -tables now have horizontal lines only where needed, and no -vertical lines at all, as generally recommended for tables in -printed text. I like the new look, but I am not sure if this -change will find general approval, please throw in your view if -you like. Thanks to Scott for driving this, and to goud-H for -pointing me to the row grouping in tables. - -
  • -
  • -In a table with calculation markers in the first column, you can -now also put "/" into the first column. It indicates that this -line should not be exported. The foremost application for this -are lines containing only "<N>" markers for narrowing columns. - -
  • -
-
- -
-

Version 4.64

- - - -
-

Overview

- - -
    -
  • -Email links get better, configurable descriptions -
  • -
  • -When inserting a link, selected text becomes the description -
  • -
  • -Easier access to the list of stored links. -
  • -
  • -Horizontal lines in HTML export. -
  • -
  • -Remember templates and storing of notes improved. - -
  • -
- -
-

Detailed description of changes

- - -
    -
  • -The descriptive part of links to email messages can be configured -using the variable `org-email-link-description-format'. The new -default is "Email %c: %.30s" and leads to - -

    -Email from NAME: SUBJECT -

    -

    -If you configure the variable `org-from-is-user-regexp' -correctly, then for email you sent this will actually change to -

    -

    -Email to NAME: SUBJECT -

    -

    -The subject is limited to 30 characters. If you have become -attached to the previous default (look twice, the new one is -better), use "%f on: %s" as your format. -

    -
  • -
  • -Selecting text before entering a new link with C-c C-l now really -works, the selected text becomes the description part of the -link. Requested by Scott, buggy 4.62 implementation is now fixed. - -
  • -
  • -Stored links are part of the history list for C-c C-l, so to -reach them, you can use up/down rather than completion. Thanks -to Raman for this excellent idea. - -
  • -
  • -A line consisting only of "-", and at least 5 of them, is -exported into HTML as <hr/>, as proposed by Giovanni Ridolfi. - -
  • -
  • -Several changes to org <-> remember integration - -
      -
    • -You can use `org-remember' as your default command to start -remember. It will automatically detect if there is an active -region and use it as initial content (we will probably make -remember.el work like this as well). -Also, when calling `org-remember' in a remember buffer that -was created with a template, you will again be asked to -select a template. The buffer is then re-created with the -new template, but the old context information. This is -useful if you change your mind about the template to use -(Leo's idea). - -
    • -
    • -Besides specifying a default target file for a note, you -can also give a default heading of which the note should -become a subitem. In many cases this avoids or speeds up -navigating to the right location. Both file and heading can -be different for each template. Both are non-binding, you -can change them while storing the note. However, when you -exit remember with C-u C-c C-c, these defaults will be used -without interaction. - -
    • -
    • -Templates can specify interactive fields. During expansion -of the template, you will be prompted for the information in -that field. For example %^t will pop up a calendar and ask -you to select a date. This new feature follows a proposal -from Leo, who in the mean time has said he does not need it -anymore. But I liked it, so here it is :-) - -
    • -
    • -Templates can access information specific to the link type -created, for example the author and subject of an email. -Syntax is %:fromname, %:fromaddress, %:subject etc, details -in the manual. Proposed by Peder O. Klingenberg. - -
    • -
    • -I have been considering to move, at some stage, the template -functionality into remember.el itself - which would of course -require consent of the remember.el maintainers. I am not -sure how well this would work though, since some things like -the interactive time stamps are org.el specific, so treating -them would require special hooks. Comments? - -
    • -
  • -
-
- -
-

Version 4.63

- -
    -
  • -Bug fixes - -
  • -
- -
-

Version 4.62

- -
    -
  • -Many changes to the spreadsheet functions in the table editor. -For details, please re-read the manual section 3.4. -
      -
    • -New Features -
        -
      • -It is much easier to assign formulas to individual fields. -
      • -
      • -References to arbitrary fields and ranges. -
      • -
      • -Absolute references are modified in row-editing commands. -
      • -
      • -Formula editor that highlights referenced fields. -
      • -
    • -
    • -Incompatible changes -
        -
      • -Empty fields are excluded in range references, see "E" mode flag. -
      • -
      • -&… ranges no longer supported, use new @… ranges. -
      • -
      • -Variable insertion into Lisp formulas work differently. -
      • -
    • -
  • -
  • -Selected text becomes the default description for C-c C-l links.(Scott) -
  • -
  • -The date format in the agenda/timeline views is now customizable. -See the new option `org-agenda-date-format'. (request by Victor) -
  • -
  • -Link abbreviations no longer need a double colon, single colon is fine. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.61

- -
    -
  • -Avoiding keybinding clashes with flyspell -
      -
    • -Archiving is now also on `C-C C-x C-s' (was just `C-c $') -
    • -
    • -Cycling through agenda files is now also on "C-'" (was just "C-,") -
    • -
  • -
  • -Colon is considered part of number, to align times in clock tables. -
  • -
  • -Fixed bug for list of stuck projects. -
  • -
  • -Fixed several bugs/problems concerning linking to gnus. -
  • -
  • -Block agendas can contain the list of stuck projects. -
  • -
  • -#+ARCHIVE may now appear several times in the buffer. -
  • -
  • -More bug fixes. - -
  • -
- -
-

Version 4.60

- -
    -
  • -HTML export: inlining images, clickable images (manual 10.2.4). -
  • -
  • -Incremental search now shows proper context when exiting. -
  • -
  • -Tables calculation and Calc package. -
      -
    • -Calc is no longer needed when using only elisp formulas. -
    • -
    • -Proper error messages when calc is needed and not available. -
    • -
  • -
  • -Tracking TODO state changes with time stamps and notes. -
  • -
  • -Empty entries go full circle. -
  • -
  • -Links in iCalendar export cleaned up. -
  • -
  • -Bug fixes. - - -
  • -
- -
-

Version 4.59

- -
    -
  • -Cleanup code, bug fixes. - -
  • -
- -
-

Version 4.58

- -
    -
  • -Full undo support in the agenda buffer. -
  • -
  • -Listing stuck GTD projects (projects without any NEXT ACTIONS). -Configure `org-stuck-projects' before using it. -
  • -
  • -C-c C-x b shows the current subtree in an indirect buffer, in -another, dedicated frame. -
  • -
  • -Custom agenda commands take precedence over builtin commands. -
  • -
  • -auto-fill for comments works on the Emacs side, XEmacs not yet. - -
  • -
- -
-

Version 4.57

- -
    -
  • -Sorting of outline items on same level. -
  • -
  • -Sorting tables automatically selects line range between hlines. -
  • -
  • -Changes in Agenda buffer -
      -
    • -`C-c C-o' follows a link in the current line. -
    • -
    • -`C-c $' archives the subtree corresponding to the line. -
    • -
    • -Changing dates with S-left and S-right show new date in agenda, -but still do not move the entry to the new date. -
    • -
    • -new option `org-agenda-skip-scheduled-if-done'. -
    • -
  • -
  • -Agenda and sparse tree construction using tag matches can now -use regular expressions. -
  • -
  • -When prompted for a date/time, entering "+7" indicates a date -7 days from now - but only this is the only thing you give. -
  • -
  • -Custom time formats also apply to exported html and ascii. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.56

- -
    -
  • -`C-k' in agenda kills current line and corresponding subtree in file. -
  • -
  • -XEmacs compatibility issues fixed, in particular tag alignment. -
  • -
  • -M-left/right now in/outdents plain list items, no Shift needed. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.55

- -
    -
  • -Bug fixes. - -
  • -
- -
-

Version 4.54

- -
    -
  • -Improvements to fast tag selection -
      -
    • -show status also in target line. -
    • -
    • -option to auto-exit after first change to tags list (see manual). -
    • -
  • -
  • -Tags sparse trees now also respect the settings in -`org-show-hierarchy-above' and `org-show-following-heading'. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.53

- -
    -
  • -Custom time formats can be overlayed over time stamps. -
  • -
  • -New option `org-agenda-todo-ignore-deadlines'. -
  • -
  • -Work-around for flyspell bug (CVS Emacs has this fixed in flyspell.el). -
  • -
  • -Work-around for session.el problem with circular data structures. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.52

- -
    -
  • -TAG matches can also specify conditions on TODO keywords. -
  • -
  • -The fast tag interface allows setting tags that are not in the -predefined list. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.51

- -
    -
  • -Link abbreviations (manual section 4.5). -
  • -
  • -More control over how agenda is displayed. See the new variables -`org-agenda-window-setup', `org-agenda-restore-windows-after-quit'. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.50

- -
    -
  • -Closing a TODO item can record an additional note. -See variables `org-log-done' and `org-log-note-headings'. -
  • -
  • -Inserting headlines and bullets can leave an extra blank line. -See variable `org-blank-before-new-entry'. (Ed Hirgelt patch) -
  • -
  • -bracket links in the agenda are active just as in org-mode buffers. -
  • -
  • -C-c C-o on a date range displays the agenda for exactly this range. -
  • -
  • -The default for `org-cycle-include-plain-lists' is back to nil. -
  • -
  • -Calls to `org-occur' can be stacked by using a prefix argument. -
  • -
  • -The options `org-show-hierarchy-above' and `org-show-following-heading' -now always default to `t', but can be customized differently for -different types of sparse trees or jump commands. -
  • -
  • -Bug fixes. - - -
  • -
- -
-

Version 4.49

- -
    -
  • -Agenda views can be made in batch mode from the command line. -
  • -
  • -`org-store-link' does the right thing in dired-mode. -
  • -
  • -File links can contain environment variables. -
  • -
  • -Full Emacs 21 compatibility has been restored. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.47

- -
    -
  • -Custom commands may produce an agenda which contains several blocks, -each block created by a different agenda command. -
  • -
  • -Agenda commands can be restricted to the current file, region, subtree. -
  • -
  • -The timeline command must now be called through the agenda -dispatcher (C-c a L). `C-c C-r' no longer works. -
  • -
  • -Agenda items can be sorted by tag. The last tag is used for this. -
  • -
  • -The prefix and the sorting strategy for agenda items can depend -upon the agenda type. -
  • -
  • -The handling of `mailto:' links can be customized, see the new -variable `org-link-mailto-program'. -
  • -
  • -`mailto' links can specify a subject after a double colon, -like mailto:carsten@orgmode.org::Org-mode is buggy. -
  • -
  • -In the #+STARTUP line, M-TAB completes valid keywords. -
  • -
  • -In the #+TAGS: line, M-TAB after ":" inserts all currently used tags. -
  • -
  • -Again full Emacs 21 support: Checkboxes and publishing are fixed. -
  • -
  • -More minor bug fixes. - -
  • -
- -
-

Version 4.45

- -
    -
  • -Checkbox lists can show statistics about checked items. -
  • -
  • -C-TAB will cycle the visibility of archived subtrees. -
  • -
  • -Documentation about checkboxes has been moved to chapter 5. -
  • -
  • -Bux fixes. - -
  • -
- -
-

Version 4.44

- -
    -
  • -Clock table can be done for a limited time interval. -
  • -
  • -Obsolete support for the old outline mode has been removed. -
  • -
  • -Bug fixes and code cleaning. - -
  • -
- -
-

Version 4.43

- -
    -
  • -Bug fixes -
  • -
  • -`s' key in the agenda saves all org-mode buffers. - -
  • -
- -
-

Version 4.41

- -
    -
  • -Shift-curser keys can modify inactive time stamps (inactive time -stamps are the ones in […] brackets. -
  • -
  • -Toggle all checkboxes in a region/below a headline. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.40

- -
    -
  • -Bug fixes. - - -
  • -
- -
-

Version 4.39

- -
    -
  • -Special tag ARCHIVE keeps a subtree closed and away from agenda lists. -
  • -
  • -LaTeX code in Org-mode files can be converted to images for HTML. -
  • -
  • -Bug fixes. -
  • -
  • -CDLaTeX-mode features can be used in Org-mode to help inserting -LaTeX environment and math. - -
  • -
- -
-

Version 4.38

- -
    -
  • -noutline.el is now required (important for XEmacs users only). -
  • -
  • -Dynamic blocks. -
  • -
  • -Archiving of all level 1 trees without open TODO items. -
  • -
  • -Clock reports can be inserted into the file in a special section. -
  • -
  • -FAQ removed from the manual, now only on the web. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.37

- -
    -
  • -Clock-feature for measuring time spent on specific items. -
  • -
  • -Improved emphasizing allows configuration and stacking. - -
  • -
- -
-

Version 4.36

- -
    -
  • -Improved indentation of ASCII export, when headlines become items. -
  • -
  • -Handling of 12am and 12pm fixed. Times beyond 24:00 can be used -and will not lead to conflicts. -
  • -
  • -Support for mutually exclusive TAGS with the fast tags interface. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.35

- -
    -
  • -HTML export is now valid XHTML. -
  • -
  • -Timeline can also show dates without entries. See new option -`org-timeline-show-empty-dates'. -
  • -
  • -The bullets created by the ASCII exporter can now be configured. -See the new option `org-export-ascii-bullets'. -
  • -
  • -New face `org-upcoming-deadline' (was `org-scheduled-previously'). -
  • -
  • -New function `org-context' to allow testing for local context. - -
  • -
- -
-

Version 4.34

- -
    -
  • -Bug fixes. - -
  • -
- -
-

Version 4.33

- -
    -
  • -New commands to move through plain lists: S-up and S-down. -
  • -
  • -Bug fixes and documentation update. - -
  • -
- -
-

Version 4.32

- -
    -
  • -Fast (single-key-per-tag) interface for setting TAGS. -
  • -
  • -The list of legal tags can be configured globally and locally. -
  • -
  • -Elisp and Info links (thanks to Todd Neal). -
  • -
  • -`org-export-publishing-directory' can be an alist, with different -directories for different export types. -
  • -
  • -All context-sensitive commands use `call-interactively' to dispatch. -
  • -
  • -`org-confirm-shell-links' renamed to `org-confirm-shell-link-function'. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.31

- -
    -
  • -Bug fixes. - -
  • -
- -
-

Version 4.30

- -
    -
  • -Modified installation: Autoloads have been collected in org-install.el. -
  • -
  • -Logging (org-log-done) is now a #+STARTUP option. -
  • -
  • -Checkboxes in plain list items, following up on Frank Ruell's idea. -
  • -
  • -File links inserted with C-c C-l will use relative paths if the linked -file is in the current directory or a subdirectory of it. -
  • -
  • -New variable `org-link-file-path-type' to specify preference for -relative and absolute paths. -
  • -
  • -New CSS classes for tags, timestamps, timestamp keywords. -
  • -
  • -Bug and typo fixes. - - -
  • -
- -
-

Version 4.29

- -
    -
  • -Inlining images in HTML export now depends on wheather the link -contains a description or not. -
  • -
  • -TODO items can be scheduled from the global TODO list using C-c C-s. -
  • -
  • -TODO items already scheduled can be made to disappear from the global -todo list, see `org-agenda-todo-ignore-scheduled'. -
  • -
  • -In Tables, formulas may also be Lisp forms. -
  • -
  • -Exporting the visible part of an outline with `C-c C-x v' works now -for all available exporters. -
  • -
  • -Bug fixes, lots of them :-( - -
  • -
- -
-

Version 4.28

- -
    -
  • -Bug fixes. - -
  • -
- -
-

Version 4.27

- -
    -
  • -HTML exporter generalized to receive external options. -As part of the process, author, email and date have been moved to the -end of the HTML file. -
  • -
  • -Support for customizable file search in file links. -
  • -
  • -BibTeX database links as first application of the above. -
  • -
  • -New option `org-agenda-todo-list-sublevels' to turn off listing TODO -entries that are sublevels of another TODO entry. - -
  • -
- -
-

Version 4.26

- -
    -
  • -Bug fixes. - -
  • -
- -
-

Version 4.25

- -
    -
  • -Revision of the font-lock faces section, with better tty support. -
  • -
  • -TODO keywords in Agenda buffer are fontified. -
  • -
  • -Export converts links between .org files to links between .html files. -
  • -
  • -Better support for bold/italic/underline emphasis. - -
  • -
- -
-

Version 4.24

- -
    -
  • -Bug fixes. - -
  • -
- -
-

Version 4.23

- -
    -
  • -Bug fixes. - -
  • -
- -
-

Version 4.22

- -
    -
  • -Bug fixes. -
  • -
  • -In agenda buffer, mouse-1 no longer follows link. -See `org-agenda-mouse-1-follows-link' and `org-mouse-1-follows-link'. - -
  • -
- -
-

Version 4.20

- -
    -
  • -Links use now the description format by default. -When inserting links, the user is prompted for a description. -
  • -
  • -If a link has a description, only the description is displayed -the link part is hidden. Use C-c C-l to edit the link part. -
  • -
  • -TAGS are now bold, but in the same color as the headline. -
  • -
  • -The width of a table column can be limited by using a field "<N>". -
  • -
  • -New structure for the customization tree. -
  • -
  • -Bug fixes. - - -
  • -
- -
-

Version 4.13

- -
    -
  • -The list of agenda files can be maintainted in an external file. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 4.12

- -
    -
  • -Templates for remember buffer. Note that the remember setup changes. -To set up templates, see `org-remember-templates'. -
  • -
  • -The time in new time stamps can be rounded, see new option -`org-time-stamp-rounding-minutes'. -
  • -
  • -Bug fixes (there are always more bugs). - -
  • -
-

[…] -

-

-Version 4.00 -

    -
  • -Headlines can contain TAGS, and Org-mode can produced a list -of matching headlines based on a TAG search expression. -
  • -
  • -`org-agenda' has now become a dispatcher that will produce the agenda -and other views on org-mode data with an additional keypress. - - -
  • -
- -
-

Version 3.24

- -
    -
  • -Switching and item to DONE records a time stamp when the variable -`org-log-done' is turned on. Default is off. - -
  • -
- -
-

Version 3.23

- -
    -
  • -M-RET makes new items as well as new headings. -
  • -
  • -Various small bug fixes - -
  • -
- -
-

Version 3.22

- -
    -
  • -CamelCase words link to other locations in the same file. -
  • -
  • -File links accept search options, to link to specific locations. -
  • -
  • -Plain list items can be folded with `org-cycle'. See new option -`org-cycle-include-plain-lists'. -
  • -
  • -Sparse trees for specific TODO keywords through numeric prefix -argument to `C-c C-v'. -
  • -
  • -Global TODO list, also for specific keywords. -
  • -
  • -Matches in sparse trees are highlighted (highlights disappear with -next buffer change due to editing). - -
  • -
- -
-

Version 3.21

- -
    -
  • -Improved CSS support for the HTML export. Thanks to Christian Egli. -
  • -
  • -Editing support for hand-formatted lists -
      -
    • -M-S-cursor keys handle plain list items -
    • -
    • -C-c C-c renumbers ordered plain lists - -
    • -
  • -
- -
-

Version 3.20

- -
    -
  • -There is finally an option to make TAB jump over horizontal lines -in tables instead of creating a new line before that line. -The option is `org-table-tab-jumps-over-hlines', default nil. -
  • -
  • -New command for sorting tables, on `C-c ^'. -
  • -
  • -Changes to the HTML exporter -
      -
    • -hand-formatted lists are exported correctly, similar to -markdown lists. Nested lists are possible. See the docstring -of the variable `org-export-plain-list-max-depth'. -
    • -
    • -cleaned up to produce valid HTML 4.0 (transitional). -
    • -
    • -support for cascading style sheets. -
    • -
  • -
  • -New command to cycle through all agenda files, on C-, -
  • -
  • -C-c [ can now also be used to change the sequence of agenda files. - - -
  • -
- -
-

Version 3.19

- -
    -
  • -Bug fixes - -
  • -
- -
-

Version 3.18

- -
    -
  • -Export of calendar information in the standard iCalendar format. -
  • -
  • -Some bug fixes. - -
  • -
- -
-

Version 3.17

- -
    -
  • -HTML export specifies character set depending on coding-system. - -
  • -
- -
-

Version 3.16

- -
    -
  • -In tables, directly after the field motion commands like TAB and RET, -typing a character will blank the field. Can be turned off with -variable `org-table-auto-blank-field'. -
  • -
  • -Inactive timestamps with `C-c !'. These do not trigger the agenda -and are not linked to the calendar. -
  • -
  • -Additional key bindings to allow Org-mode to function on a tty emacs. -
  • -
  • -`C-c C-h' prefix key replaced by `C-c C-x', and `C-c C-x C-h' replaced -by `C-c C-x b' (b=Browser). This was necessary to recover the -standard meaning of C-h after a prefix key (show prefix bindings). - -
  • -
- -
-

Version 3.15

- -
    -
  • -QUOTE keyword at the beginning of an entry causes fixed-width export -of unmodified entry text. `C-c :' toggles this keyword. -
  • -
  • -New face `org-special-keyword' which is used for COMMENT, QUOTE, -DEADLINE and SCHEDULED, and priority cookies. Default is only a weak -color, to reduce the amount of aggressive color in the buffer. - -
  • -
- -
-

Version 3.14

- -
    -
  • -Formulas for individual fields in table. -
  • -
  • -Automatic recalculation in calculating tables. -
  • -
  • -Named fields and columns in tables. -
  • -
  • -Fixed bug with calling `org-archive' several times in a row. - -
  • -
- -
-

Version 3.13

- -
    -
  • -Efficiency improvements: Fewer table re-alignments needed. -
  • -
  • -New special lines in tables, for defining names for individual cells. - -
  • -
- -
-

Version 3.12

- -
    -
  • -Tables can store formulas (one per column) and compute fields. -Not quite like a full spreadsheet, but very powerful. -
  • -
  • -table.el keybinding is now `C-c ~'. -
  • -
  • -Numeric argument to org-cycle does `show-subtree' above on level ARG. -
  • -
  • -Small changes to keys in agenda buffer. Affected keys: -[w] weekly view; [d] daily view; [D] toggle diary inclusion. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 3.11

- -
    -
  • -Links inserted with C-c C-l are now by default enclosed in angle -brackets. See the new variable `org-link-format'. -
  • -
  • -">" terminates a link, this is a way to have several links in a line. -Both "<" and ">" are no longer allowed as characters in a link. -
  • -
  • -Archiving of finished tasks. -
  • -
  • -C-<up>/<down> bindings removed, to allow access to paragraph commands. -
  • -
  • -Compatibility with CUA-mode (see variable `org-CUA-compatible'). -
  • -
  • -Compatibility problems with viper-mode fixed. -
  • -
  • -Improved html export of tables. -
  • -
  • -Various clean-up changes. - -
  • -
- -
-

Version 3.10

- -
    -
  • -Using `define-derived-mode' to derive `org-mode' from `outline-mode'. - - -
  • -
- -
-

Version 3.09

- -
    -
  • -Time-of-day specifications in agenda are extracted and placed -into the prefix. Timed entries can be placed into a time grid for -day. - -
  • -
- -
-

Version 3.08

- -
    -
  • -"|" no longer allowed as part of a link, to allow links in tables. -
  • -
  • -The prefix of items in the agenda buffer can be configured. -
  • -
  • -Cleanup. - -
  • -
- -
-

Version 3.07

- -
    -
  • -Some folding inconsistencies removed. -
  • -
  • -BBDB links to company-only entries. -
  • -
  • -Bug fixes and global cleanup. - -
  • -
- -
-

Version 3.06

- -
    -
  • -M-S-RET inserts a new TODO heading. -
  • -
  • -New startup option `content'. -
  • -
  • -Better visual response when TODO items in agenda change status. -
  • -
  • -Window positioning after visibility state changes optimized and made -configurable. See `org-cycle-hook' and `org-occur-hook'. - -
  • -
- -
-

Version 3.05

- -
    -
  • -Agenda entries from the diary are linked to the diary file, so -adding and editing diary entries can be done directly from the agenda. -
  • -
  • -Many calendar/diary commands available directly from agenda. -
  • -
  • -Field copying in tables with S-RET does increment. -
  • -
  • -C-c C-x C-v extracts the visible part of the buffer for printing. -
  • -
  • -Moving subtrees up and down preserves the whitespace at the tree end. - -
  • -
- -
-

Version 3.04

- -
    -
  • -Table editor optimized to need fewer realignments, and to keep -table shape when typing in fields. -
  • -
  • -A new minor mode, orgtbl-mode, introduces the Org-mode table editor -into arbitrary major modes. -
  • -
  • -Fixed bug with realignment in XEmacs. -
  • -
  • -Startup options can be set with special #+STARTUP line. -
  • -
  • -Heading following a match in org-occur can be suppressed. - -
  • -
- -
-

Version 3.03

- -
    -
  • -Copyright transfer to the FSF. -
  • -
  • -Effect of C-u and C-u C-u in org-timeline swapped. -
  • -
  • -Timeline now always contains today, and `.' jumps to it. -
  • -
  • -Table editor: -
      -
    • -cut and paste of rectangular regions in tables -
    • -
    • -command to convert org-mode table to table.el table and back -
    • -
    • -command to treat several cells like a paragraph and fill it -
    • -
    • -command to convert a buffer region to a table -
    • -
    • -import/export tables as tab-separated files (exchange with Excel) -
    • -
  • -
  • -Agenda: -
      -
    • -Sorting mechanism for agenda items rewritten from scratch. -
    • -
    • -Sorting fully configurable. -
    • -
    • -Entries specifying a time are sorted together. -
    • -
  • -
  • -Completion also covers option keywords after `#-'. -
  • -
  • -Bug fixes. - -
  • -
- -
-

Version 3.01

- -
    -
  • -New reference card, thanks to Philip Rooke for creating it. -
  • -
  • -Single file agenda renamed to "Timeline". It no longer shows -warnings about upcoming deadlines/overdue scheduled items. -That functionality is now limited to the (multifile) agenda. -
  • -
  • -When reading a date, the calendar can be manipulated with keys. -
  • -
  • -Link support for RMAIL and Wanderlust (from planner.el, untested). -
  • -
  • -Minor bug fixes and documentation improvements. - -
  • -
- -
-

Version 3.00

- -
    -
  • -Multifile Agenda shows current entries from many different files. -
  • -
  • -TeXInfo documentation (thanks to Christian Egli for the conversion). -
  • -
  • -Additional applications for TODO keywords, see documentation. -Different files may have different TODO keywords etc. -
  • -
  • -Priorities for TODO items. -
  • -
  • -The browser mode used by `org-remember-handler' is improved. -
  • -
  • -Images get inlined in HTML export (thanks to Carsten Wimmer). -
  • -
  • -File links can contain line numbers, like file:/usr/etc/config:255 -
  • -
  • -Minor bug fixes. - - -
  • -
- -
-

Version 2.10

- -
    -
  • -TODO entries can have additional states besides TODO and DONE. -See new variable `org-todo-keywords'. -
  • -
  • -TODO keywords can be interpreted as categories. See variable -`org-todo-interpretation'. -
  • -
  • -M-TAB completion on TODO keywords, TeX symbols, and normal words. -
  • -
  • -All keywords (like TODO, DEADLINE etc) are configurable. -
  • -
  • -Cursor positioning optimized after pro/demotion and TODO cycling. -
  • -
  • -Emphasizing in HTML works now for bold, italic and underline. -
  • -
  • -New commands to kill, copy and yank entire subtrees. Yanking -modifies the level of the tree before insertion. -
  • -
  • -New command `org-goto' (C-c C-j) to quickly move to other locations -in the buffer without affecting outline visibility. -
  • -
  • -Hooks for John Wiegley's remember.el. -
  • -
  • -`org-read-date' pops up calendar for date selection with the mouse. -See variable `org-popup-calendar-for-date-prompt'. - -
  • -
- -
-

Version 2.6

- -
    -
  • -TODO items can be SCHEDULED to a certain date. -
  • -
  • -Expired DEADLINEs are ignored if in an entry marked DONE. -
  • -
  • -From the diary or time-sorted view (C-c C-r), C-c C-t can be used to -change the TODO state of an item remotely. -
  • -
  • -Horizontal computations in table editor. See `org-table-eval-formula'. -
  • -
  • -Fixed bug with summing tables (command `org-table-sum', `C-c +'). -
  • -
  • -Calendar window follows the timestamp when a timestamp is changed. -New variable `org-calendar-follow-timestamp-change'. -
  • -
  • -Time-sorted view (`org-diary-view', C-c C-r) now uses the prefix -argument to force inclusion of unscheduled TODO items. -
  • -
  • -New variable `org-confirm-shell-links' to turn of safety query. -
  • -
  • -New variable `org-open-non-existing-files'. - -
  • -
- -
-

Version 2.4

- -
    -
  • -A time-sorted view on all time stamps can be created with C-c C-r. -
  • -
  • -Timestamps and Deadlines can be shown in the Emacs diary. -
  • -
  • -Date ranges introduced. -
  • -
  • -Time-string formats are no longer configurable. -
  • -
  • -Vertical lines in tables can be made invisible with `C-c |'. -
  • -
  • -New "link" type to execute shell commands, like "<shell:ls> *.org" -
  • -
  • -Upon export, "myfile.org" becomes "myfile.html" or "myfile.txt", -instead of "myfile.org.html" or "myfile.org.txt". -
  • -
  • -When the cursor is in the white space at the beginning of a line, -TAB removes the whitespace before indenting again. - -
  • -
- -
-

Version 2.0

- -
    -
  • -Windows (NT/2000) support. -
  • -
  • -Works with both Emacs and XEmacs. -
  • -
  • -Fully automatic table editor. -
  • -
  • -New link types into Gnus, VM and BBDB. -
  • -
  • -Other link system changes -
      -
    • -Time stamps are treated as links to the calendar. -
    • -
    • -Easy creation of links with global command `org-store-link'. -
    • -
    • -Insertion of links with `C-c C-l' works differently now. -
    • -
    • -Space characters allowed as part of a link. -
    • -
    • -Options in `org-file-apps' extended. The command may now be -symbol 'emacs', or a lisp form. -
    • -
  • -
-

Please re-read the manual section about links. -

    -
  • -Timestamp changes -
      -
    • -`org-deadline' now prompts for a date. -
    • -
    • -A line can now contain several timestamps. Updating of a -timestamp only happens if the cursor is at the timestamp. -
    • -
    • -Changed the time-stamp-format to ISO, to make sure it will -always work (non-English month names had caused problems -with `parse-time-string'.). Changing the time stamp format -is not recommended. -
    • -
  • -
  • -Picture mode enhancements have been removed from org.el - - -
  • -
- -
-

Version 1.4

- -
    -
  • -Some option name changes, not backward compatible. -
  • -
  • -ASCII exporter upgrade: Table of contents. -
  • -
  • -HTML exporter upgrade: fixed-width regions, better -sub/superscripts, many TeX symbols supported. -
  • -
  • -Calendar support. - -
  • -
- -
-

Version 1.3

- -
    -
  • -HTML exporter upgrade, in particular table of contents - - - -
  • -
-
-

Author: Carsten Dominik -<carsten at orgmode dot org> -

-

Date: 2008/02/19 08:08:42

-
- diff --git a/ORGWEBPAGE/Changes.org b/ORGWEBPAGE/Changes.org index 7b08b2921..c9d34af99 100644 --- a/ORGWEBPAGE/Changes.org +++ b/ORGWEBPAGE/Changes.org @@ -11,6 +11,44 @@ ** Details +*** New keyword search agenda view + + `C-c a s' now invokes a special agenda view that can be used + to search notes by keyword and regular expressions. The + search knows the boundaries of an entry, and it can use + simple Boolean logic. For example, the search string + + : +computer +wifi -ethernet -{8\.11[bg]} + + will search for note entries that contain the keywords + @code{computer} and @code{wifi}, but not the keyword + @code{ethernet}, and which are also not matched by the + regular expression @code{8\.11[bg]}, meaning to exclude both + 8.11b and 8.11g. If the first character of the search string + is an asteriks, the search will only look at headlines - + otherwise it will look at the headine and the text below it, + up to the next (possibly sub-) heading. + + If find it very useful to define a custom command to do such + a search only in a limited number of files (my notes files), + like this: + + : ("N" "Search notes" search "" + : ((org-agenda-files '("~/org/notes.org" "~/org/computer.org")))) + +*** Many new extensions available in the CONTRIB directory + + The new development model already starts to pay off, a number + of interesting extensions are now part of the distribution. + Check the file CONTRIB/README for a list. + + Interesting for developers may be that there is a file + org-id.el which implements global ID's for org-mode entries. + These can be used in dependency implementations, for + example. + +*** Misc + - M-RET can again be used to split a line so tha the rest of the line becomes the new heading. However, if you do this in a heading containing tags, the tags will stay in the old diff --git a/ORGWEBPAGE/tmp/Changes.html b/ORGWEBPAGE/tmp/Changes.html index 5be9ab1ce..4fb743b42 100644 --- a/ORGWEBPAGE/tmp/Changes.html +++ b/ORGWEBPAGE/tmp/Changes.html @@ -6,12 +6,112 @@ lang="en" xml:lang="en"> Org-mode list of User-visible changes - + - +

Org-mode list of User-visible changes

+
+

Version 5.23

+ + + +
+

Incompatible changes

+ + +
+ +
+

Details

+ + + +
+

New keyword search agenda view

+ + +

+This is a special search that lets you select entries by keywords or +regular expression, using a boolean logic. For example, the search +string +

+

+

+ +computer +wifi -ethernet -{8\.11[bg]}
+
+

+

+will search for note entries that contain the keywords @code{computer} +and @code{wifi}, but not the keyword @code{ethernet}, and which are also +not matched by the regular expression @code{8\.11[bg]}, meaning to +exclude both 8.11b and 8.11g. If the first character of the +search string is an asteriks, the search will lonly look at +headlines - otherwise it will look at the headine and the +text below it, up to the next (possibly sub-) heading. +

+

+The default key binding for this view is `C-c a s'. +

+

+You can define a custom command to do such a search only in a +limited number of files, like this: +

+

+

+ ("S" "Search notes" search ""
+   ((org-agenda-files '("~/org/notes.org" "~/org/computer.org"))))    
+
+

+
+ +
+

Misc

+ + +
    +
  • +M-RET can again be used to split a line so tha the rest of +the line becomes the new heading. However, if you do this +in a heading containing tags, the tags will stay in the old +line. + +

    +Customize the variable `org-M-RET-may-split-line' if you +don't want this command to split a line in the middle. The +same variable also influences line splitting in items and in +tables. +

    + +
  • +
+
+
+

Version 5.22

@@ -6602,6 +6702,6 @@ HTML exporter upgrade, in particular table of contents

Author: Carsten Dominik <carsten at orgmode dot org>

-

Date: 2008/02/19 09:12:40

+

Date: 2008/02/28 17:49:40

diff --git a/org.el b/org.el index 39639ad09..0feb6428e 100644 --- a/org.el +++ b/org.el @@ -20867,8 +20867,18 @@ given in `org-agenda-start-on-weekday'." ;;;###autoload (defun org-search-view (&optional arg string) - "Show all entries that contain the words given in the search string. -If the search string starts with an asterisks, only search in headlines." + "Show all entries that contain words or regular expressions. +If the first character of the search string is an asterisks, +search only the headlines. + +The search string is broken into \"words\" by splitting at whitespace. +The individual words are then interpreted as a boolean expression with +logical AND. Words prefixed with a minus must not occur in the entry. +Words without a prefix or prefixed with a plus must occur in the entry. +Matching is case-insensitive and the words are enclosed by word delimiters. + +Words enclosed by curly braces are interpreted as regular expressions +that must or must not match in the entry." (interactive "P") (org-compile-prefix-format 'search) (org-set-sorting-strategy 'search) @@ -20884,7 +20894,7 @@ If the search string starts with an asterisks, only search in headlines." (regexp (concat "^" org-outline-regexp)) rtn rtnall files file pos marker priority category tags - ee txt beg end words word-regexps hdl-only buffer beg1 str) + ee txt beg end words regexps+ regexps- hdl-only buffer beg1 str) (unless (and (stringp string) (string-match "\\S-" string)) (setq string (read-string "Word Search: " nil @@ -20897,10 +20907,19 @@ If the search string starts with an asterisks, only search in headlines." (setq hdl-only t words (substring string 1)) (setq words string)) - (setq words (org-split-string words) - word-regexps - (mapcar (lambda (w) (concat "\\<" (regexp-quote (downcase w)) "\\>")) - words)) + (setq words (org-split-string words)) + (mapc (lambda (w) + (setq c (string-to-char w)) + (if (equal c ?-) + (setq neg t w (substring w 1)) + (if (equal c ?+) + (setq neg nil w (substring w 1)) + (setq neg nil))) + (if (string-match "\\`{.*}\\'" w) + (setq re (substring w 1 -1)) + (setq re (concat "\\<" (regexp-quote (downcase w)) "\\>"))) + (if neg (push re regexps-) (push re regexps+))) + words) (setq files (org-agenda-files) rtnall nil) (while (setq file (pop files)) @@ -20935,12 +20954,14 @@ If the search string starts with an asterisks, only search in headlines." (setq str (buffer-substring-no-properties (point-at-bol) (if hdl-only (point-at-eol) end))) - (mapc - (lambda (wr) - (unless (string-match wr str) - (goto-char (1- end)) - (throw :skip t))) - word-regexps) + (mapc (lambda (wr) (when (string-match wr str) + (goto-char (1- end)) + (throw :skip t))) + regexps-) + (mapc (lambda (wr) (unless (string-match wr str) + (goto-char (1- end)) + (throw :skip t))) + regexps+) (goto-char beg) (setq marker (org-agenda-new-marker (point)) category (org-get-category) diff --git a/org.texi b/org.texi index fab72ecaa..bdc519126 100644 --- a/org.texi +++ b/org.texi @@ -245,6 +245,7 @@ The built-in agenda views * Global TODO list:: All unfinished action items * Matching tags and properties:: Structured information with fine-tuned search * Timeline:: Time-sorted view for single file +* Keyword search:: Finding entries by keyword * Stuck projects:: Find projects you need to review Presentation and sorting @@ -4729,7 +4730,7 @@ important for a particular date, this information must be collected, sorted and displayed in an organized way. Org-mode can select items based on various criteria, and display them -in a separate buffer. Six different view types are provided: +in a separate buffer. Seven different view types are provided: @itemize @bullet @item @@ -4745,6 +4746,9 @@ the tags associated with them, a @emph{timeline view} that shows all events in a single Org-mode file, in time-sorted view, @item +a @emph{keyword search view} that shows all entries from multiple files +that contain specified keywords. +@item a @emph{stuck projects view} showing projects that currently don't move along, and @item @@ -4869,14 +4873,17 @@ Create a list of headlines matching a TAGS expression (@pxref{Matching tags and properties}). @item L Create the timeline view for the current buffer (@pxref{Timeline}). -@item # @r{/} ! -Create a list of stuck projects (@pxref{Stuck projects}). +@item s +Create a list of entries selected by a boolean expression of keywords +and/or regular expressions that must or must not occur in the entry. @item / Search for a regular expression in all agenda files and additionally in the files listed in @code{org-agenda-multi-occur-extra-files}. This uses the Emacs command @code{multi-occur}. A prefix argument can be used to specify the number of context lines for each match, default is 1. +@item # @r{/} ! +Create a list of stuck projects (@pxref{Stuck projects}). @item < Restrict an agenda command to the current buffer@footnote{For backward compatibility, you can also press @kbd{1} to restrict to the current @@ -4906,6 +4913,7 @@ In this section we describe the built-in views. * Global TODO list:: All unfinished action items * Matching tags and properties:: Structured information with fine-tuned search * Timeline:: Time-sorted view for single file +* Keyword search:: Finding entries by keyword * Stuck projects:: Find projects you need to review @end menu @@ -5100,6 +5108,31 @@ When called with a @kbd{C-u} prefix, all unfinished TODO entries The commands available in the timeline buffer are listed in @ref{Agenda commands}. +@node Keyword search, Stuck projects, Timeline, Built-in agenda views +@subsection Keyword search +@cindex keyword search +@cindex searching, for keywords + +This agenda view is a general text search facility for Org-mode entries. +It is particularly useful to find notes. + +@table @kbd +@kindex C-c a s +@item C-c a s +This is a special search that lets you select entries by keywords or +regular expression, using a boolean logic. For example, the search +string + +@example ++computer +wifi -ethernet -@{8\.11[bg]@} +@end example + +Will search for note entries that contain the keywords @code{computer} +and @code{wifi}, but not the keyword @code{ethernet}, and which are also +not matched by the regular expression @code{8\.11[bg]}, meaning to +exclude both 8.11b and 8.11g. +@end table + @node Stuck projects, , Timeline, Built-in agenda views @subsection Stuck projects From 4f7cb263f37d85e041b9d1b8b6493f30e4d77368 Mon Sep 17 00:00:00 2001 From: Carsten Dominik Date: Fri, 29 Feb 2008 14:49:06 +0100 Subject: [PATCH 3/3] Implementing search view. --- ChangeLog | 11 ++++ ORGWEBPAGE/Changes.org | 13 +++-- org.el | 119 ++++++++++++++++++++++++++++++++++------- org.texi | 32 +++++++++-- 4 files changed, 149 insertions(+), 26 deletions(-) diff --git a/ChangeLog b/ChangeLog index 10f2e75da..1c6054ad8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2008-02-29 Carsten Dominik + + * org.el (org-agenda-text-search-extra-files): Renamed from + `org-agenda-multi-occur-extra-files'. + (org-agenda-manipulate-query-add) + (org-agenda-manipulate-query-subtract) + (org-agenda-manipulate-query-add-regexp) + (org-agenda-manipulate-query-subtract-regexp) + (org-agenda-manipulate-query): New functions. + (org-agenda-query-register): New option. + 2008-02-28 Carsten Dominik * org.el (org-auto-repeat-maybe): Make sure that the repeat stuff diff --git a/ORGWEBPAGE/Changes.org b/ORGWEBPAGE/Changes.org index c9d34af99..388cde8ba 100644 --- a/ORGWEBPAGE/Changes.org +++ b/ORGWEBPAGE/Changes.org @@ -15,8 +15,9 @@ `C-c a s' now invokes a special agenda view that can be used to search notes by keyword and regular expressions. The - search knows the boundaries of an entry, and it can use - simple Boolean logic. For example, the search string + search knows the boundaries of an entry, can use simple + Boolean logic and is reasonably fast. For example, the + search string : +computer +wifi -ethernet -{8\.11[bg]} @@ -29,12 +30,16 @@ otherwise it will look at the headine and the text below it, up to the next (possibly sub-) heading. - If find it very useful to define a custom command to do such + The command searches all agenda files, and in addition the + files listed in `org-agenda-text-search-extra-files'. + + I find it very useful to define a custom command to do such a search only in a limited number of files (my notes files), like this: : ("N" "Search notes" search "" - : ((org-agenda-files '("~/org/notes.org" "~/org/computer.org")))) + : ((org-agenda-files '("~/org/notes.org" "~/org/computer.org")) + : (org-agenda-text-search-extra-files nil))) *** Many new extensions available in the CONTRIB directory diff --git a/org.el b/org.el index 0feb6428e..88849e4c4 100644 --- a/org.el +++ b/org.el @@ -2262,12 +2262,21 @@ Nil means to remove them, after a query, from the list." :group 'org-agenda :type 'boolean) -(defcustom org-agenda-multi-occur-extra-files nil - "List of extra files to be searched by `org-occur-in-agenda-files'. -The files in `org-agenda-files' are always searched." +(defcustom org-agenda-text-search-extra-files nil + "List of extra files to be searched by text search commands. +These files will be search in addition to the agenda files bu the +commands `org-search-view' (`C-c a s') and `org-occur-in-agenda-files'. +Note that these files will only be searched for text search commands, +not for the other agenda views like todo lists, tag earches or the weekly +agenda. This variable is intended to list notes and possibly archive files +that should also be searched by these two commands." :group 'org-agenda :type '(repeat file)) +(if (fboundp 'defvaralias) + (defvaralias 'org-agenda-multi-occur-extra-files + 'org-agenda-text-search-extra-files)) + (defcustom org-agenda-confirm-kill 1 "When set, remote killing from the agenda buffer needs confirmation. When t, a confirmation is always needed. When a number N, confirmation is @@ -2492,6 +2501,13 @@ should provide a description for the prefix, like (string :tag "Access Key(s)") (string :tag "Description "))))) +(defcustom org-agenda-query-register ?o + "The register holding the current query string. +The prupose of this is that if you construct a query string interactively, +you can then use it to define a custom command." + :group 'org-agenda-custom-commands + :type 'character) + (defcustom org-stuck-projects '("+LEVEL=2/-DONE" ("TODO" "NEXT" "NEXTACTION") nil "") "How to identify stuck projects. @@ -19329,6 +19345,7 @@ FIXME: describe the elements." (defvar org-agenda-follow-mode nil) (defvar org-agenda-show-log nil) (defvar org-agenda-redo-command nil) +(defvar org-agenda-query-string nil) (defvar org-agenda-mode-hook nil) (defvar org-agenda-type nil) (defvar org-agenda-force-single-file nil) @@ -19465,6 +19482,11 @@ The following commands are available: (org-defkey org-agenda-mode-map [(left)] 'org-agenda-earlier) (org-defkey org-agenda-mode-map "\C-c\C-x\C-c" 'org-agenda-columns) +(org-defkey org-agenda-mode-map "[" 'org-agenda-manipulate-query-add) +(org-defkey org-agenda-mode-map "]" 'org-agenda-manipulate-query-subtract) +(org-defkey org-agenda-mode-map "{" 'org-agenda-manipulate-query-add-re) +(org-defkey org-agenda-mode-map "}" 'org-agenda-manipulate-query-subtract-re) + (defvar org-agenda-keymap (copy-keymap org-agenda-mode-map) "Local keymap for agenda entries from Org-mode.") @@ -20878,7 +20900,10 @@ Words without a prefix or prefixed with a plus must occur in the entry. Matching is case-insensitive and the words are enclosed by word delimiters. Words enclosed by curly braces are interpreted as regular expressions -that must or must not match in the entry." +that must or must not match in the entry. + +This command searches the agenda files, and in addition the files listed +in `org-agenda-text-search-extra-files'." (interactive "P") (org-compile-prefix-format 'search) (org-set-sorting-strategy 'search) @@ -20890,18 +20915,20 @@ that must or must not match in the entry." 'mouse-face 'highlight 'keymap org-agenda-keymap 'help-echo (format "mouse-2 or RET jump to location"))) - ;; FIXME: get rid of the \n at some point but watch out - (regexp (concat "^" org-outline-regexp)) - rtn rtnall files file pos - marker priority category tags + regexp rtn rtnall files file pos + marker priority category tags c neg re ee txt beg end words regexps+ regexps- hdl-only buffer beg1 str) - (unless (and (stringp string) + (unless (and (not arg) + (stringp string) (string-match "\\S-" string)) - (setq string (read-string "Word Search: " nil + (setq string (read-string "[+-]Word/{Regexp} ...: " + (cond + ((integerp arg) (cons string arg)) + (arg string)) 'org-agenda-search-history))) - (setq org-agenda-redo-command (list 'org-search-view 'current-prefix-arg string)) + (setq org-agenda-query-string string) (if (equal (string-to-char string) ?*) (setq hdl-only t @@ -20920,7 +20947,13 @@ that must or must not match in the entry." (setq re (concat "\\<" (regexp-quote (downcase w)) "\\>"))) (if neg (push re regexps-) (push re regexps+))) words) - (setq files (org-agenda-files) + (setq regexps+ (sort regexps+ (lambda (a b) (> (length a) (length b))))) + (if (not regexps+) + (setq regexp (concat "^" org-outline-regexp)) + (setq regexp (pop regexps+)) + (if hdl-only (setq regexp (concat "^" org-outline-regexp ".*?" + regexp)))) + (setq files (append (org-agenda-files) org-agenda-text-search-extra-files) rtnall nil) (while (setq file (pop files)) (setq ee nil) @@ -20944,11 +20977,17 @@ that must or must not match in the entry." org-agenda-restrict-end) (widen)) (goto-char (point-min)) + (unless (or (org-on-heading-p) + (outline-next-heading)) + (throw 'nextfile t)) + (goto-char (max (point-min) (1- (point)))) (while (re-search-forward regexp nil t) + (org-back-to-heading t) + (skip-chars-forward "* ") + (setq beg (point-at-bol) + beg1 (point) + end (progn (outline-next-heading) (point))) (catch :skip - (setq beg (point-at-bol) - beg1 (match-end 0) - end (progn (outline-next-heading) (point))) (goto-char beg) (org-agenda-skip) (setq str (buffer-substring-no-properties @@ -20977,7 +21016,7 @@ that must or must not match in the entry." 'type "search") (push txt ee) (goto-char (1- end))))))))) - (setq rtn ee) + (setq rtn (nreverse ee)) (setq rtnall (append rtnall rtn))) (if org-agenda-overriding-header (insert (org-add-props (copy-sequence org-agenda-overriding-header) @@ -20988,7 +21027,11 @@ that must or must not match in the entry." (setq pos (point)) (insert string "\n") (add-text-properties pos (1- (point)) (list 'face 'org-warning)) - (setq pos (point))) + (setq pos (point)) + (unless org-agenda-multi + (insert "Press `[', `]' to add/sub word, `{', `}' to add/sub regexp, `C-u r' to edit\n") + (add-text-properties pos (1- (point)) + (list 'face 'org-agenda-structure)))) (when rtnall (insert (org-finalize-agenda-entries rtnall) "\n")) (goto-char (point-min)) @@ -22440,6 +22483,46 @@ When this is the global TODO list, a prefix argument will be interpreted." (goto-line line) (recenter window-line))) +(defun org-agenda-manipulate-query-add () + "Manipulate the query by adding a search term with positive selection. +Positive selection means, the term must be matched for selection of an entry." + (interactive) + (org-agenda-manipulate-query ?\[)) +(defun org-agenda-manipulate-query-subtract () + "Manipulate the query by adding a search term with negative selection. +Negative selection means, term must not be matched for selection of an entry." + (interactive) + (org-agenda-manipulate-query ?\])) +(defun org-agenda-manipulate-query-add-re () + "Manipulate the query by adding a search regexp with positive selection. +Positive selection means, the regexp must match for selection of an entry." + (interactive) + (org-agenda-manipulate-query ?\{)) +(defun org-agenda-manipulate-query-subtract-re () + "Manipulate the query by adding a search regexp with negative selection. +Negative selection means, regexp must not match for selection of an entry." + (interactive) + (org-agenda-manipulate-query ?\})) +(defun org-agenda-manipulate-query (char) + (cond + ((eq org-agenda-type 'search) + (org-add-to-string + 'org-agenda-query-string + (cdr (assoc char '((?\[ . " +") (?\] . " -") + (?\{ . " +{}") (?\} . " -{}"))))) + (setq org-agenda-redo-command + (list 'org-search-view + (+ (length org-agenda-query-string) + (if (member char '(?\{ ?\})) 0 1)) + org-agenda-query-string)) + (set-register org-agenda-query-register org-agenda-query-string) + (org-agenda-redo)) + (t (error "Canot manipulate query for %s-type agenda buffers" + org-agenda-type)))) + +(defun org-add-to-string (var string) + (set var (concat (symbol-value var) string))) + (defun org-agenda-goto-date (date) "Jump to DATE in agenda." (interactive (list (org-read-date))) @@ -27776,7 +27859,7 @@ really on, so that the block visually is on the match." (interactive "sOrg-files matching: \np") (let* ((files (org-agenda-files)) (tnames (mapcar 'file-truename files)) - (extra org-agenda-multi-occur-extra-files) + (extra org-agenda-text-search-extra-files) f) (while (setq f (pop extra)) (unless (member (file-truename f) tnames) diff --git a/org.texi b/org.texi index bdc519126..02929bc87 100644 --- a/org.texi +++ b/org.texi @@ -5127,12 +5127,15 @@ string +computer +wifi -ethernet -@{8\.11[bg]@} @end example -Will search for note entries that contain the keywords @code{computer} +@noindent +will search for note entries that contain the keywords @code{computer} and @code{wifi}, but not the keyword @code{ethernet}, and which are also not matched by the regular expression @code{8\.11[bg]}, meaning to exclude both 8.11b and 8.11g. -@end table +Note that in addition to the agenda files, this command will also search +the files listed in @code{org-agenda-text-search-extra-files}. +@end table @node Stuck projects, , Timeline, Built-in agenda views @subsection Stuck projects @@ -5426,6 +5429,23 @@ Display the previous dates. @item . Goto today. +@tsubheading{Query editing} +@cindex query editing, in agenda + +@kindex [ +@kindex ] +@kindex @{ +@kindex @} +@item [ ] @{ @} +In the @i{search view} (@pxref{Keyword search}), these keys add new +search words (@kbd{[} and @kbd{]}) or new regular expressions (@kbd{@{} +and @kbd{@}}) to the query string. The opening bracket/brace will add a +positive search term prefixed by @samp{+}, indicating that this search +term @i{must} occur/match in the entry. Closing bracket/brace add a +negative search term which @i{must not} occur/match in the entry for it +to be selected. + + @tsubheading{Remote editing} @cindex remote editing, from agenda @@ -5744,7 +5764,10 @@ right spot in @code{org-agenda-custom-commands}. For example: (org-agenda-prefix-format " Mixed: "))) ("U" tags-tree "+boss-urgent" ((org-show-following-heading nil) - (org-show-hierarchy-above nil))))) + (org-show-hierarchy-above nil))) + ("N" search "" + ((org-agenda-files '("~org/notes.org")) + (org-agenda-text-search-extra-files nil))))) @end group @end lisp @@ -5754,7 +5777,8 @@ priority, and the prefix format is modified to just say @samp{ Mixed: } instead of giving the category of the entry. The sparse tags tree of @kbd{C-c a U} will now turn out ultra-compact, because neither the headline hierarchy above the match, nor the headline following the match -will be shown. +will be shown. The command @kbd{C-c a N} will do a text search limited +to only a single file. For command sets creating a block agenda, @code{org-agenda-custom-commands} has two separate spots for setting