# -*- mode: org; org-export-publishing-directory: "tmp"; fill-column: 65 -*- #+TITLE: Org-mode list of user-visible changes #+AUTHOR: Carsten Dominik #+EMAIL: carsten at orgmode dot org #+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:{} *:t TeX:t LaTeX:nil #+INFOJS_OPT: view:info toc:1 path:org-info.js #+LINK_UP: index.html #+LINK_HOME: http://orgmode.org * Version 6.02a ** Details *** Clock task history Org now remembers the last 5 tasks that you clocked into, to make it easier to clock back into a task after interrupting it for another task. - `C-u C-u C-c C-x C-i' (or `C-u C-u I' from the agenda) wil clock into that task and mark it as current default task. - `C-u C-c C-x C-i' (or `C-u I' from the agenda) will offer a list of recently clocked tasks, including the default task, for selection. `d' selects the default task, `i' selects the task that was interrupted by the task that is currently being clocked. `1',... selects a recent task. When you select a task, you will be clocked into it. * Version 6.02 ** Overview - Column view (mostly) works now in XEmacs - Summaries for columns in the agenda - The special property Effort can be used for effort estimates - New operators for property searches - Search commands can now include archive files. - Clock tables can include the archive files - Orgtbl radio tables generalized. ** Details *** Column view works now in XEmacs I had already given up on this, but Greg Chernev (who implemented noutline.el for XEmacs and in this way kept Org alive on XEmacs) has done it again and provided the patches to make column view work under XEmacs. There are still some problems, but the basics work and we will iron out the remaining issues, hopefully soon. *** Summaries for columns in the agenda If any of the columns has a summary type defined, turning on column view in the agenda will show summaries for these columns. Org will first visit all relevant agenda files and make sure that the computations of this property are up to date. This is also true for the special =CLOCKSUM= property. Org will then sum the values displayed in the agenda. In the daily/weekly agenda, the sums will cover a single day, in all other views they cover the entire block. It is vital to realize that the agenda may show the same entry multiple times (for example as scheduled and as a deadline), and it may show two entries from the same hierarchy (for example a /parent/ and it's /child/). In these cases, the summation in the agenda will lead to incorrect results because some values will count double. *** The special property Effort can be used for effort estimates If you want to plan your work in a very detailed way, or if you need to produce offers with quotations of the estimated work effort, you may want to assign effort estimates to entries. If you are also clocking your work, you may later want to compare the planned effort with the actual working time. Effort estimates can now be stored in a special property =Effort=, displayed side-to-side with clock sums, and also be summed over a day, in order to show the planned work load of a day. See the manual for more details. *** New operators for property searches Property searches can now choose a number of different operators for comparing values. These operators are `=', `<>', `<', `<=', `>', and `>='. When the search term uses the operator with plain number like =+Effort>=2.7=, then the property value is converted to a number and a numerical comparison takes place. When the search term uses a string on the right hand side of the operator, a string comparison is done: =+PRIORITY<"C".= Finally, if the right hand side is enclosed in curly braces, a regexp match is done: =aaa={regexp}=. In this case you should use only the `=' or `<>' operators, meaning "does match" or "does not match", respectively. This was a triggered with a request by Dan Davison. *** Search commands can now include archive files. If the value of the customization variable =org-agenda-text-search-extra-files= contains the symbol =agenda-archives= as the first element in the list, all archive files of all agenda files will be added to the list of files to search. This is relevant for the search view =C-c a s=, as well as for the agenda files multi-occur command =C-c a /=. *** Clock tables can include the archive files There are new values for the =:scope= parameter of a clock table. This can now be =file-with-archives= and =agenda-with-archives=, in order to collect information not only from the current file or all agenda files, but also from all archive files that are currently used by these files. *** Orgtbl radio tables generalized. The options available for radio tables using orgtbl-mode have been expanded. You may use several reception points and formats for the same table, you may have special formatting in the last line of the table, and many table parameters may be functions, so that more general transformations are possible. Jason Riedy provided a patch for this, and he will hopefully come up with some examples. Thanks! * Version 6.01 This is a new major release, mostly because of structural changes in Org. However, since this took a while, there is also a long list of small improvements and some new significant features. ** Overview - The Org distribution has a new structure - New system for selecting modules to load - New archiving mechanism: The Archive Sibling - Support for Sebastian Rose's JavaScript org-info.js. - Internal links work now better in HTML export - Export commands can be done in the background - Flexible setting of the time block shown by the clock table - Clock table can be included in the agenda - Support for ISO week dates (ISO 6801) - Tag inheritance can be limited to a subset of all tags - Entries can be sorted by TODO keyword - And some more small fixes and improvements ** Incompatible changes *** The Org distribution has a new structure In the distribution files as well as in the GIT repository, the lisp files are now located in a subdirectory "lisp", and the documentation files are located in a subdirectory "doc". If you are running Org directly from the unpacked distribution archive (zip or tar file, or GIT repository), you need to modify your settings for load-path accordingly. ** Details *** The Org distribution has a new structure In the distribution files as well as in the GIT repository, the lisp files are now located in a subdirectory "lisp", and the documentation files are located in a subdirectory "doc". If you are running Org directly from the unpacked distribution archive (zip or tar file, or GIT repository), you need to modify your settings for load-path accordingly. *** Loading modules Org-mode has now a system for loading modules by simply configuring an option that lists all the modules you want to use. Customize the variable `org-modules'. That variable lists both modules that are part of the Org-mode core (and in this way part of Emacs), and modules that are contributed packages. Contributed modules will only be available when you have installed them properly (most likely by downloading the distribution and adding /path/to/orgdir/contrib/lisp to your load path). *** New archiving mechanism: The Archive Sibling There is a new method to archive entries in the current file: By moving it to a sibling called the /Archive Sibling/. That sibling has the heading "Archive" and also carries the ARCHIVE tag. This can be a great way to do archiving inside a project, to get parts of the project out of the way and to wait with true archiving (moving to another file) until the entire project is done. Archiving to a sibling keeps much of the context, for example inherited tags and approximate tree position in tact. The key binding for the is "C-c C-x A", and from the agenda buffer you can simply use "A". Thanks to Ilya Shlyakhter for this rather clever idea. *** Support for Sebastian Rose's JavaScript org-info.js. This fascinating program allows a completely new viewing experience for web pages created from Org files. The same document can be viewed in different ways, and switching between the views as well as navigation uses single-key commands. One of the view types is an /Info-like/ interface where you can jump through the sections of the document with the `n' and `p' keys (and others). There is also a /folding/ interface where you can fold the document much like you can fold it in org-mode in Emacs, and cycle through the visibility both locally and globally. To set this up, all you need to do is to make sure that org-infojs.el gets loaded (customize the variable org-modules to check). Then add this line to the buffer: : #+INFOJS_OPT: view:info In that line, you can configure the initial view and other settings. Available views are =info= for the info-like interface, and =overview=, =content=, and =showall= for the folding interface. See the manual for more details. The JavaScript program is served from http://orgmode.org/org-info.js, and your exported HTML files will automatically get it from there. However, you may want to be independent of the existence and stability of orgmode.org and install a copy locally. Then you need to change the path from which the script is loaded, either by using something like : #+INFOJS_OPT: view:info path:../scripts/org-info.js or by configuring the variable =org-infojs-options=. For details see the documentation provided by Sebastian Rose together with org-info.js. *** Export improvements - The export of internal links to HTML now works a lot better. Most internal links that work while editing an Org file inside Emacs will now also work the the corresponding HTML file. - You can run many of the export commands in the background by using `C-c C-u C-c C-e' in order to start the process. RIght now this will only work if "emacs" is the right command to get to your Emacs executable - I hope to make this less system dependent in the future. Both these are based on requests by Ilya Shlyakhter. *** Improvements to clocktable - The clocktable is now much more flexible and user friendly when trying to specify the time block that should be considered when constructing the table. The =:block= parameter to the table can now look like any of these: | :block | meaning | |--------------+-----------------------| | 2008 | The entire year 2008 | | 2008-04 | The month April 2008 | | 2008-04-02 | The day April 2, 2008 | | 2008-W14 | ISO-Week 14 in 2008 | | today | Today | | today-5 | The day five days ago | | thisweek | The current week | | thisweek-2 | Two weeks ago | | thismonth | The current month | | thismonth-12 | Same month, last year | | lastmonth | Same as thismonth-1 | What is more, you can now use the =S-left= and =S-right= keys to shift the time block around. The cursor needs to be in the =#+BEGIN: clocktable= line for this to work. If the current block is =today=, =S-left= with switch to yesterday. If the current block is =2008-W14=, =S-right= will switch to the following week. - When the clocktable is collecting from several files, the total time for each file will now also be listed. This was a request from Bernt Hansen. - If you turn on the new clock report mode with the "R" key in the agenda, a clock table will be attached to the agenda, showing the clock report for the file scope and time interval of the agenda view. To turn this on permanently, configure the variable =org-agenda-start-with-clock report-mode=. To modify the properties of the table, in particular the =:maxlevel= depth, configure =org-agenda-clockreport-parameter-plist=. *** Support for ISO week dates (ISO 6801) The agenda now shows the ISO week for the displayed dates, in the form =W08= for week 8. The keys =d=, =w=, =m=, and =y= in the agenda view now accept prefix arguments. Remember that in the agenda, you can directly type a prefix argument by typing a number, no need to press =C-u= first. The prefix argument may be used to jump directly to a specific day of the year, ISO week, month, or year, respectively. For example, =32 d= jumps to February 1st, =9 w= to ISO week number 9. When setting day, week, or month view, a year may be encoded in the prefix argument as well. For example, =200712 w= will jump to week 12 in the year 2007. If such a year specification has only one or two digits, it will be mapped to the interval 1938-2037. When entering a date at the date prompt, you may now also specify an ISO week. For example : w4 Monday of week 4 : fri w4 Friday of week 4 : w4-5 Same as above : 2012 w4 fri Friday of week 4 in 2012. : 2012-W04-5 Same as above So far I have not implemented the effect of `org-read-date-prefer-future' on this functionality, because it seemed too magic for me. I'd appreciate comments on this issue: Should `org-read-date-prefer-future' also push dates into the next year if the week you are entering has already passed in the current year? For consistency I guess this should be the case, but I cannot quite wrap my head around it. I hope but am not entirely convinced that this will behave sanely also during the first/last week of a year. Please test extensively and report back. This was a request by Thomas Baumann. *** Improvements in Search View - Calling search view with a C-u prefix will make it match only in TODO entries. - The single quote is no longer considered a word character during search, so that searching for the word "Nasim" will also match in "Nasim's". *** Misc - Inheritance of tags can now be limited to a subset of all tags, using the variable =org-use-tag-inheritance=. This variable may now be a regular expression or a list to select the inherited tags. Thanks to Michael Ekstrand for this excellent proposal. The regexp option is also implemented for =org-use-property-inheritance=, so that you can now select properties for inheritance my name. - The INHERIT flag to the function =org-entry-get= can be set to the symbol =selective=. If this is the case, then the value of the property will be retrieved using inheritance if and only if the setting in =org-use-property-inheritance= selects the property for inheritance. - There are now special faces for the date lines in the agenda/timeline buffers, and another special face for days that fall on a weekend: =org-agenda-date= and =org-agenda-date-weekend=. Both these faces are initially similar to the =org-agenda-structure= face, but you can customize them freely. - When an entry already has a scheduling or deadline time stamp, calling `C-c C-s' or `C-c C-d', respectively, will now use that old date as the default, and you can can use the "++4d" syntax to invoke shifts relative to that default date. Simply pressing RET at the prompt will keep the default date, not switch to today. This was an omission in the earlier implementation, spotted by Wanrong Lin. Thanks! - File names in remember templates can be relative, if they are, they will be interpreted relative to =org-directory=. - The handling of the clipboard when inserting into remember templates is now much better, and gives more control on what should be inserted with new %-escapes: - =%c= - Now always insert the head of the kill ring, never the X clipboard. - =%x= - Insert the content of the X clipboard. This is the first non-empty value from the PRIMARY, SECONDARY and CLIPBOARD X clipboards. - =%^C= - This allows the user to choose between any of the clipboard values available, the kill ring head, and the initial region if set. - =%^L= - Like =%^C=, but this inserts an org link using the selected value. Thanks to James TD Smith for this patch. - Table export to an internal file can now use a format specification, similar to the formats that are used by orgtbl radio tables. The default format is in the variable =org-table-export-default-format=. You can use properties =TABLE_EXPORT_FILE= and =TABLE_EXPORT_FORMAT= to specify the file name to which the export should go, and a local format. For example: : :PROPERTIES: : :TABLE_EXPORT_FILE: ~/xx.txt : :TABLE_EXPORT_FORMAT: orgtbl-to-generic :splice t :sep "\t" : :END: Thanks to James TD Smith for this patch. - Entries can be sorted by TODO keyword, and the order is given by the definition sequence of the TODO keywords in the variable =org-todo-keywords=, or in the =#+TODO= line. Use the "o" key when sorting with =C-c ^=. Thanks to James TD Smith for this patch. * Version 5.23 ** Overview - New keyword search agenda view - Many new extensions available in the CONTRIB directory - New remember template option: pre-selection contexts - Modifying list/headline status of a line - Granularity while editing time stamps - New repeaters mechanisms - New parameters for dynamic blocks ad the clock table - Limiting iCalendar export to fewer entries - =M-RET= splits lines again - New hooks ** Incompatible changes - The variable `org-time-stamp-rounding-minutes' is now a list of two values - if you have configured this variable before, please do it again. ** 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. In particular, it does not require a single regular expression or string to search for, but it can search for a number keywords or regexps that can occur in arbitrary sequence in the entry. The 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]} will search for note entries that contain the keywords =computer= and =wifi=, but not the keyword =ethernet=, and which are also not matched by the regular expression "8\.11[bg]", meaning to exclude both 8.11b and 8.11g. If the first character of the search string is an asterisk, 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. 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-text-search-extra-files nil))) *** Many new extensions available in the CONTRIB directory - Phil Jackson's /org-irc.el/ is now part of the Org-mode core, which means it will become part of Emacs soon. - 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. - There is a new variable `org-default-extensions'. Configuring this variable makes it *very* easy to load these default extensions - eventually this will be expanded to cover contributed extensions as well. *** New remember template option: pre-selection contexts - Remember template definitions now allow six elements. The last element defines the contexts in which the template should be offered. It can be a list of major modes, a function, =t= or =nil=. If it is a list of major-mode, the template will be available only when =org-remember= is called from a buffer in one of these modes. If it is a function, the template will be offered only if the function returns `t' when called in the current buffer. A value of =t= or =nil= for this element means select this template in any context. One possible application for this would be to have several templates all using the same selection letter, and choosing the right one based on context. For example, think of tasks describing a bug in a source code file. With the following configuration we make sure that the bug reports are filed into the appropriate sections of the target file. : (setq org-remember-templates : '(("Elisp" ?b "* %a\n\n%i%?" "~/bugs.org" "Elisp bugs" (emacs-lisp-mode)) : ("C Bugs" ?b "* %a\n\n%i%?" "~/bugs.org" "C bugs" (cc-mode)))) See (info "(org)Remember templates") for details. *** Modifying list/headline status of a line - `C-c -' has now more functions: + In a table, add a hline as before + In an item list, cycle bullet type as before + In a normal line, turn it into an item + In a headline, turn it into an item + If there is an active region, turn each line into an item. But if the first region line is already an item, remove item markers from all lines. Based on proposals by Bastien. - `C-c *' has now more functions + in a table, recompute, as before + in a normal line, convert it to a sub heading. + at an item, convert it into a subheading + if there is an active region, convert all lines in the region to headlines. However, if the first lie already is a heading, remove the stars from all lines int he region. Based on proposals by Bastien. *** Changes related to time stamps - The value variable =org-time-stamp-rounding-minutes= is now a list of two values. The first applies when creating a new time stamp. The second applies when modifying a timestamp with S-up/down. The default for this new task is 5 minutes, but 15 may also be a very good value for many people. If S-up/down is used on a time stamp where the minute part is not compatible with this granularity it will be made so. You can bypass this by using a prefix argument to exactly specify the number of minutes to shift. This was a proposal by Adam Spiers. - New repeaters that shift a date relative to today, or that make sure that the next date is in the future. For example: :** TODO Call Father : DEADLINE: <2008-02-10 Sun ++1w> : Marking this DONE will shift the date by at least one week, : but also by as many weeks as it takes to get this date into : the future. However, it stays on a Sunday, even if you called : and marked it done on Saturday. :** TODO Check the batteries in the smoke detectors : DEADLINE: <2005-11-01 Tue .+1m> : Marking this DONE will shift the date to one month after : today. Proposed by Wanrong Lin and Rainer Stengle. *** New parameters for dynamic blocks ad the clock table - There is a new =:link= parameter for the clocktable. When set, the headlines listed in the table will be links to the original headlines. - There is a new =:content= parameter that is passed to the writer function of the dynamic block. Use this parameter to pass the previous content of the block to the writer function, in case you want to make the outcome dependent on the previous content. *** Limiting iCalendar export to fewer entries - New way to limit iCalendar export to the entries captured in an agenda view. This is done by "writing" the agenda view using `C-x C-w' to a file with extension .ics. This was a request by Kyle Sexton. *** Misc - Due to a popular revolt shortly after the 5.22 release, =M-RET= can again be used to split a line so that 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. - There are three new hooks: =org-follow-link-hook=: runs after following a link =org-publish-before-export-hook=: runs before export =org-publish-after-export-hook=: runs after export * 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. This was triggered by requests from Wanrong Lin and Bernt Hansen. *** Other - M-RET no longer brakes a line in the middle, it will make a new line after 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 [[http://sachachua.com/wp/2007/12/30/clocking-time-with-emacs-org/][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: | Org | Description | HTML | |-----+------------------------------------+----------| | ~\\-~ | double backslash followed by minus | | | ~--~ | two dashes (minuses) | – | | ~---~ | three dashes (minuses) | — | | ~...~ | three dots | … | 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