aboutsummaryrefslogtreecommitdiffstats
path: root/doc/misc
diff options
context:
space:
mode:
authorPaul Eggert2014-05-04 12:37:56 -0700
committerPaul Eggert2014-05-04 12:37:56 -0700
commit3e9fa60a5c99568817a12a1011b0e61cce5d3a67 (patch)
tree831a801351db662f324d0709bf1fee718eda63e9 /doc/misc
parentbbdcf64f499636ba9567e8fed8f209e06380352c (diff)
parent61febcb6e32860575316b8a539a2e9f13f70e3c2 (diff)
downloademacs-3e9fa60a5c99568817a12a1011b0e61cce5d3a67.tar.gz
emacs-3e9fa60a5c99568817a12a1011b0e61cce5d3a67.zip
Merge from emacs-24; up to 2014-05-04T21:18:30Z!eggert@cs.ucla.edu
Diffstat (limited to 'doc/misc')
-rw-r--r--doc/misc/ChangeLog12
-rw-r--r--doc/misc/autotype.texi4
-rw-r--r--doc/misc/message.texi5
-rw-r--r--doc/misc/semantic.texi2
-rw-r--r--doc/misc/todo-mode.texi841
5 files changed, 517 insertions, 347 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 318b92fbe7e..cdaa6b4fb34 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,15 @@
12014-05-04 Stephen Berman <stephen.berman@gmx.net>
2
3 * todo-mode.texi: Update, improve exposition, add cross
4 references, fix typos.
5 (Inserting New Items, Editing Item Headers and Text): Rewrite to
6 document new user interface.
7
82014-05-04 Glenn Morris <rgm@gnu.org>
9
10 * autotype.texi (Skeleton Language):
11 * message.texi (Header Commands): Replace `iff'.
12
12014-05-02 Paul Eggert <eggert@cs.ucla.edu> 132014-05-02 Paul Eggert <eggert@cs.ucla.edu>
2 14
3 * vhdl-mode.texi: Add "@documentencoding UTF-8", 15 * vhdl-mode.texi: Add "@documentencoding UTF-8",
diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi
index ae3fa0e5870..e01a6c2f5c5 100644
--- a/doc/misc/autotype.texi
+++ b/doc/misc/autotype.texi
@@ -241,10 +241,10 @@ put at these places. Point is left at first @code{_} where nothing is wrapped.
241Indent line according to major mode. When following element is @code{_}, and 241Indent line according to major mode. When following element is @code{_}, and
242there is a interregion that will be wrapped here, indent that interregion. 242there is a interregion that will be wrapped here, indent that interregion.
243@item @code{&} 243@item @code{&}
244Logical and. Iff preceding element moved point, i.e., usually inserted 244Logical and. If preceding element moved point, i.e., usually inserted
245something, do following element. 245something, do following element.
246@item @code{|} 246@item @code{|}
247Logical xor. Iff preceding element didn't move point, i.e., usually inserted 247Logical xor. If preceding element didn't move point, i.e., usually inserted
248nothing, do following element. 248nothing, do following element.
249@item @code{-@var{number}} 249@item @code{-@var{number}}
250Delete preceding number characters. Depends on value of 250Delete preceding number characters. Depends on value of
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 6d5a00ba819..14ba46c70f5 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -748,9 +748,8 @@ by the @code{message-cross-post-note-function} variable.
748@item C-c C-f t 748@item C-c C-f t
749@kindex C-c C-f t 749@kindex C-c C-f t
750@findex message-reduce-to-to-cc 750@findex message-reduce-to-to-cc
751Replace contents of @samp{To} header with contents of @samp{Cc} or 751Replace contents of @samp{To} header with contents of @samp{Cc}
752@samp{Bcc} header. (Iff @samp{Cc} header is not present, @samp{Bcc} 752header (or the @samp{Bcc} header, if there is no @samp{Cc} header).
753header will be used instead.)
754 753
755@item C-c C-f w 754@item C-c C-f w
756@kindex C-c C-f w 755@kindex C-c C-f w
diff --git a/doc/misc/semantic.texi b/doc/misc/semantic.texi
index f9ccd034fe6..b72fb3c88cf 100644
--- a/doc/misc/semantic.texi
+++ b/doc/misc/semantic.texi
@@ -611,7 +611,7 @@ Emacs Lisp. It is an LALR parser suitable for complex languages.
611@c LocalWords: deffn deffnx defun defvar destructor's dfn diff dir 611@c LocalWords: deffn deffnx defun defvar destructor's dfn diff dir
612@c LocalWords: doc docstring EDE EIEIO elisp emacsman emph enum 612@c LocalWords: doc docstring EDE EIEIO elisp emacsman emph enum
613@c LocalWords: eq Exp EXPANDFULL expression fn foo func funcall 613@c LocalWords: eq Exp EXPANDFULL expression fn foo func funcall
614@c LocalWords: ia ids iff ifinfo imenu imenus init int isearch itemx java kbd 614@c LocalWords: ia ids ifinfo imenu imenus init int isearch itemx java kbd
615@c LocalWords: keymap keywordtable lang languagemode lexer lexing Ludlam 615@c LocalWords: keymap keywordtable lang languagemode lexer lexing Ludlam
616@c LocalWords: menubar metaparent metaparents min minibuffer Misc mode's 616@c LocalWords: menubar metaparent metaparents min minibuffer Misc mode's
617@c LocalWords: multitable NAvigaTOR noindent nomedian nonterm noselect 617@c LocalWords: multitable NAvigaTOR noindent nomedian nonterm noselect
diff --git a/doc/misc/todo-mode.texi b/doc/misc/todo-mode.texi
index 5a903f7dee4..3ff205865ae 100644
--- a/doc/misc/todo-mode.texi
+++ b/doc/misc/todo-mode.texi
@@ -188,13 +188,15 @@ diary, date and time stamps, whether it is done or still to do.
188@node Todo Items as Diary Entries, , Levels of Organization, Overview 188@node Todo Items as Diary Entries, , Levels of Organization, Overview
189@section Todo Items as Diary Entries 189@section Todo Items as Diary Entries
190 190
191Each todo item is also a potential diary item: if you include a todo 191You can have todo items show up in the Emacs Fancy Diary display by
192file in the Emacs diary file (@pxref{Fancy Diary Display,,, emacs}), the 192including the todo file in your diary file (@pxref{Fancy Diary
193Fancy Diary display will show those todo items that are not marked with 193Display,,, emacs}). This effectively augments the Emacs diary with
194@code{todo-nondiary-marker}. This effectively augments the Emacs diary 194categorized diary entries. All items in an included todo file will
195with categorized diary entries. For the various options available for 195appear in the Fancy Diary display except for those that are marked
196making a todo item a diary entry, see @ref{Inserting New Items} and 196with @code{todo-nondiary-marker}. You can add or omit this marking
197@ref{Editing Item Headers and Text}. 197upon creating a new todo item, or you can do so by editing an existing
198item, see @ref{Inserting New Items} and @ref{Editing Item Headers and
199Text} for details.
198 200
199To ensure the proper display of todo items in the Fancy Diary display, 201To ensure the proper display of todo items in the Fancy Diary display,
200they must have the format of diary entries, i.e., they have to begin 202they must have the format of diary entries, i.e., they have to begin
@@ -245,20 +247,16 @@ default todo file.
245 247
246If you want to enter Todo mode and go directly to a specific category 248If you want to enter Todo mode and go directly to a specific category
247instead the first or current category in the current or default todo 249instead the first or current category in the current or default todo
248file, use the command @code{todo-jump-to-category}; @ref{Navigation}, for 250file, use the command @code{todo-jump-to-category}; @ref{Navigation},
249details. You can also enter Todo mode by invoking a todo item insertion 251for details. You can also enter Todo mode by invoking the command
250command; @ref{Inserting New Items}, for details. 252@code{todo-insert-item}; @ref{Inserting New Items}, for details.
251 253
252The most convenient way to use these commands to enter Todo mode is to 254The most convenient way to use these commands to enter Todo mode is to
253define global key bindings for them in your init file. Good choices are 255define global key bindings for them in your init file. Good choices
254for @code{todo-show} and @code{todo-jump-to-category} are @kbd{C-c t} 256are @kbd{C-c t} for @code{todo-show}, @kbd{C-c j} for
255and @kbd{C-c j}, since these commands are bound to @kbd{t} and @kbd{j}, 257@code{todo-jump-to-category} and @kbd{C-c i} for
256respectively, in Todo mode. For invoking item insertion from outside of 258@code{todo-insert-item}, since these commands are bound to @kbd{t},
257Todo mode, it is useful to bind @code{todo-insertion-map}, which is the 259@kbd{j} and @kbd{i}, respectively, in Todo mode.
258key map containing the bindings of all Todo item insertion commands, to
259@kbd{C-c i}, since it is bound to @kbd{i} in Todo mode; to complete the
260invocation, supply the rest of the key sequence (@pxref{Inserting New
261Items}).
262 260
263You can also visit a Todo file via @code{find-file} or Dired, like any 261You can also visit a Todo file via @code{find-file} or Dired, like any
264other file, and since Emacs recognizes it, the buffer will automatically 262other file, and since Emacs recognizes it, the buffer will automatically
@@ -297,12 +295,12 @@ for the shift key for capitalization and the raw prefix argument
297number key. 295number key.
298 296
299The predefined key bindings in Todo are more or less mnemonic. As a 297The predefined key bindings in Todo are more or less mnemonic. As a
300rule, key sequences beginning with @kbd{C} are bound to commands 298rule, key sequences beginning with @kbd{C} (capital `C', not the
301applying to categories, sequences beginning with @kbd{F} apply to 299control key) are bound to commands applying to categories, sequences
302(non-archive) file-level commands, and those beginning with @kbd{A} 300beginning with @kbd{F} apply to (non-archive) file-level commands, and
303apply to archives (a special type of Todo file; @ref{Todo Archive 301those beginning with @kbd{A} apply to archives (a special type of Todo
304Mode}). Todo commands applying to items, which constitute the majority, 302file; @ref{Todo Archive Mode}). Todo commands applying to items,
305are bound to lower case key sequences. 303which constitute the majority, are bound to lower case key sequences.
306 304
307@node Navigation, Editing, Key Binding Conventions, Top 305@node Navigation, Editing, Key Binding Conventions, Top
308@chapter Navigation 306@chapter Navigation
@@ -315,8 +313,8 @@ commands are likely to be used frequently and repetitively, it is
315convenient for their key bindings to be single lower case keys, even for 313convenient for their key bindings to be single lower case keys, even for
316navigation commands applying to categories and files. 314navigation commands applying to categories and files.
317 315
318Two of the navigation commands were already mentioned in the section on 316Two of the navigation commands were already mentioned in @ref{Todo
319Todo mode entry points: 317Mode Entry Points}:
320 318
321@table @kbd 319@table @kbd
322 320
@@ -397,11 +395,17 @@ sections below.
397 395
398Editing in Todo mode means making structural or textual changes at one 396Editing in Todo mode means making structural or textual changes at one
399of the levels of organization (file, category, or item). Structural 397of the levels of organization (file, category, or item). Structural
400editing includes adding, relocating and removing, textual editing includes 398editing includes adding, relocating and removing units of information
401renaming files or categories and changing an item's content or date, or 399at a level; textual editing includes renaming files or categories and
402adding certain kinds of marks or tags to items. To save changes you 400changing an item's content or date/time stamp, or adding certain kinds
403make to the current todo file, type @kbd{s} (@code{todo-save}). Changes 401of marks or tags to items. Todo mode provides commands, detailed in
404are also saved on quitting Todo mode with @kbd{q}. 402the following sections, which enable you to quickly and safely make
403changes to your todo lists, without having to worry about preserving
404the file format.
405
406To save changes you make to the current todo file,
407type @kbd{s} (@code{todo-save}). Changes are also saved on quitting
408Todo mode with @kbd{q}.
405 409
406@menu 410@menu
407* File Editing:: 411* File Editing::
@@ -417,12 +421,12 @@ There are four file-level editing commands:
417@table @kbd 421@table @kbd
418 422
419@item F a 423@item F a
420Add a new todo file (@code{todo-add-file}). This command prompts for a 424Add a new todo file (@code{todo-add-file}). This command prompts for
421name and creates the file in @code{todo-directory}, adding the 425a name and creates the file in @code{todo-directory}, adding the
422@samp{.todo} extension (so you should not include the extension in the 426@samp{.todo} extension (so you should not include the extension in the
423name you enter). The command also prompts for the file's first category and, if 427name you enter). The command also prompts for the file's first
424option @code{todo-add-item-if-new-category} is enabled (the default), 428category and, if option @code{todo-add-item-if-new-category} is
425for that category's first item. 429enabled (the default), for that category's first item.
426 430
427@item F r 431@item F r
428Rename the current todo file (@code{todo-rename-file}). If called with 432Rename the current todo file (@code{todo-rename-file}). If called with
@@ -430,15 +434,15 @@ a prefix argument, prompt for a todo file and rename it. If the todo
430file has an archive (@pxref{Todo Archive Mode}) or there are 434file has an archive (@pxref{Todo Archive Mode}) or there are
431corresponding filtered items files (@pxref{Todo Filtered Items Mode}), 435corresponding filtered items files (@pxref{Todo Filtered Items Mode}),
432this command renames these accordingly. If there are live buffers 436this command renames these accordingly. If there are live buffers
433visiting any of these files, the command also rename them accordingly. 437visiting any of these files, the command also renames them accordingly.
434 438
435@item F k 439@item F k
436Delete the current todo file (@code{todo-delete-file}).@footnote{The key 440Delete the current todo file (@code{todo-delete-file}).@footnote{The key
437binding of this command is mnemonic for ``kill'' to parallel the binding 441binding of this command is mnemonic for ``kill'' to parallel the binding
438@kbd{k} for item deletion, since @kbd{d} is bound to another item 442@kbd{k} for item deletion, since @kbd{d} is bound to another item
439editing command (@pxref{Done Items}).} If the todo file has an archive 443editing command (@pxref{Done Items}).} If the todo file has an archive
440(@pxref{Todo Archive Mode}), prompt whether to delete that as well. 444(@pxref{Todo Archive Mode}), prompt for whether to delete that as well.
441This command also kill the buffers visiting the deleted files. 445This command also kills the buffers visiting the deleted files.
442 446
443@item F e 447@item F e
444This command (@code{todo-edit-file}) changes the buffer's major mode to 448This command (@code{todo-edit-file}) changes the buffer's major mode to
@@ -458,20 +462,21 @@ text that occurs in different categories throughout the file. The other
458use case is to recover from a mistake, such as accidentally deleting an 462use case is to recover from a mistake, such as accidentally deleting an
459item, since this cannot be undone in Todo mode. 463item, since this cannot be undone in Todo mode.
460 464
461Using @kbd{C-x C-q} to quit Todo Edit mode provides a measure of safety, 465Using @kbd{C-x C-q} to quit Todo Edit mode provides a measure of
462since it runs a file format check, signaling an error if the format has 466safety, since it runs a file format check, signaling an error if the
463become invalid. However, this check cannot tell if the number of items 467format has become invalid. However, this check cannot tell if the
464changed, which could result in the file containing inconsistent 468number of items or categories changed, which could result in the file
465information (see the cautionary note in @ref{Reordering Categories}, for 469containing inconsistent information (see the cautionary note in
466more details). For this reason @kbd{F e} should be used with caution. 470@ref{Reordering Categories}, for more details). Invoking @kbd{F e}
471displays a warning to this effect.
467@end table 472@end table
468 473
469@node Category Editing, Item Editing, File Editing, Editing 474@node Category Editing, Item Editing, File Editing, Editing
470@section Category Editing 475@section Category Editing
471 476
472The following commands are available for editing at the category level 477The following commands are available for editing specifically at the
473(for additional category-editing commands, which are extensions of item 478category level (for two other category-editing commands, which are
474commands, @pxref{Editing Item Headers and Text}): 479extensions of item commands, @pxref{Editing Item Headers and Text}):
475 480
476@table @kbd 481@table @kbd
477 482
@@ -519,8 +524,10 @@ category in that file.
519@node Item Editing, , Category Editing, Editing 524@node Item Editing, , Category Editing, Editing
520@section Item Editing 525@section Item Editing
521 526
522Todo mode provides a wide variety of commands for adding and textually 527Todo mode provides commands for adding new items as well as textually
523changing items, as well as for deleting and relocating items. 528changing, deleting and relocating existing items. The commands and
529associated options for adding and editing items, in particular, offer
530you a lot of flexibility to fine-tune these operations to your needs.
524 531
525@menu 532@menu
526* Inserting New Items:: 533* Inserting New Items::
@@ -531,282 +538,388 @@ changing items, as well as for deleting and relocating items.
531@node Inserting New Items, Editing Item Headers and Text, , Item Editing 538@node Inserting New Items, Editing Item Headers and Text, , Item Editing
532@subsection Inserting New Items 539@subsection Inserting New Items
533 540
534There are many commands for adding new todo items. The command names 541To add a new todo item to a category, type @kbd{i}, which is bound to
535contain the word ``insert'' instead of ``add'' and their key bindings are 542the command @code{todo-insert-item}.
536sequences beginning with @kbd{i}. The motivation for this terminology is
537that speaking of adding an item to a category suggests appending it to
538the top or bottom, whereas you can insert an item into the category
539anywhere, giving each new item any priority in the list.
540 543
541@table @kbd 544@table @kbd
542 545
543@item i i 546@item i
544This is the basic command for inserting new items into a category 547This command is the entry point for inserting new items into a
545(@code{todo-insert-item}). Called without a prefix argument, it prompts 548category (@code{todo-insert-item}). It prompts for additional keys
546for the text of the item and its priority (a number between 1 and one 549until reaching a complete key sequence, which specifies the insertion
547more than the number of items already in the category), both of which 550parameters you wish to apply (see below). It then prompts for the
548you enter in the minibuffer, and inserts the item into the current 551text of the item, which you enter in the minibuffer.@footnote{There
549category of the current todo file at the position in the list 552are two insertion parameters that override prompting for and manually
550corresponding to the priority you chose. Called with one prefix 553entering the new item's text, see below.} Called with one prefix
551argument, it also prompts for a category, and called with two prefix 554argument, it also prompts for a category, and called with two prefix
552arguments, it prompts for both a file and a category from that file, and 555arguments, it prompts for both a file and a category from that file,
553inserts the item accordingly. Category name completion works as with 556and inserts the item accordingly; category name completion works as
554the navigation command @kbd{j}. 557with the navigation command @kbd{j}. Finally, it inserts the item
558into the current or selected category of the current or selected todo
559file at the position in the list corresponding to the priority you
560choose, which also depends on the insertion parameters.
555@end table 561@end table
556 562
557Each invocation of @kbd{i i} adds a header string to the item, which 563@noindent
564The name of this command reflects the fact that you can insert a new
565item into the category at any position, giving each new item any
566priority in the list, whereas speaking of adding an item to a category
567suggests appending it to the top or bottom.
568
569In addition to its file and category, each newly inserted todo item
570has a priority in the category and begins with a header string, which
558includes at least the current date in the same format used by 571includes at least the current date in the same format used by
559@code{diary-insert-entry} (@pxref{Date Formats,,, emacs}). You can 572@code{diary-insert-entry} (@pxref{Date Formats,,, emacs}). You can
560control what other information is included in the header by customizing 573specify the priority and the content of the header string in two ways.
561the following options: 574First, you can set the following item insertion options, which apply
575on every invocation of @code{todo-insert-item}.
562 576
563@itemize @bullet 577@itemize @bullet
564 578
565@item 579@item
580@code{todo-default-priority} is for automatically assigning a new item
581the highest or lowest priority in the category, if you do not
582explicitly assign it a priority on invoking @code{todo-insert-item}.
583By default, such new items are given highest priority, i.e., inserted
584at the top of the list.
585
586@item
566@code{todo-always-add-time-string} is for including or omitting the 587@code{todo-always-add-time-string} is for including or omitting the
567current time. The time string is omitted by default. 588current time in the new item's header. By default, this time string
589is omitted.
568 590
569@item 591@item
570@code{todo-include-in-diary} is for specifying whether the item appears 592@code{todo-include-in-diary} is for specifying whether the item
571in the Fancy Diary display by adding or omitting 593appears in the Fancy Diary display (when the todo file is included in
572@code{todo-nondiary-marker}. By default, new todo items are marked for 594the Emacs diary file) by adding or omitting
573exclusion from the diary. 595@code{todo-nondiary-marker}. By default, new todo items are so
596marked, thus excluded from the diary.
574 597
575@item 598@item
576@code{todo-diary-nonmarking} is for adding or omitting 599@code{todo-diary-nonmarking} is for adding or omitting
577@code{diary-nonmarking-symbol} to items displayed in the diary, to 600@code{diary-nonmarking-symbol} to items displayed in the diary, to
578control whether they are marked in the calendar (@pxref{Format of Diary 601control whether they are marked in the calendar (@pxref{Format of
579File,,, emacs}). By default, todo items that are diary entries are 602Diary File,,, emacs}). By default, todo items that are diary entries
580marked in the calendar. 603lack this symbol, thus are marked in the calendar.
581@end itemize 604@end itemize
582 605
583Instead of always adding the same header information to a new item, you 606Beside setting these options, for more flexibility you can also pass
584can use more specific insertion commands that let you decide what to 607certain parameters on each invocation of @code{todo-insert-item}.
585include in the item header each time you insert a new item. And instead 608These parameters concern not only the new item's priority and header,
586of always being prompted to choose the new item's priority, you can 609but also its textual content. You pass these parameters by typing a
587invoke a command to insert it at the position (hence with the priority) 610sequence of one or more keys after the initial @kbd{i}.
588of the item at point. Finally, instead of always typing the text of the 611
589new item in the minibuffer, you can invoke a command that makes the 612Here is a list of the item insertion parameters together with their
590selected region in an Emacs buffer automatically become the new item's 613mnemonically associated keys@footnote{The non-mnemonic choice of
591text. The following paragraphs discuss how to invoke these commands by 614@kbd{i} for the parameter @samp{default} is motivated by the
592typing certain key sequences. 615convenience of repeating the @kbd{i} used to invoke
593 616@code{todo-insert-item}.} and descriptions of their effect in
594There are eight parameters of item insertion in Todo mode, six 617@code{todo-insert-item}:
595concerning the item header, and one each concerning its priority and its
596text. Each unique combination of these parameters produces a different
597insertion command. The command @kbd{i i} realizes one of these
598combinations. For the commands that realize the remaining combinations
599it is convenient to associate each parameter with a mnemonically chosen
600key. Then by typing certain sequences of these keys, you complete the
601insertion command invocation that realizes the specified combination.
602As with @kbd{i i}, the effect of many of these commands also depends on
603the values of the item insertion options mentioned above (see the
604examples below).
605
606Here is a list of the parameters and their associated keys, in the order
607in which you must type them when building a key sequence (this order
608roughly reflects the order in which the corresponding parts of the item
609occur in a category listing):
610 618
611@enumerate 619@enumerate
612 620
613@item 621@item
614@kbd{y} for diary (non)inclusion; 622@samp{default} (@kbd{i}): Prompt for the new item's priority
623(a number between 1 and one more than the number of items already in
624the category) and add a header string conforming to the values of the
625above options.
626
627@samp{copy} (@kbd{p}): Make an exact copy of the item at point,
628including its header string, and prompt for its priority. (This is
629useful for quickly making a new todo item whose text or header you
630want to differ only partly from that of an existing item: after
631inserting the copy, you can quickly edit it as needed by using
632operations described in the next section.)
633
615@item 634@item
616@kbd{k} for adding or omitting `diary-nonmarking-symbol'; 635@samp{diary} (@kbd{y}): Override the option
636@code{todo-include-in-diary}; that is, add @code{todo-nondiary-marker}
637if the option is non-nil, omit this marker if the option is nil.
638
639@samp{nonmarking} (@kbd{k}): Override the option
640@code{todo-diary-nonmarking}; that is, add
641@code{diary-nonmarking-symbol} if the option is non-nil, omit this
642symbol if the option is nil. Since this symbol only applies to diary
643items, the new item is automatically marked as such, i.e., lacks
644@code{todo-nondiary-marker}.
645
617@item 646@item
618@kbd{c} for adding the date header by clicking a date in the Emacs 647@samp{calendar} (@kbd{c}): Pop up the Emacs calendar and click a date
619calendar, or@* 648in it to use that date in the new todo item's header.
620@kbd{d} for interactively entering the date header as a string of year, 649
621month and day number components in the minibuffer, or@* 650@samp{date} (@kbd{d}): Prompt for entering in the minibuffer
622@kbd{n} for interactively entering the date header as a weekday name in 651the year, month (with completion) and day number components of the
623the minibuffer; 652header.
653
654@samp{dayname} (@kbd{n}): Prompt for entering in the minibuffer
655a weekday name as the date header instead of a year-month-day string.
656
624@item 657@item
625@kbd{t} for adding a time string to the header in the minibuffer 658@samp{time} (@kbd{t}): Prompt for entering a time string in
626(including the empty string, which amounts to omitting the time); 659the minibuffer instead of automatically inserting the current time;
660however, typing @key{RET} at the prompt enters the current time if
661@code{todo-always-add-time-string} is non-nil, otherwise it enters the
662empty string (i.e., no time string).
663
627@item 664@item
628@kbd{h} for inserting the new item in the position of the item at point 665@samp{here} (@kbd{h}): Insert the new item in the position of
629(``here''), or@* 666the item at point, pushing that and all lower items in the category
630@kbd{r} to use the text of the selected region as the item's text. 667down, i.e., lowering their priority, by one.
668
669@samp{region} (@kbd{r}): Use the text of the selected region as the
670text of the new item, and insert this in accordance with the item
671insertion options and other parameters passed. If the option
672`todo-use-only-highlighted-region' is non-nil, then use the region
673only when it is highlighted; otherwise, use the region regardless of
674highlighting.
631@end enumerate 675@end enumerate
632 676
633Each insertion command key sequence begins (disregarding prefix 677Note that the parameters are divided into five numbered groups; within
634arguments) with @kbd{i}, followed by one or more of these eight keys, in 678a group, the parameters are mutually exclusive. Hence, to build a
635the order listed. But as you can see in the above table, since some of 679complete insertion operation, you select at most one parameter from at
636the insertion parameters are mutually exclusive, they occupy only five 680least one of these groups, by typing the corresponding key. If you
637positions, so the complete (unprefixed) sequences are maximally six keys 681want to apply more than one parameter, you must type the corresponding
638long. Shorter sequences are also possible, since a parameter may be 682keys in the order of the numbered groups, subject to the following
639omitted. But since the order in any key sequence is fixed, if the last 683constraints.
640key in the sequence could be followed by another insertion key, i.e., if 684
641the last key is not @kbd{h} or @kbd{r}, it has to be doubled to complete 685The keys of groups 2-4 are continuation keys, that is, each can be
642the sequence, otherwise it would be interpreted as a prefix sequence 686followed by a key from a following group. If you want to finish the
643(this is why the binding for the basic item insertion command is @kbd{i 687sequence with a continuation key, you must double the final key. For
644i} and not @kbd{i}). 688example, @kbd{i y} is not a complete key sequence; rather, you must
645 689type @kbd{i y y}.
646Here are some examples of item insertion command key sequences: 690
691By contrast, the keys of groups 1 and 5 are final keys; for example,
692@kbd{i i} and @kbd{i h} are complete sequences. The reason for making
693two separate groups of the final keys is that the parameters
694@samp{default} and @samp{copy} cannot be combined with any other
695parameters, while @samp{here} and @samp{region} can be combined with
696any of the parameters from groups 2-4.
697
698To aid you in building item insertion key sequences, when you type an
699insertion key, this displays a prompt in the echo area showing pairs
700of the remaining possible keys and their associated parameters,
701grouped and ordered in accordance with the above list. The initial
702prompt, after typing @kbd{i} to invoke @code{todo-insert-item}, looks
703like this:
704
705@example
706Press a key (so far `i'): @{ i=>default p=>copy @} @{ y=>diary k=>nonmarking @} @{ c=>calendar d=>date n=>dayname @} t=>time @{ h=>here r=>region @}
707@end example
708
709@noindent If you now type @kbd{y}, the prompt changes to this:
710
711@example
712Press a key (so far `i y'): y=>diary:GO! @{ c=>calendar d=>date n=>dayname @} t=>time @{ h=>here r=>region @}
713@end example
714
715@noindent Notice that the pair @samp{k=>nonmarking} is now absent, since it
716belongs to the same group as the selected pair @samp{y=>diary}, hence
717is no longer available for this sequence. Since @kbd{y} is a
718continuation key, it is still available, but now the string ":GO!" is
719appended to the pair to remind you that pressing this key again will
720complete the sequence.
721
722
723
724@c Here are some examples of item insertion command key sequences:
725
726@c @itemize @bullet
727
728@c @item
729@c @kbd{i h} inserts a new item at the position of the item at point (pushing
730@c the latter down) with a header containing the current date and,
731@c depending on the values of the mentioned options, possibly the current
732@c time and diary-related markings.
733@c @item
734@c @kbd{i y h} does the same as the preceding command, except that
735@c @code{todo-nondiary-marker} is added if @code{todo-include-in-diary} is
736@c non-nil and omitted if that option is nil; that is, the diary key @kbd{y}
737@c overrides the setting of this option.
738@c @item
739@c @kbd{i y t h} does the same as the preceding command, except that it
740@c prompts for a time string instead of automatically inserting the
741@c current time; however, typing @key{RET} at the prompt returns the
742@c current time if @code{todo-always-add-time-string} is non-nil, otherwise
743@c the empty string (i.e., no time string).
744@c @item
745@c @kbd{i y t t} does the same as the preceding command, except that it
746@c prompts for the item's priority and inserts it accordingly.
747@c @end itemize
748
749
750An alternative to the key sequence @kbd{i c c} for choosing the item's
751date from the calendar is also available: when point is already on a
752date in the calendar, typing @kbd{i t}
753(@code{todo-insert-item-from-calendar}) prompts for a new item and its
754priority and inserts it in the current category. This command, like
755@code{todo-insert-item}, also accepts one or two prefix arguments for
756choosing the category via minibuffer completion. Note, however, that
757the key sequence @kbd{i t} is not defined in Todo mode but in the
758Calendar mode keymap. It is a convenient shortcut if you happen to be
759using the calendar when you decide to make a new todo item. (Contrast
760this with passing the @samp{calendar} parameter, which pops open the
761calendar after you have entered the item's text, and then you can
762choose a date from the calendar.)
647 763
648@itemize @bullet
649 764
650@item 765@node Editing Item Headers and Text, Relocating and Removing Items, Inserting New Items, Item Editing
651@kbd{i h} inserts a new item at the position of the item at point (pushing 766@subsection Editing Item Headers and Text
652the latter down) with a header containing the current date and,
653depending on the values of the mentioned options, possibly the current
654time and diary-related markings.
655@item
656@kbd{i y h} does the same as the preceding command, except that
657@code{todo-nondiary-marker} is added if @code{todo-include-in-diary} is
658non-nil and omitted if that option is nil; that is, the diary key @kbd{y}
659overrides the setting of this option.
660@item
661@kbd{i y t h} does the same as the preceding command, except that it
662prompts for a time string instead of automatically inserting the
663current time; however, typing @key{RET} at the prompt returns the
664current time if @code{todo-always-add-time-string} is non-nil, otherwise
665the empty string (i.e., no time string).
666@item
667@kbd{i y t t} does the same as the preceding command, except that it
668prompts for the item's priority and inserts it accordingly.
669@end itemize
670 767
671Note that the commands whose key sequences include @kbd{y}, @kbd{k} or @kbd{t} 768To make changes to an existing item's content or header, type @kbd{e},
672reverse the effect of the options @code{todo-include-in-diary}, 769which is bound to the command @code{todo-edit-item}.
673@code{todo-diary-nonmarking} and @code{todo-always-add-time-string},
674respectively, thus temporarily overriding their values.
675
676The names of the item insertion commands correspond to their key
677bindings, e.g., @kbd{i h} is bound to @code{todo-insert-item-here}, @kbd{i y h} to
678@code{todo-insert-item-diary-here}, etc. But since there are so many
679combinations, instead of trying to memorize either the names or the key
680sequences, you can, as usual, just type an initial part of a key
681sequence (minimally @kbd{i}), followed by @kbd{C-h} to see the valid
682completions.
683
684An alternative to using the key @kbd{c} for choosing the item's date
685from the calendar is also available: if point is on a date in the
686calendar, typing @kbd{i t} (@code{todo-insert-item-from-calendar}) will
687prompt for a new item and its priority and insert it in the current
688category. Like @kbd{i i} and the other item insertion commands, this
689also accepts one or two prefix arguments for choosing the category via
690minibuffer completion. Note, however, that the key sequence @kbd{i t}
691is not defined in Todo mode but in the Calendar mode keymap. It is a
692convenient shortcut if you happen to be using the calendar when you
693decide to make a new todo item. (Contrast this with a command like
694@kbd{i c c}, which pops open the calendar after you have entered the
695item's text, and then you can choose a date from the calendar.)
696
697There is one more item insertion command, which does not derive from the
698item insertion parameters:
699 770
700@table @kbd 771@table @kbd
701 772
702@item i p 773@item e
703This command (@code{todo-copy-item}) makes a complete copy of the item 774This command is the entry point for textually editing existing items
704at point, including its header, prompts for its priority in the current 775in a category (@code{todo-edit-item}). It prompts for additional keys
705category and inserts it accordingly. 776until reaching a complete key sequence, which specifies the editing
777parameters you wish to apply (see below), and then executes the
778editing operation accordingly.
706@end table 779@end table
707 780
708@noindent 781Here is a list of the item editing parameters together with their
709This command is useful for quickly adding a todo item whose text or 782mnemonically associated keys and descriptions of their effect in
710header you want to differ only partly from that of an existing item: 783@code{todo-edit-item}. The list is divided into three groups, for
711after inserting the copy, you can quickly edit it as needed by using 784reasons explained below.
712commands described in the next section.
713 785
714@node Editing Item Headers and Text, Relocating and Removing Items, Inserting New Items, Item Editing 786@enumerate 1
715@subsection Editing Item Headers and Text
716
717There are a number of commands for editing an existing item's text or
718header; these commands are bound to key sequences with @kbd{e}.
719 787
720There are two commands for editing an item's text (and manually editing 788@item
721its header), one appropriate for short items and simple edits and one 789@samp{edit} (@kbd{e}): Edit the text of the current item in the
722better suited for more complex changes or for editing lengthy items: 790minibuffer; the item's header is omitted.
723 791
724@table @kbd 792@samp{header} (@kbd{h}): Edit the text and header of the current item
793in the minibuffer.
725 794
726@item e e 795@samp{multiline} (@kbd{m}): Edit the text of the current item in a
727Edit the text of the current item in the minibuffer 796special buffer in Todo Edit mode. After editing, type @kbd{C-x C-q}
728(@code{todo-edit-item}). If called with a prefix argument (@kbd{C-u e 797to return to Todo mode.@footnote{This runs a format check to ensure
729e}), the item's header is also included in the minibuffer and so can be 798the item is well-formed. However, unlike the command @kbd{F e}
730edited manually.
731
732@item e m
733Edit the text of the current item in a special buffer in Todo Edit mode
734(@code{todo-edit-multiline-item}). When you have finished editing, type
735@kbd{C-x C-q} to return to Todo mode; this runs a format check to ensure
736the item is well-formed.@footnote{Unlike the command @kbd{F e}
737(@pxref{File Editing}), @kbd{e m} does not expose you to the risk of 799(@pxref{File Editing}), @kbd{e m} does not expose you to the risk of
738putting the file in an inconsistent state, since it puts only the 800putting the file in an inconsistent state, since it puts only the
739current item in Todo Edit mode.} 801current item in Todo Edit mode.}
740@end table
741 802
742A number of commands are available for interactively editing all or part 803@samp{diary} (@kbd{y}): Change the current item's diary inclusion
743of the item header, permitting quick edits and helping avoid formatting 804status by adding @code{todo-nondiary-marker} if the item lacks this,
744errors. 805or by removing it if present.
745 806
746The following three commands are for editing any or all of the year, 807@samp{nonmarking} (@kbd{k}): Change the current item's calendar
747month and day components of a date header: 808marking status by adding @code{diary-nonmarking-symbol} if the item
809lacks this, or by removing it if present. Since this symbol only
810applies to diary items, the item is automatically marked as such,
811i.e., if @code{todo-nondiary-marker} is present, it is removed.
748 812
749@table @kbd 813@samp{date} (@kbd{d}): Prompt for a final key from the second group
814of item editing parameters to edit the current item's date string.
815
816@samp{time} (@kbd{t}): Edit the current item's time string, if
817present; otherwise, add one. Typing @key{RET} at the prompt enters
818the current time if @code{todo-always-add-time-string} is non-nil,
819otherwise it enters the empty string (i.e., no time string).
820@end enumerate
750 821
751@item e d t 822@noindent
752Successively prompt for changes to the date's year, month and 823Editing the text of a lengthy item in the minibuffer can be
753day number, and if the option @code{todo-always-add-time-string} is 824inconvenient; therefore, if you type `e e' or `e h' on an item whose
754non-nil, also for editing the time string (see also @kbd{e t} below). 825text contains more than one logical line, the effect is the same as if
826you had typed `e m', that is, you switch a special buffer in Todo Edit
827mode.
755 828
756@item e d a 829When you pass any of the parameters of the preceding group, except for
757Change the date to today's date. 830the @samp{date} parameter, this completes the item editing invocation
831begun by typing @kbd{e}. Pressing @kbd{d} to pass the @samp{date}
832parameter, however, prompts you with the following parameters and
833their associated keys, and pressing any of these completes the
834invocation.
758 835
759@item e d c 836@enumerate 2
760This command pops up the Emacs calendar, and after you type @key{RET} on 837
761a date in the calendar makes that date the item's date. 838@item
762@end table 839@samp{full} (@kbd{f}): Successively prompt for editing the year, month
840(with completion) and day number parts of the current item's date
841string, and, if the option @code{todo-always-add-time-string} is
842non-nil, also for editing its time string.
843
844@samp{calendar} (@kbd{c}): This pops up the Emacs calendar, and after
845you type @key{RET} on a date in the calendar makes that date the
846item's date.
847
848@samp{today} (@kbd{a}): Make the item's date today's date.
849
850@samp{dayname} (@kbd{n}): Prompt for a weekday name (with completion)
851and make it the item's date header. Note that this replaces an
852existing date string, it does not add the day name to the date string.
853
854@samp{year} (@kbd{y}): Edit just the year component of the current
855item's date string.
856
857@samp{month} (@kbd{m}): Edit just the month component of the current
858item's date string (with completion).
859
860@samp{daynum} (@kbd{d}): Edit just the day number component of the
861current item's date string.
862@end enumerate
763 863
764@noindent 864@noindent
765You can also use these commands on items whose date header consists of a 865With the latter three parameters you can add a positive or negative
766weekday name, which then changes to a header with year, month and day 866numeric prefix argument to the invocation: this increments or
767components. 867decrements the selected date component by the given number and
868automatically adjusts the other date components if necessary. For
869example, if the item's date string is ``January 1, 2013'', then typing
870@kbd{- 3 e d d} results in ``December 29, 2012''.
871
872The first two groups of parameters apply only to todo items that are
873not marked as done (@pxref{Done Items}); the two parameters of the
874third group, in contrast, apply only to done todo items. You cannot
875edit the text of such items, but you can edit or delete the comment
876you may have added on marking the item as done (@pxref{Done Items,
877@code{todo-item-done}},), or retroactively add a comment, by passing
878either of these parameters.
879
880@enumerate 3
768 881
769Each of the following three commands, in contrast to the preceding 882@item
770three, changes only a single date component and has no effect on a date 883@samp{add/edit comment} (@kbd{c}): Edit the current done item's
771header consisting of a weekday name: 884comment, if it has one; otherwise, prompt for and add a comment.
772 885
773@table @kbd 886@samp{delete comment} (@kbd{d}): Delete the current done item's
774@item e d y 887comment, if it has one.
775@itemx e d m 888@end enumerate
776@itemx e d d
777Prompt for changing just the year, month or day number, respectively; if
778invoked with a positive or negative numeric prefix argument, directly
779increment or decrement the date component accordingly and automatically
780adjust the other date component if necessary. For example, if the date
781string is ``January 1, 2013'', typing @kbd{- 3 e d d} results in
782``December 29, 2012''.
783@end table
784 889
785@table @kbd 890The command @code{todo-edit-item} is sensitive to the distinction
786@item e d n 891between not done and done todo items. If you type @kbd{e} when point
787Prompt for a weekday name and make it the item's date header. Note that 892is on a done item, this displays the following prompt in the echo
788this replaces an existing date string, it does not add the day name to 893area:
789the date string.
790
791@item e t
792Edit just the item's time string. A time string can be added both to a
793date string and to a weekday name. If you type @key{RET} at the
794prompt, this omits a time string from the header, or deletes an existing
795time string.
796
797@item e y y
798Change the item's diary inclusion status by adding or removing
799@code{todo-nondiary-marker}.
800 894
801@item e y k 895@example
802Change the item's diary marking status by adding or removing 896Press a key (so far `e'): c=>add/edit comment d=>delete comment
803@code{diary-nonmarking-symbol} (this command has an effect only if the 897@end example
804item is not marked for exclusion from the diary).
805@end table
806 898
807@noindent 899@noindent
808Parallel to the latter two item-level commands are the 900Only by typing @kbd{c} or @kbd{d} in response to this prompt can you
809following category-level commands: 901complete the invocation. In contrast, if you type @kbd{e} when point
902is on a non-done todo item, this displays the following prompt in the
903echo area, and you can continue or complete the invocation only by
904typing one of the listed keys:
905
906@example
907Press a key (so far `e'): e=>edit h=>header m=>multiline y=>diary k=>nonmarking d=>date t=>time
908@end example
909
910As noted above, passing the @samp{date} parameter does not complete
911the invocation of @code{todo-edit-item}; rather, it displays the
912following prompt, and typing any of these keys does complete the
913invocation:
914
915@example
916Press a key (so far `e d'): f=>full c=>calendar a=>today n=>dayname y=>year m=>month d=>daynum
917@end example
918
919In addition to the item-level invocations `e y', to change the current
920item's diary inclusion status, and `e k', to change the current item's
921calendar marking status, Todo mode also has two related category-level
922commands:
810 923
811@table @kbd 924@table @kbd
812 925
@@ -818,6 +931,21 @@ a prefix argument, these markings are removed from all items in the
818category. 931category.
819@end table 932@end table
820 933
934@noindent
935Like `e k', `C e k' automatically removes @code{todo-nondiary-marker}
936from all items it is present on, since only diary items can bear
937@code{diary-nonmarking-symbol}.
938
939Since categories often contain a mix of items marked for diary
940inclusion and exclusion, and of the former, a mix of those to be
941marked and those not to be marked in the calendar, it is more useful
942for these category-level commands, unlike the item-level commands, not
943to be toggles, but to have the same effect on all items in the
944category, and take a prefix argument to reverse the effect. (If you
945really want to toggle the diary-inclusion and calendar-marking status
946of all items in the category, you can do this by marking all the items
947and then invoking `e y' or `e k', @pxref{Marked Items}).
948
821@node Relocating and Removing Items, , Editing Item Headers and Text, Item Editing 949@node Relocating and Removing Items, , Editing Item Headers and Text, Item Editing
822@subsection Relocating and Removing Items 950@subsection Relocating and Removing Items
823 951
@@ -849,10 +977,11 @@ Lower the current item's priority by one, exchanging its position in the list
849with that of the item directly below it (@code{todo-lower-item-priority}). 977with that of the item directly below it (@code{todo-lower-item-priority}).
850 978
851@item # 979@item #
852Prompt for a number and relocate the item to the corresponding position 980Prompt for a number and relocate the item to the corresponding
853in the list (@code{todo-set-item-priority}). For example, entering 981position in the list (@code{todo-set-item-priority}). For example,
854@kbd{3} at the prompt makes the item the third in the category, i.e., 982entering @kbd{3} at the prompt makes the item the third in the
855gives it third highest priority. You can also pass the desired priority 983category, i.e., gives it third highest priority; all lower priority
984items are pushed down by one. You can also pass the desired priority
856as a numeric prefix argument, e.g., @kbd{3 #} gives the item third 985as a numeric prefix argument, e.g., @kbd{3 #} gives the item third
857highest priority without prompting. (Prefix arguments have no effect 986highest priority without prompting. (Prefix arguments have no effect
858with @kbd{r} or @kbd{l}.) 987with @kbd{r} or @kbd{l}.)
@@ -877,7 +1006,8 @@ enter is new, then you are asked whether to add the category to the
877file, and if you affirm, the item is moved to the new category. 1006file, and if you affirm, the item is moved to the new category.
878@end table 1007@end table
879 1008
880You delete an item, thereby permanently removing it: 1009You can delete an item, thereby permanently (and, as far as Todo mode
1010is concerned, irrevocably) removing it from the todo file:
881 1011
882@table @kbd 1012@table @kbd
883 1013
@@ -918,6 +1048,7 @@ Archive Mode}).
918 1048
919@table @kbd 1049@table @kbd
920 1050
1051@anchor{todo-item-done}
921@item d 1052@item d
922This command (@code{todo-item-done}) removes the todo item at point from 1053This command (@code{todo-item-done}) removes the todo item at point from
923the todo list, appends to the original header a header consisting of 1054the todo list, appends to the original header a header consisting of
@@ -954,23 +1085,30 @@ this is visible, hide it again and display only the todo items section
954(@code{todo-toggle-view-done-only}). 1085(@code{todo-toggle-view-done-only}).
955@end table 1086@end table
956 1087
957Three editing commands for done items are available: 1088Since done items are meant to be a record of your finished todo items,
1089you cannot apply to them the same kinds of editing operations
1090available to unfinished todo items. However, as explained in
1091@ref{Editing Item Headers and Text} and repeated below for
1092convenience, you can edit or delete a done item's comment, or
1093retroactively add a comment. You can also relocate a done item, and
1094you can revert its done status, making it an unfinished item again.
958 1095
959@table @kbd 1096@table @kbd
960 1097
961@item e c 1098@item e c
962If you type this command (@code{todo-edit-done-item-comment}) when point is 1099Edit the current done item's comment, if it has one; otherwise, prompt
963on a done item that has a comment, you can edit the text of the 1100for and add a comment.
964comment. If you invoke it with a prefix argument (@kbd{C-u e c}), the 1101
965comment is deleted on confirmation. If the done item does not have a 1102@item e d
966comment, this command allows you to add one. 1103Delete the current done item's comment, if it has one.
967 1104
968@item m 1105@item m
969Move the done item at point to the top of the done items section of 1106Move the done item at point to the top of the done items section of
970another category (@code{todo-move-item}). This is useful in case, after 1107another category (@code{todo-move-item}). This is useful in case,
971having relocated an item to its category's done items section, you 1108after having finished a todo item and relocated it to its category's
972create a category that is better suited to the content of the done item 1109done items section, you create a category that is better suited to the
973than its current category, so you can recategorize the done item. 1110content of the done item than its current category; in other words,
1111you can retroactively recategorize the done item.
974 1112
975@item u 1113@item u
976If you decide the done item at point is not done after all, this command 1114If you decide the done item at point is not done after all, this command
@@ -1156,18 +1294,34 @@ You can also use the last two commands to mark or unmark all done items in
1156the category, but only when only the done items section is being 1294the category, but only when only the done items section is being
1157displayed, i.e., after invoking @kbd{C V} or @kbd{V}. 1295displayed, i.e., after invoking @kbd{C V} or @kbd{V}.
1158 1296
1159The following commands operate on marked items: @kbd{k} (deleting), @kbd{m} 1297The following commands operate on marked items:
1160(moving to another category), @kbd{d} (moving to the done items section;
1161note that @kbd{C-u d} adds the same comment to all marked items), @kbd{A d}
1162(archiving), @kbd{u} (both in Todo mode for undoing a done item and in
1163Todo Archive mode for unarchiving an item), as well as the commands for
1164editing the item header (those beginning with the prefix @kbd{e d} as well
1165as @kbd{e t}, @kbd{e y y} and @kbd{e y k}). The item insertion, textual editing and
1166priority changing commands do not operate on marked items.
1167 1298
1168If you use @kbd{m}, @kbd{d}, @kbd{A d} or @kbd{u} on multiple noncontiguous marked 1299@itemize @bullet
1169items, the relocated items retain their relative order but are now 1300
1170listed consecutively en bloc. 1301@item
1302@kbd{k} (deleting)
1303@item
1304@kbd{m} (moving to another category)
1305@item
1306@kbd{d} (moving to the done items section; note that @kbd{C-u d} adds
1307the same comment to all marked items)
1308@item
1309@kbd{A d} (archiving)
1310@item
1311@kbd{u} (both in Todo mode for undoing a done item and in Todo Archive
1312mode for unarchiving an item)
1313@item
1314the commands for editing the item header (those beginning with the
1315prefix @kbd{e d} as well as @kbd{e t}, @kbd{e y} and @kbd{e k})
1316@end itemize
1317
1318@noindent
1319The item insertion, textual editing and priority changing commands do
1320not operate on marked items.
1321
1322If you use @kbd{m}, @kbd{d}, @kbd{A d} or @kbd{u} on multiple
1323noncontiguous marked items, the relocated items retain their relative
1324order but are now listed consecutively en bloc.
1171 1325
1172You can mark both todo and done items, but note that only @kbd{m} can apply 1326You can mark both todo and done items, but note that only @kbd{m} can apply
1173to both; other commands only affect either marked todo or marked done 1327to both; other commands only affect either marked todo or marked done
@@ -1177,9 +1331,9 @@ has no effect and informs you of your erroneous attempt.
1177@node Todo Categories Mode, Searching for Items, Marked Items, Top 1331@node Todo Categories Mode, Searching for Items, Marked Items, Top
1178@chapter Todo Categories Mode 1332@chapter Todo Categories Mode
1179 1333
1180It can be helpful to have a compact overview of the categories in a todo 1334It can be helpful to have a compact overview of the categories in a
1181file and the types of items it contains; Todo provides a tabular view 1335todo file and the types of items it contains; the Todo package
1182of this information. 1336provides a tabular view of this information.
1183 1337
1184@table @kbd 1338@table @kbd
1185 1339
@@ -1251,7 +1405,7 @@ the archive category instead of the empty todo category. You can
1251recognize such categories by their items counts in the table---all 1405recognize such categories by their items counts in the table---all
1252columns but the archived one have counts of zero---and in addition, 1406columns but the archived one have counts of zero---and in addition,
1253their lines in the table are also distinguished from the others by a 1407their lines in the table are also distinguished from the others by a
1254different face. 1408different face (@pxref{Faces}).
1255 1409
1256You can navigate around the table: 1410You can navigate around the table:
1257 1411
@@ -1313,14 +1467,15 @@ or archive file after reordering, in subsequent sessions as well.
1313It is important to be aware that renumbering the categories does not 1467It is important to be aware that renumbering the categories does not
1314change the textual order of the categories in the file. This is 1468change the textual order of the categories in the file. This is
1315significant if you should invoke @kbd{F e} to edit the entire file 1469significant if you should invoke @kbd{F e} to edit the entire file
1316manually and in so doing alter the number of items in a category: this 1470manually and in so doing alter the number of categories or the number
1317will make the item count shown in the table of categories of this file 1471of items in a category: this will make the information shown in the
1318inconsistent with the actual number. You can repair this inconsistency 1472table of categories of this file inconsistent with its actual state.
1319by invoking the command @code{todo-repair-categories-sexp} (which lacks 1473You can repair this inconsistency by invoking the command
1320a key binding, since it is meant to be a rarely needed rescue 1474@code{todo-repair-categories-sexp} (which lacks a key binding, since
1321operation). But this will revert any renumbering of the categories you 1475it is meant to be a rarely needed rescue operation). But this will
1322have made, so you will have to renumber them again. This is the reason 1476revert any renumbering of the categories you have made, so you will
1323why you should exercise caution when using @kbd{F e}. 1477have to renumber them again. This is one reason why you should
1478exercise caution when using @kbd{F e}.
1324@end quotation 1479@end quotation
1325 1480
1326@node Searching for Items, Todo Filtered Items Mode, Todo Categories Mode, Top 1481@node Searching for Items, Todo Filtered Items Mode, Todo Categories Mode, Top
@@ -1525,7 +1680,8 @@ use the values of @code{todo-top-priorities-overrides} or
1525 1680
1526Aside from explicitly invoking an item filtering command to display a 1681Aside from explicitly invoking an item filtering command to display a
1527saved list of items filtered by a given method from given todo files, 1682saved list of items filtered by a given method from given todo files,
1528there are two other ways to visit a saved file of filtered items: 1683there are two other ways to visit a saved file of filtered items. You
1684can invoke a command similar to `find-file':
1529 1685
1530@table @kbd 1686@table @kbd
1531@item F f 1687@item F f
@@ -1533,15 +1689,13 @@ Visit a saved file of filtered items, which you choose via minibuffer
1533completion (@code{todo-find-filtered-items-file}). 1689completion (@code{todo-find-filtered-items-file}).
1534@end table 1690@end table
1535 1691
1536@itemize @bullet 1692@noindent
1537@item 1693Alternatively, as with tables of categories, by customizing
1538As with tables of categories, by customizing @code{todo-show-first} you 1694@code{todo-show-first} you can have the first invocation of
1539can have the first invocation of @code{todo-show} for a given todo file 1695@code{todo-show} for a given todo file display the corresponding saved
1540display the corresponding saved file of filtered items. If there is 1696file of filtered items. If there is no saved filtered items list for
1541no saved filtered items list for the file, @code{todo-show} simply 1697the file, @code{todo-show} simply defaults to visiting the file and
1542defaults to visiting the file and displaying its first category, as 1698displaying its first category, as usual.
1543usual.
1544@end itemize
1545 1699
1546The command @kbd{F k} (@pxref{File Editing}) is also available in Todo 1700The command @kbd{F k} (@pxref{File Editing}) is also available in Todo
1547Filtered Items mode. It deletes the current filtered items file. 1701Filtered Items mode. It deletes the current filtered items file.
@@ -1560,20 +1714,23 @@ You can change the appearance of Todo mode buffers in a variety of ways.
1560@node Faces, Item Prefix, , Todo Display Features 1714@node Faces, Item Prefix, , Todo Display Features
1561@section Faces 1715@section Faces
1562 1716
1563Each of the Todo modes uses faces to distinguish various aspects of the 1717Each of the Todo modes uses faces to distinguish various aspects of
1564display, both structural and informational. For example, the faces for 1718the display, both structural and informational. For example, the
1565the date and time strings of todo item headers by default inherit the 1719faces for the date and time strings of todo item headers
1566attributes of the corresponding faces used by the Emacs diary; but when 1720(@code{todo-date} and @code{todo-time}, respectively) by default
1567the date and time of a Todo diary item (i.e., an item lacking 1721inherit the attributes of the corresponding faces used by the Emacs
1568@code{todo-nondiary-marker}) is earlier than the current date and time, 1722diary; but when the date and time of a Todo diary item (i.e., an item
1569they are displayed in a different face. In this way, you can readily 1723lacking @code{todo-nondiary-marker}) is earlier than the current date
1570recognize diary items that have ``expired'' and act accordingly (e.g., 1724and time, they are displayed in a different face
1571by tagging them as done or by updating the deadlines). 1725(@code{todo-diary-expired}). In this way, you can readily recognize
1572 1726diary items that have ``expired'' and act accordingly (e.g., by
1573Another example of an informational face is the face used to distinguish 1727tagging them as done or by updating the deadlines).
1574top priority items. A third case is the face used in Todo Categories 1728
1575mode to mark rows of the table containing categories with only archived 1729Another example of an informational face is the face used to
1576items. 1730distinguish top priority items (@code{todo-top-priority}). A third
1731case is the face used in Todo Categories mode to mark rows of the
1732table containing categories with only archived items
1733(@code{todo-archived-only}).
1577 1734
1578The @code{todo-faces} customization group contains a complete list of 1735The @code{todo-faces} customization group contains a complete list of
1579Todo mode faces and brief descriptions of their use. 1736Todo mode faces and brief descriptions of their use.
@@ -1607,15 +1764,16 @@ temporarily hide the item numbering:
1607@itemx N 1764@itemx N
1608Toggle between displaying item numbering and displaying the 1765Toggle between displaying item numbering and displaying the
1609@code{todo-prefix} string in the current Todo file (todo, archive, or 1766@code{todo-prefix} string in the current Todo file (todo, archive, or
1610saved virtual category of filtered items. This command also works in 1767saved virtual category of filtered items). (This command also works in
1611buffers of filtered items that have not yet been written to a file.) 1768buffers of filtered items that have not yet been written to a file.)
1612@end table 1769@end table
1613 1770
1614In the todo items section of each Todo mode category, the item prefix 1771In the todo items section of each Todo mode category, the item prefix
1615(whether a priority number or a fixed string) of the top priority items 1772(whether a priority number or a fixed string) of the top priority
1616(determined as specified in @pxref{Filtering Items}) is displayed in a 1773items (determined as specified in @pxref{Filtering Items}) is
1617different face from the prefix of the other items, so you see at a 1774displayed in a face (@code{todo-top-priority}) different from the face
1618glance how many items in the category are top priorities. 1775of the prefix of non-top-priority items, so you see at a glance how
1776many items in the category are top priorities.
1619 1777
1620@node Other Display Commands and Options, , Item Prefix, Todo Display Features 1778@node Other Display Commands and Options, , Item Prefix, Todo Display Features
1621@section Other Display Commands and Options 1779@section Other Display Commands and Options
@@ -1635,11 +1793,12 @@ category-file) tag is not hidden.
1635 1793
1636@item F H 1794@item F H
1637@itemx H 1795@itemx H
1638Highlight the current item if unhighlighted, or remove its highlighting. 1796Highlight the current item (with the face @code{hl-line}) if
1639When item highlighting is enabled, it follows navigation by @kbd{n} or 1797unhighlighted, or remove its highlighting. When item highlighting is
1640@kbd{p}. If you want to have current item highlighting by default, 1798enabled, it follows navigation by @kbd{n} or @kbd{p}. If you want to
1641enable the option @code{todo-highlight-item}. @kbd{F H} or @kbd{H} will 1799have current item highlighting by default, enable the option
1642still toggle it. 1800@code{todo-highlight-item}. @kbd{F H} or @kbd{H} will still toggle
1801it.
1643@end table 1802@end table
1644 1803
1645There are two options which affect the display of items whose content is 1804There are two options which affect the display of items whose content is
@@ -1675,7 +1834,7 @@ By default, the todo and done items sections of a todo category are
1675visually separated by a line as wide as the window the buffer is 1834visually separated by a line as wide as the window the buffer is
1676displayed in. You can change the appearance and width of the separator 1835displayed in. You can change the appearance and width of the separator
1677by customizing @code{todo-done-separator-string}; you can also change the 1836by customizing @code{todo-done-separator-string}; you can also change the
1678face of the separator string. 1837face of the separator string (@code{todo-done-sep}).
1679 1838
1680There are also several options for changing the appearance in Todo 1839There are also several options for changing the appearance in Todo
1681Categories mode and Todo Filtered Items mode, beyond those mentioned 1840Categories mode and Todo Filtered Items mode, beyond those mentioned
@@ -1750,7 +1909,7 @@ do so later by invoking the command @code{todo-convert-legacy-files}
1750(there is no key binding for it, since it shouldn't be necessary to use 1909(there is no key binding for it, since it shouldn't be necessary to use
1751it often). (A delicate part of the conversion concerns the customizable 1910it often). (A delicate part of the conversion concerns the customizable
1752format of item date/time headers in the old-style; see the documentation 1911format of item date/time headers in the old-style; see the documentation
1753string of @code{todo-todo-mode-date-time-regexp} for details.) 1912string of @code{todo-legacy-date-time-regexp} for details.)
1754 1913
1755@node GNU Free Documentation License, , Legacy Todo Mode Files, Top 1914@node GNU Free Documentation License, , Legacy Todo Mode Files, Top
1756@appendix GNU Free Documentation License 1915@appendix GNU Free Documentation License