:step
for clocktable, to get daily reports.
This is following a proposal by Piotr Zielinski.
: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.
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'.
#+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.
*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'.
Minor fixes.
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.
%^{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.
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.
(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'.
(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))
(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.
This was proposed by someone, but I have lost track who. Sorry, and thanks anyway.
%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.
(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.
There have been several small but very useful additions to the date prompt.
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.
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.
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.
(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")))
We are using a new routine for sorting entries, courtesy of John Wiegley. Many thanks to John.
There is now a <div>-based structure in exported HTML.
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.
#+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.
:PROPERTIES: :LOGGING: nologging nologrepeat :END:
turns off all progress logging for the current entry and its children.
(global-set-key [f5] (lambda () (interactive) (org-remember "j")))
Thanks to Richard G Riley for bringing this up.
:scope
parameter.
* 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.
: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:
value | scope |
---|---|
nil | the current buffer or narrowed region |
file | the full current buffer |
subtree | the subtree where the clocktable is located |
treeN | the surrounding level N tree, for example tree3 |
tree | the surrounding level 1 tree |
agenda | all 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.
14:00+2 means 14:00-16:00 2pm+2:30 means 14:00-16:30
Again, Nuutti Kotivuori's request.
#+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.
This change does not effect XEmacs, nor Emacs 21 and 22.
#+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.
#+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
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.
#+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.
(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.
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.
(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.
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.
* This is a level 1 headline *this is bold text*
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.
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).
: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'.
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.
LEVEL=3+BOSS+ASSIGNED="Hans"/WAITING
will find entries that
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\)$}
* 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.
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: c=299792458. pi=3.14 eps=2.4e-6
ARCHIVED: [2007-07-02 Mon 11:34]
Thanks to J. David Boyd for constructive comments.
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!
<2007-06-18 Mon 17:33-18:23>
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.
<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.
CLOCK: => 2:00
Thanks to Scott Jaderholm for this proposal.
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.
| | 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 | |---+-----+-----+-----+---------+------------| | / | < | < | | < | |
1This is a footnote
Thanks to Scott Jaderholm for this proposal and a detailed HTML example on how the exported text should look like.
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!
*** The nerd club meets on 2nd Thursday of every month
#+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.
#+PRIORITIES: 1 9 9
Thanks to Dmitri Minaev for a patch to this effect.
(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.
This release is about exporting agenda views, to HTML, to postscript for printing, and to a special format (CSV) for further processing in scripts.
Minor bug fixes.
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'.
I have not turned this turned this on by default, should I?
#+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.
(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.
Command | Old TTY | New TTY | |
---|---|---|---|
org-….. | Main Key | Replacement | Replacement |
shiftleft | S-left | C-c C-x left | C-c left |
shiftright | S-right | C-c C-x right | C-c right |
shiftup | S-up | C-c C-x up | C-c up |
shiftdown | S-down | C-c C-x down | C-c down |
shiftcontrolleft | C-S-left | C-c C-x left | |
shiftcontrolright | C-s-right | C-c C-x right |
This time the changes affect the following areas:
#+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.
#+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.
#+OPTION: skip:nil
(setq org-export-sub-superscript '{})
or by using
#+OPTIONS: ^:{}
Thanks to Eddward DeVilla for this idea.
Thanks to Mike Newman for triggering this development.
Relative references like @-3$-2 or @II..III continue to use the internal format.
#+OPTIONS: H:4 toc:2
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.
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.
[…]
Version 4.00
Please re-read the manual section about links.
Date: 2008/02/05 20:14:51