Next: , Previous: TODO types, Up: TODO extensions

5.2.3 Multiple keyword sets in one file

Sometimes you may want to use different sets of TODO keywords in parallel. For example, you may want to have the basic TODO/DONE, but also a workflow for bug fixing, and a separate state indicating that an item has been canceled (so it is not DONE, but also does not require action). Your setup would then look like this:

     (setq org-todo-keywords
           '((sequence "TODO" "|" "DONE")
             (sequence "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED")
             (sequence "|" "CANCELED")))

The keywords should all be different, this helps Org mode to keep track of which subsequence should be used for a given entry. In this setup, C-c C-t only operates within a subsequence, so it switches from DONE to (nothing) to TODO, and from FIXED to (nothing) to REPORT. Therefore you need a mechanism to initially select the correct sequence. Besides the obvious ways like typing a keyword or using completion, you may also apply the following commands:

C-u C-u C-c C-t
These keys jump from one TODO subset to the next. In the above example, C-u C-u C-c C-t or C-S-<right> would jump from TODO or DONE to REPORT, and any of the words in the second row to CANCELED. Note that the C-S- key binding conflict with shift-selection-mode (see Conflicts).
S-<<left>> and S-<<right>> and walk through all keywords from all sets, so for example S-<<right>> would switch from DONE to REPORT in the example above. See also Conflicts, for a discussion of the interaction with shift-selection-mode.