diff options
| author | Paul Eggert | 2014-05-04 12:37:56 -0700 |
|---|---|---|
| committer | Paul Eggert | 2014-05-04 12:37:56 -0700 |
| commit | 3e9fa60a5c99568817a12a1011b0e61cce5d3a67 (patch) | |
| tree | 831a801351db662f324d0709bf1fee718eda63e9 /doc | |
| parent | bbdcf64f499636ba9567e8fed8f209e06380352c (diff) | |
| parent | 61febcb6e32860575316b8a539a2e9f13f70e3c2 (diff) | |
| download | emacs-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')
| -rw-r--r-- | doc/emacs/ChangeLog | 7 | ||||
| -rw-r--r-- | doc/emacs/trouble.texi | 22 | ||||
| -rw-r--r-- | doc/misc/ChangeLog | 12 | ||||
| -rw-r--r-- | doc/misc/autotype.texi | 4 | ||||
| -rw-r--r-- | doc/misc/message.texi | 5 | ||||
| -rw-r--r-- | doc/misc/semantic.texi | 2 | ||||
| -rw-r--r-- | doc/misc/todo-mode.texi | 841 |
7 files changed, 544 insertions, 349 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 46eee3c31a9..7bcd720203f 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2014-05-04 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * trouble.texi (Lossage, DEL Does Not Delete, Stuck Recursive) | ||
| 4 | (Screen Garbled, Text Garbled, After a Crash, Emergency Escape) | ||
| 5 | (Bug Criteria, Understanding Bug Reporting, Checklist, Service): | ||
| 6 | Improve indexing. | ||
| 7 | |||
| 1 | 2014-05-04 Leo Liu <sdl.web@gmail.com> | 8 | 2014-05-04 Leo Liu <sdl.web@gmail.com> |
| 2 | 9 | ||
| 3 | * cal-xtra.texi (Non-Gregorian Diary): Document new features for | 10 | * cal-xtra.texi (Non-Gregorian Diary): Document new features for |
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi index bf7c6175dcb..f0cbbcc5721 100644 --- a/doc/emacs/trouble.texi +++ b/doc/emacs/trouble.texi | |||
| @@ -135,6 +135,7 @@ facility. | |||
| 135 | 135 | ||
| 136 | @node Lossage | 136 | @node Lossage |
| 137 | @section Dealing with Emacs Trouble | 137 | @section Dealing with Emacs Trouble |
| 138 | @cindex troubleshooting Emacs | ||
| 138 | 139 | ||
| 139 | This section describes how to recognize and deal with situations in | 140 | This section describes how to recognize and deal with situations in |
| 140 | which Emacs does not work as you expect, such as keyboard code mixups, | 141 | which Emacs does not work as you expect, such as keyboard code mixups, |
| @@ -158,6 +159,7 @@ Emacs. | |||
| 158 | @subsection If @key{DEL} Fails to Delete | 159 | @subsection If @key{DEL} Fails to Delete |
| 159 | @cindex @key{DEL} vs @key{BACKSPACE} | 160 | @cindex @key{DEL} vs @key{BACKSPACE} |
| 160 | @cindex @key{BACKSPACE} vs @key{DEL} | 161 | @cindex @key{BACKSPACE} vs @key{DEL} |
| 162 | @cindex @key{DEL} does not delete | ||
| 161 | 163 | ||
| 162 | Every keyboard has a large key, usually labeled @key{BACKSPACE}, | 164 | Every keyboard has a large key, usually labeled @key{BACKSPACE}, |
| 163 | which is ordinarily used to erase the last character that you typed. | 165 | which is ordinarily used to erase the last character that you typed. |
| @@ -212,6 +214,8 @@ Customization}. | |||
| 212 | 214 | ||
| 213 | @node Stuck Recursive | 215 | @node Stuck Recursive |
| 214 | @subsection Recursive Editing Levels | 216 | @subsection Recursive Editing Levels |
| 217 | @cindex stuck in recursive editing | ||
| 218 | @cindex recursive editing, cannot exit | ||
| 215 | 219 | ||
| 216 | Recursive editing levels are important and useful features of Emacs, but | 220 | Recursive editing levels are important and useful features of Emacs, but |
| 217 | they can seem like malfunctions if you do not understand them. | 221 | they can seem like malfunctions if you do not understand them. |
| @@ -225,6 +229,9 @@ top-level}. @xref{Recursive Edit}. | |||
| 225 | 229 | ||
| 226 | @node Screen Garbled | 230 | @node Screen Garbled |
| 227 | @subsection Garbage on the Screen | 231 | @subsection Garbage on the Screen |
| 232 | @cindex garbled display | ||
| 233 | @cindex display, incorrect | ||
| 234 | @cindex screen display, wrong | ||
| 228 | 235 | ||
| 229 | If the text on a text terminal looks wrong, the first thing to do is | 236 | If the text on a text terminal looks wrong, the first thing to do is |
| 230 | see whether it is wrong in the buffer. Type @kbd{C-l} to redisplay | 237 | see whether it is wrong in the buffer. Type @kbd{C-l} to redisplay |
| @@ -242,6 +249,8 @@ bug in Emacs that appears for certain terminal types. | |||
| 242 | 249 | ||
| 243 | @node Text Garbled | 250 | @node Text Garbled |
| 244 | @subsection Garbage in the Text | 251 | @subsection Garbage in the Text |
| 252 | @cindex garbled text | ||
| 253 | @cindex buffer text garbled | ||
| 245 | 254 | ||
| 246 | If @kbd{C-l} shows that the text is wrong, first type @kbd{C-h l} to | 255 | If @kbd{C-l} shows that the text is wrong, first type @kbd{C-h l} to |
| 247 | see what commands you typed to produce the observed results. Then try | 256 | see what commands you typed to produce the observed results. Then try |
| @@ -348,6 +357,7 @@ enable them by running the shell command @samp{ulimit -c unlimited} | |||
| 348 | 357 | ||
| 349 | @node After a Crash | 358 | @node After a Crash |
| 350 | @subsection Recovery After a Crash | 359 | @subsection Recovery After a Crash |
| 360 | @cindex recovering crashed session | ||
| 351 | 361 | ||
| 352 | If Emacs or the computer crashes, you can recover the files you were | 362 | If Emacs or the computer crashes, you can recover the files you were |
| 353 | editing at the time of the crash from their auto-save files. To do | 363 | editing at the time of the crash from their auto-save files. To do |
| @@ -394,6 +404,7 @@ not make a backup of its old contents. | |||
| 394 | 404 | ||
| 395 | @node Emergency Escape | 405 | @node Emergency Escape |
| 396 | @subsection Emergency Escape | 406 | @subsection Emergency Escape |
| 407 | @cindex emergency escape | ||
| 397 | 408 | ||
| 398 | On text terminals, the @dfn{emergency escape} feature suspends Emacs | 409 | On text terminals, the @dfn{emergency escape} feature suspends Emacs |
| 399 | immediately if you type @kbd{C-g} a second time before Emacs can | 410 | immediately if you type @kbd{C-g} a second time before Emacs can |
| @@ -528,6 +539,8 @@ not feel obliged to read this list before reporting a bug. | |||
| 528 | 539 | ||
| 529 | @node Bug Criteria | 540 | @node Bug Criteria |
| 530 | @subsection When Is There a Bug | 541 | @subsection When Is There a Bug |
| 542 | @cindex bug criteria | ||
| 543 | @cindex what constitutes an Emacs bug | ||
| 531 | 544 | ||
| 532 | If Emacs accesses an invalid memory location (``segmentation | 545 | If Emacs accesses an invalid memory location (``segmentation |
| 533 | fault''), or exits with an operating system error message that | 546 | fault''), or exits with an operating system error message that |
| @@ -580,6 +593,8 @@ with the manual, one of them must be wrong; that is a bug. | |||
| 580 | 593 | ||
| 581 | @node Understanding Bug Reporting | 594 | @node Understanding Bug Reporting |
| 582 | @subsection Understanding Bug Reporting | 595 | @subsection Understanding Bug Reporting |
| 596 | @cindex bug reporting | ||
| 597 | @cindex report an Emacs bug, how to | ||
| 583 | 598 | ||
| 584 | @findex emacs-version | 599 | @findex emacs-version |
| 585 | When you decide that there is a bug, it is important to report it | 600 | When you decide that there is a bug, it is important to report it |
| @@ -636,8 +651,8 @@ separate bug report for each. | |||
| 636 | 651 | ||
| 637 | @node Checklist | 652 | @node Checklist |
| 638 | @subsection Checklist for Bug Reports | 653 | @subsection Checklist for Bug Reports |
| 639 | 654 | @cindex checklist before reporting a bug | |
| 640 | @cindex reporting bugs | 655 | @cindex bug reporting, checklist |
| 641 | 656 | ||
| 642 | Before reporting a bug, first try to see if the problem has already | 657 | Before reporting a bug, first try to see if the problem has already |
| 643 | been reported (@pxref{Known Problems}). | 658 | been reported (@pxref{Known Problems}). |
| @@ -1192,6 +1207,9 @@ file in the Emacs distribution. | |||
| 1192 | 1207 | ||
| 1193 | @node Service | 1208 | @node Service |
| 1194 | @section How To Get Help with GNU Emacs | 1209 | @section How To Get Help with GNU Emacs |
| 1210 | @cindex help in using Emacs | ||
| 1211 | @cindex help-gnu-emacs mailing list | ||
| 1212 | @cindex gnu.emacs.help newsgroup | ||
| 1195 | 1213 | ||
| 1196 | If you need help installing, using or changing GNU Emacs, there are two | 1214 | If you need help installing, using or changing GNU Emacs, there are two |
| 1197 | ways to find it: | 1215 | ways to find it: |
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 @@ | |||
| 1 | 2014-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 | |||
| 8 | 2014-05-04 Glenn Morris <rgm@gnu.org> | ||
| 9 | |||
| 10 | * autotype.texi (Skeleton Language): | ||
| 11 | * message.texi (Header Commands): Replace `iff'. | ||
| 12 | |||
| 1 | 2014-05-02 Paul Eggert <eggert@cs.ucla.edu> | 13 | 2014-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. | |||
| 241 | Indent line according to major mode. When following element is @code{_}, and | 241 | Indent line according to major mode. When following element is @code{_}, and |
| 242 | there is a interregion that will be wrapped here, indent that interregion. | 242 | there is a interregion that will be wrapped here, indent that interregion. |
| 243 | @item @code{&} | 243 | @item @code{&} |
| 244 | Logical and. Iff preceding element moved point, i.e., usually inserted | 244 | Logical and. If preceding element moved point, i.e., usually inserted |
| 245 | something, do following element. | 245 | something, do following element. |
| 246 | @item @code{|} | 246 | @item @code{|} |
| 247 | Logical xor. Iff preceding element didn't move point, i.e., usually inserted | 247 | Logical xor. If preceding element didn't move point, i.e., usually inserted |
| 248 | nothing, do following element. | 248 | nothing, do following element. |
| 249 | @item @code{-@var{number}} | 249 | @item @code{-@var{number}} |
| 250 | Delete preceding number characters. Depends on value of | 250 | Delete 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 |
| 751 | Replace contents of @samp{To} header with contents of @samp{Cc} or | 751 | Replace contents of @samp{To} header with contents of @samp{Cc} |
| 752 | @samp{Bcc} header. (Iff @samp{Cc} header is not present, @samp{Bcc} | 752 | header (or the @samp{Bcc} header, if there is no @samp{Cc} header). |
| 753 | header 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 | ||
| 191 | Each todo item is also a potential diary item: if you include a todo | 191 | You can have todo items show up in the Emacs Fancy Diary display by |
| 192 | file in the Emacs diary file (@pxref{Fancy Diary Display,,, emacs}), the | 192 | including the todo file in your diary file (@pxref{Fancy Diary |
| 193 | Fancy Diary display will show those todo items that are not marked with | 193 | Display,,, emacs}). This effectively augments the Emacs diary with |
| 194 | @code{todo-nondiary-marker}. This effectively augments the Emacs diary | 194 | categorized diary entries. All items in an included todo file will |
| 195 | with categorized diary entries. For the various options available for | 195 | appear in the Fancy Diary display except for those that are marked |
| 196 | making a todo item a diary entry, see @ref{Inserting New Items} and | 196 | with @code{todo-nondiary-marker}. You can add or omit this marking |
| 197 | @ref{Editing Item Headers and Text}. | 197 | upon creating a new todo item, or you can do so by editing an existing |
| 198 | item, see @ref{Inserting New Items} and @ref{Editing Item Headers and | ||
| 199 | Text} for details. | ||
| 198 | 200 | ||
| 199 | To ensure the proper display of todo items in the Fancy Diary display, | 201 | To ensure the proper display of todo items in the Fancy Diary display, |
| 200 | they must have the format of diary entries, i.e., they have to begin | 202 | they must have the format of diary entries, i.e., they have to begin |
| @@ -245,20 +247,16 @@ default todo file. | |||
| 245 | 247 | ||
| 246 | If you want to enter Todo mode and go directly to a specific category | 248 | If you want to enter Todo mode and go directly to a specific category |
| 247 | instead the first or current category in the current or default todo | 249 | instead the first or current category in the current or default todo |
| 248 | file, use the command @code{todo-jump-to-category}; @ref{Navigation}, for | 250 | file, use the command @code{todo-jump-to-category}; @ref{Navigation}, |
| 249 | details. You can also enter Todo mode by invoking a todo item insertion | 251 | for details. You can also enter Todo mode by invoking the command |
| 250 | command; @ref{Inserting New Items}, for details. | 252 | @code{todo-insert-item}; @ref{Inserting New Items}, for details. |
| 251 | 253 | ||
| 252 | The most convenient way to use these commands to enter Todo mode is to | 254 | The most convenient way to use these commands to enter Todo mode is to |
| 253 | define global key bindings for them in your init file. Good choices are | 255 | define global key bindings for them in your init file. Good choices |
| 254 | for @code{todo-show} and @code{todo-jump-to-category} are @kbd{C-c t} | 256 | are @kbd{C-c t} for @code{todo-show}, @kbd{C-c j} for |
| 255 | and @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 |
| 256 | respectively, in Todo mode. For invoking item insertion from outside of | 258 | @code{todo-insert-item}, since these commands are bound to @kbd{t}, |
| 257 | Todo mode, it is useful to bind @code{todo-insertion-map}, which is the | 259 | @kbd{j} and @kbd{i}, respectively, in Todo mode. |
| 258 | key 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 | ||
| 260 | invocation, supply the rest of the key sequence (@pxref{Inserting New | ||
| 261 | Items}). | ||
| 262 | 260 | ||
| 263 | You can also visit a Todo file via @code{find-file} or Dired, like any | 261 | You can also visit a Todo file via @code{find-file} or Dired, like any |
| 264 | other file, and since Emacs recognizes it, the buffer will automatically | 262 | other 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 | |||
| 297 | number key. | 295 | number key. |
| 298 | 296 | ||
| 299 | The predefined key bindings in Todo are more or less mnemonic. As a | 297 | The predefined key bindings in Todo are more or less mnemonic. As a |
| 300 | rule, key sequences beginning with @kbd{C} are bound to commands | 298 | rule, key sequences beginning with @kbd{C} (capital `C', not the |
| 301 | applying to categories, sequences beginning with @kbd{F} apply to | 299 | control key) are bound to commands applying to categories, sequences |
| 302 | (non-archive) file-level commands, and those beginning with @kbd{A} | 300 | beginning with @kbd{F} apply to (non-archive) file-level commands, and |
| 303 | apply to archives (a special type of Todo file; @ref{Todo Archive | 301 | those beginning with @kbd{A} apply to archives (a special type of Todo |
| 304 | Mode}). Todo commands applying to items, which constitute the majority, | 302 | file; @ref{Todo Archive Mode}). Todo commands applying to items, |
| 305 | are bound to lower case key sequences. | 303 | which 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 | |||
| 315 | convenient for their key bindings to be single lower case keys, even for | 313 | convenient for their key bindings to be single lower case keys, even for |
| 316 | navigation commands applying to categories and files. | 314 | navigation commands applying to categories and files. |
| 317 | 315 | ||
| 318 | Two of the navigation commands were already mentioned in the section on | 316 | Two of the navigation commands were already mentioned in @ref{Todo |
| 319 | Todo mode entry points: | 317 | Mode Entry Points}: |
| 320 | 318 | ||
| 321 | @table @kbd | 319 | @table @kbd |
| 322 | 320 | ||
| @@ -397,11 +395,17 @@ sections below. | |||
| 397 | 395 | ||
| 398 | Editing in Todo mode means making structural or textual changes at one | 396 | Editing in Todo mode means making structural or textual changes at one |
| 399 | of the levels of organization (file, category, or item). Structural | 397 | of the levels of organization (file, category, or item). Structural |
| 400 | editing includes adding, relocating and removing, textual editing includes | 398 | editing includes adding, relocating and removing units of information |
| 401 | renaming files or categories and changing an item's content or date, or | 399 | at a level; textual editing includes renaming files or categories and |
| 402 | adding certain kinds of marks or tags to items. To save changes you | 400 | changing an item's content or date/time stamp, or adding certain kinds |
| 403 | make to the current todo file, type @kbd{s} (@code{todo-save}). Changes | 401 | of marks or tags to items. Todo mode provides commands, detailed in |
| 404 | are also saved on quitting Todo mode with @kbd{q}. | 402 | the following sections, which enable you to quickly and safely make |
| 403 | changes to your todo lists, without having to worry about preserving | ||
| 404 | the file format. | ||
| 405 | |||
| 406 | To save changes you make to the current todo file, | ||
| 407 | type @kbd{s} (@code{todo-save}). Changes are also saved on quitting | ||
| 408 | Todo 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 |
| 420 | Add a new todo file (@code{todo-add-file}). This command prompts for a | 424 | Add a new todo file (@code{todo-add-file}). This command prompts for |
| 421 | name and creates the file in @code{todo-directory}, adding the | 425 | a 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 |
| 423 | name you enter). The command also prompts for the file's first category and, if | 427 | name you enter). The command also prompts for the file's first |
| 424 | option @code{todo-add-item-if-new-category} is enabled (the default), | 428 | category and, if option @code{todo-add-item-if-new-category} is |
| 425 | for that category's first item. | 429 | enabled (the default), for that category's first item. |
| 426 | 430 | ||
| 427 | @item F r | 431 | @item F r |
| 428 | Rename the current todo file (@code{todo-rename-file}). If called with | 432 | Rename 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 | |||
| 430 | file has an archive (@pxref{Todo Archive Mode}) or there are | 434 | file has an archive (@pxref{Todo Archive Mode}) or there are |
| 431 | corresponding filtered items files (@pxref{Todo Filtered Items Mode}), | 435 | corresponding filtered items files (@pxref{Todo Filtered Items Mode}), |
| 432 | this command renames these accordingly. If there are live buffers | 436 | this command renames these accordingly. If there are live buffers |
| 433 | visiting any of these files, the command also rename them accordingly. | 437 | visiting any of these files, the command also renames them accordingly. |
| 434 | 438 | ||
| 435 | @item F k | 439 | @item F k |
| 436 | Delete the current todo file (@code{todo-delete-file}).@footnote{The key | 440 | Delete the current todo file (@code{todo-delete-file}).@footnote{The key |
| 437 | binding of this command is mnemonic for ``kill'' to parallel the binding | 441 | binding 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 |
| 439 | editing command (@pxref{Done Items}).} If the todo file has an archive | 443 | editing 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. |
| 441 | This command also kill the buffers visiting the deleted files. | 445 | This command also kills the buffers visiting the deleted files. |
| 442 | 446 | ||
| 443 | @item F e | 447 | @item F e |
| 444 | This command (@code{todo-edit-file}) changes the buffer's major mode to | 448 | This 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 | |||
| 458 | use case is to recover from a mistake, such as accidentally deleting an | 462 | use case is to recover from a mistake, such as accidentally deleting an |
| 459 | item, since this cannot be undone in Todo mode. | 463 | item, since this cannot be undone in Todo mode. |
| 460 | 464 | ||
| 461 | Using @kbd{C-x C-q} to quit Todo Edit mode provides a measure of safety, | 465 | Using @kbd{C-x C-q} to quit Todo Edit mode provides a measure of |
| 462 | since it runs a file format check, signaling an error if the format has | 466 | safety, since it runs a file format check, signaling an error if the |
| 463 | become invalid. However, this check cannot tell if the number of items | 467 | format has become invalid. However, this check cannot tell if the |
| 464 | changed, which could result in the file containing inconsistent | 468 | number of items or categories changed, which could result in the file |
| 465 | information (see the cautionary note in @ref{Reordering Categories}, for | 469 | containing inconsistent information (see the cautionary note in |
| 466 | more details). For this reason @kbd{F e} should be used with caution. | 470 | @ref{Reordering Categories}, for more details). Invoking @kbd{F e} |
| 471 | displays 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 | ||
| 472 | The following commands are available for editing at the category level | 477 | The following commands are available for editing specifically at the |
| 473 | (for additional category-editing commands, which are extensions of item | 478 | category level (for two other category-editing commands, which are |
| 474 | commands, @pxref{Editing Item Headers and Text}): | 479 | extensions 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 | ||
| 522 | Todo mode provides a wide variety of commands for adding and textually | 527 | Todo mode provides commands for adding new items as well as textually |
| 523 | changing items, as well as for deleting and relocating items. | 528 | changing, deleting and relocating existing items. The commands and |
| 529 | associated options for adding and editing items, in particular, offer | ||
| 530 | you 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 | ||
| 534 | There are many commands for adding new todo items. The command names | 541 | To add a new todo item to a category, type @kbd{i}, which is bound to |
| 535 | contain the word ``insert'' instead of ``add'' and their key bindings are | 542 | the command @code{todo-insert-item}. |
| 536 | sequences beginning with @kbd{i}. The motivation for this terminology is | ||
| 537 | that speaking of adding an item to a category suggests appending it to | ||
| 538 | the top or bottom, whereas you can insert an item into the category | ||
| 539 | anywhere, 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 |
| 544 | This is the basic command for inserting new items into a category | 547 | This command is the entry point for inserting new items into a |
| 545 | (@code{todo-insert-item}). Called without a prefix argument, it prompts | 548 | category (@code{todo-insert-item}). It prompts for additional keys |
| 546 | for the text of the item and its priority (a number between 1 and one | 549 | until reaching a complete key sequence, which specifies the insertion |
| 547 | more than the number of items already in the category), both of which | 550 | parameters you wish to apply (see below). It then prompts for the |
| 548 | you enter in the minibuffer, and inserts the item into the current | 551 | text of the item, which you enter in the minibuffer.@footnote{There |
| 549 | category of the current todo file at the position in the list | 552 | are two insertion parameters that override prompting for and manually |
| 550 | corresponding to the priority you chose. Called with one prefix | 553 | entering the new item's text, see below.} Called with one prefix |
| 551 | argument, it also prompts for a category, and called with two prefix | 554 | argument, it also prompts for a category, and called with two prefix |
| 552 | arguments, it prompts for both a file and a category from that file, and | 555 | arguments, it prompts for both a file and a category from that file, |
| 553 | inserts the item accordingly. Category name completion works as with | 556 | and inserts the item accordingly; category name completion works as |
| 554 | the navigation command @kbd{j}. | 557 | with the navigation command @kbd{j}. Finally, it inserts the item |
| 558 | into the current or selected category of the current or selected todo | ||
| 559 | file at the position in the list corresponding to the priority you | ||
| 560 | choose, which also depends on the insertion parameters. | ||
| 555 | @end table | 561 | @end table |
| 556 | 562 | ||
| 557 | Each invocation of @kbd{i i} adds a header string to the item, which | 563 | @noindent |
| 564 | The name of this command reflects the fact that you can insert a new | ||
| 565 | item into the category at any position, giving each new item any | ||
| 566 | priority in the list, whereas speaking of adding an item to a category | ||
| 567 | suggests appending it to the top or bottom. | ||
| 568 | |||
| 569 | In addition to its file and category, each newly inserted todo item | ||
| 570 | has a priority in the category and begins with a header string, which | ||
| 558 | includes at least the current date in the same format used by | 571 | includes 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 |
| 560 | control what other information is included in the header by customizing | 573 | specify the priority and the content of the header string in two ways. |
| 561 | the following options: | 574 | First, you can set the following item insertion options, which apply |
| 575 | on 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 | ||
| 581 | the highest or lowest priority in the category, if you do not | ||
| 582 | explicitly assign it a priority on invoking @code{todo-insert-item}. | ||
| 583 | By default, such new items are given highest priority, i.e., inserted | ||
| 584 | at 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 |
| 567 | current time. The time string is omitted by default. | 588 | current time in the new item's header. By default, this time string |
| 589 | is 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 |
| 571 | in the Fancy Diary display by adding or omitting | 593 | appears 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 | 594 | the Emacs diary file) by adding or omitting |
| 573 | exclusion from the diary. | 595 | @code{todo-nondiary-marker}. By default, new todo items are so |
| 596 | marked, 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 |
| 578 | control whether they are marked in the calendar (@pxref{Format of Diary | 601 | control whether they are marked in the calendar (@pxref{Format of |
| 579 | File,,, emacs}). By default, todo items that are diary entries are | 602 | Diary File,,, emacs}). By default, todo items that are diary entries |
| 580 | marked in the calendar. | 603 | lack this symbol, thus are marked in the calendar. |
| 581 | @end itemize | 604 | @end itemize |
| 582 | 605 | ||
| 583 | Instead of always adding the same header information to a new item, you | 606 | Beside setting these options, for more flexibility you can also pass |
| 584 | can use more specific insertion commands that let you decide what to | 607 | certain parameters on each invocation of @code{todo-insert-item}. |
| 585 | include in the item header each time you insert a new item. And instead | 608 | These parameters concern not only the new item's priority and header, |
| 586 | of always being prompted to choose the new item's priority, you can | 609 | but also its textual content. You pass these parameters by typing a |
| 587 | invoke a command to insert it at the position (hence with the priority) | 610 | sequence of one or more keys after the initial @kbd{i}. |
| 588 | of the item at point. Finally, instead of always typing the text of the | 611 | |
| 589 | new item in the minibuffer, you can invoke a command that makes the | 612 | Here is a list of the item insertion parameters together with their |
| 590 | selected region in an Emacs buffer automatically become the new item's | 613 | mnemonically associated keys@footnote{The non-mnemonic choice of |
| 591 | text. The following paragraphs discuss how to invoke these commands by | 614 | @kbd{i} for the parameter @samp{default} is motivated by the |
| 592 | typing certain key sequences. | 615 | convenience of repeating the @kbd{i} used to invoke |
| 593 | 616 | @code{todo-insert-item}.} and descriptions of their effect in | |
| 594 | There are eight parameters of item insertion in Todo mode, six | 617 | @code{todo-insert-item}: |
| 595 | concerning the item header, and one each concerning its priority and its | ||
| 596 | text. Each unique combination of these parameters produces a different | ||
| 597 | insertion command. The command @kbd{i i} realizes one of these | ||
| 598 | combinations. For the commands that realize the remaining combinations | ||
| 599 | it is convenient to associate each parameter with a mnemonically chosen | ||
| 600 | key. Then by typing certain sequences of these keys, you complete the | ||
| 601 | insertion command invocation that realizes the specified combination. | ||
| 602 | As with @kbd{i i}, the effect of many of these commands also depends on | ||
| 603 | the values of the item insertion options mentioned above (see the | ||
| 604 | examples below). | ||
| 605 | |||
| 606 | Here is a list of the parameters and their associated keys, in the order | ||
| 607 | in which you must type them when building a key sequence (this order | ||
| 608 | roughly reflects the order in which the corresponding parts of the item | ||
| 609 | occur 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 | ||
| 624 | the category) and add a header string conforming to the values of the | ||
| 625 | above options. | ||
| 626 | |||
| 627 | @samp{copy} (@kbd{p}): Make an exact copy of the item at point, | ||
| 628 | including its header string, and prompt for its priority. (This is | ||
| 629 | useful for quickly making a new todo item whose text or header you | ||
| 630 | want to differ only partly from that of an existing item: after | ||
| 631 | inserting the copy, you can quickly edit it as needed by using | ||
| 632 | operations 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} | ||
| 637 | if 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 | ||
| 642 | symbol if the option is nil. Since this symbol only applies to diary | ||
| 643 | items, 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 |
| 619 | calendar, or@* | 648 | in 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 | |
| 621 | month 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 | 651 | the year, month (with completion) and day number components of the |
| 623 | the minibuffer; | 652 | header. |
| 653 | |||
| 654 | @samp{dayname} (@kbd{n}): Prompt for entering in the minibuffer | ||
| 655 | a 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); | 659 | the minibuffer instead of automatically inserting the current time; |
| 660 | however, 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 | ||
| 662 | empty 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@* | 666 | the 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. | 667 | down, i.e., lowering their priority, by one. |
| 668 | |||
| 669 | @samp{region} (@kbd{r}): Use the text of the selected region as the | ||
| 670 | text of the new item, and insert this in accordance with the item | ||
| 671 | insertion options and other parameters passed. If the option | ||
| 672 | `todo-use-only-highlighted-region' is non-nil, then use the region | ||
| 673 | only when it is highlighted; otherwise, use the region regardless of | ||
| 674 | highlighting. | ||
| 631 | @end enumerate | 675 | @end enumerate |
| 632 | 676 | ||
| 633 | Each insertion command key sequence begins (disregarding prefix | 677 | Note that the parameters are divided into five numbered groups; within |
| 634 | arguments) with @kbd{i}, followed by one or more of these eight keys, in | 678 | a group, the parameters are mutually exclusive. Hence, to build a |
| 635 | the order listed. But as you can see in the above table, since some of | 679 | complete insertion operation, you select at most one parameter from at |
| 636 | the insertion parameters are mutually exclusive, they occupy only five | 680 | least one of these groups, by typing the corresponding key. If you |
| 637 | positions, so the complete (unprefixed) sequences are maximally six keys | 681 | want to apply more than one parameter, you must type the corresponding |
| 638 | long. Shorter sequences are also possible, since a parameter may be | 682 | keys in the order of the numbered groups, subject to the following |
| 639 | omitted. But since the order in any key sequence is fixed, if the last | 683 | constraints. |
| 640 | key in the sequence could be followed by another insertion key, i.e., if | 684 | |
| 641 | the last key is not @kbd{h} or @kbd{r}, it has to be doubled to complete | 685 | The keys of groups 2-4 are continuation keys, that is, each can be |
| 642 | the sequence, otherwise it would be interpreted as a prefix sequence | 686 | followed 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 | 687 | sequence with a continuation key, you must double the final key. For |
| 644 | i} and not @kbd{i}). | 688 | example, @kbd{i y} is not a complete key sequence; rather, you must |
| 645 | 689 | type @kbd{i y y}. | |
| 646 | Here are some examples of item insertion command key sequences: | 690 | |
| 691 | By 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 | ||
| 693 | two separate groups of the final keys is that the parameters | ||
| 694 | @samp{default} and @samp{copy} cannot be combined with any other | ||
| 695 | parameters, while @samp{here} and @samp{region} can be combined with | ||
| 696 | any of the parameters from groups 2-4. | ||
| 697 | |||
| 698 | To aid you in building item insertion key sequences, when you type an | ||
| 699 | insertion key, this displays a prompt in the echo area showing pairs | ||
| 700 | of the remaining possible keys and their associated parameters, | ||
| 701 | grouped and ordered in accordance with the above list. The initial | ||
| 702 | prompt, after typing @kbd{i} to invoke @code{todo-insert-item}, looks | ||
| 703 | like this: | ||
| 704 | |||
| 705 | @example | ||
| 706 | Press 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 | ||
| 712 | Press 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 | ||
| 716 | belongs to the same group as the selected pair @samp{y=>diary}, hence | ||
| 717 | is no longer available for this sequence. Since @kbd{y} is a | ||
| 718 | continuation key, it is still available, but now the string ":GO!" is | ||
| 719 | appended to the pair to remind you that pressing this key again will | ||
| 720 | complete 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 | |||
| 750 | An alternative to the key sequence @kbd{i c c} for choosing the item's | ||
| 751 | date from the calendar is also available: when point is already on a | ||
| 752 | date in the calendar, typing @kbd{i t} | ||
| 753 | (@code{todo-insert-item-from-calendar}) prompts for a new item and its | ||
| 754 | priority and inserts it in the current category. This command, like | ||
| 755 | @code{todo-insert-item}, also accepts one or two prefix arguments for | ||
| 756 | choosing the category via minibuffer completion. Note, however, that | ||
| 757 | the key sequence @kbd{i t} is not defined in Todo mode but in the | ||
| 758 | Calendar mode keymap. It is a convenient shortcut if you happen to be | ||
| 759 | using the calendar when you decide to make a new todo item. (Contrast | ||
| 760 | this with passing the @samp{calendar} parameter, which pops open the | ||
| 761 | calendar after you have entered the item's text, and then you can | ||
| 762 | choose 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 |
| 652 | the latter down) with a header containing the current date and, | ||
| 653 | depending on the values of the mentioned options, possibly the current | ||
| 654 | time 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 | ||
| 658 | non-nil and omitted if that option is nil; that is, the diary key @kbd{y} | ||
| 659 | overrides the setting of this option. | ||
| 660 | @item | ||
| 661 | @kbd{i y t h} does the same as the preceding command, except that it | ||
| 662 | prompts for a time string instead of automatically inserting the | ||
| 663 | current time; however, typing @key{RET} at the prompt returns the | ||
| 664 | current time if @code{todo-always-add-time-string} is non-nil, otherwise | ||
| 665 | the 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 | ||
| 668 | prompts for the item's priority and inserts it accordingly. | ||
| 669 | @end itemize | ||
| 670 | 767 | ||
| 671 | Note that the commands whose key sequences include @kbd{y}, @kbd{k} or @kbd{t} | 768 | To make changes to an existing item's content or header, type @kbd{e}, |
| 672 | reverse the effect of the options @code{todo-include-in-diary}, | 769 | which is bound to the command @code{todo-edit-item}. |
| 673 | @code{todo-diary-nonmarking} and @code{todo-always-add-time-string}, | ||
| 674 | respectively, thus temporarily overriding their values. | ||
| 675 | |||
| 676 | The names of the item insertion commands correspond to their key | ||
| 677 | bindings, 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 | ||
| 679 | combinations, instead of trying to memorize either the names or the key | ||
| 680 | sequences, you can, as usual, just type an initial part of a key | ||
| 681 | sequence (minimally @kbd{i}), followed by @kbd{C-h} to see the valid | ||
| 682 | completions. | ||
| 683 | |||
| 684 | An alternative to using the key @kbd{c} for choosing the item's date | ||
| 685 | from the calendar is also available: if point is on a date in the | ||
| 686 | calendar, typing @kbd{i t} (@code{todo-insert-item-from-calendar}) will | ||
| 687 | prompt for a new item and its priority and insert it in the current | ||
| 688 | category. Like @kbd{i i} and the other item insertion commands, this | ||
| 689 | also accepts one or two prefix arguments for choosing the category via | ||
| 690 | minibuffer completion. Note, however, that the key sequence @kbd{i t} | ||
| 691 | is not defined in Todo mode but in the Calendar mode keymap. It is a | ||
| 692 | convenient shortcut if you happen to be using the calendar when you | ||
| 693 | decide 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 | ||
| 695 | item's text, and then you can choose a date from the calendar.) | ||
| 696 | |||
| 697 | There is one more item insertion command, which does not derive from the | ||
| 698 | item insertion parameters: | ||
| 699 | 770 | ||
| 700 | @table @kbd | 771 | @table @kbd |
| 701 | 772 | ||
| 702 | @item i p | 773 | @item e |
| 703 | This command (@code{todo-copy-item}) makes a complete copy of the item | 774 | This command is the entry point for textually editing existing items |
| 704 | at point, including its header, prompts for its priority in the current | 775 | in a category (@code{todo-edit-item}). It prompts for additional keys |
| 705 | category and inserts it accordingly. | 776 | until reaching a complete key sequence, which specifies the editing |
| 777 | parameters you wish to apply (see below), and then executes the | ||
| 778 | editing operation accordingly. | ||
| 706 | @end table | 779 | @end table |
| 707 | 780 | ||
| 708 | @noindent | 781 | Here is a list of the item editing parameters together with their |
| 709 | This command is useful for quickly adding a todo item whose text or | 782 | mnemonically associated keys and descriptions of their effect in |
| 710 | header 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 |
| 711 | after inserting the copy, you can quickly edit it as needed by using | 784 | reasons explained below. |
| 712 | commands 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 | |||
| 717 | There are a number of commands for editing an existing item's text or | ||
| 718 | header; these commands are bound to key sequences with @kbd{e}. | ||
| 719 | 787 | ||
| 720 | There are two commands for editing an item's text (and manually editing | 788 | @item |
| 721 | its 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 |
| 722 | better suited for more complex changes or for editing lengthy items: | 790 | minibuffer; 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 |
| 793 | in the minibuffer. | ||
| 725 | 794 | ||
| 726 | @item e e | 795 | @samp{multiline} (@kbd{m}): Edit the text of the current item in a |
| 727 | Edit the text of the current item in the minibuffer | 796 | special 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 | 797 | to return to Todo mode.@footnote{This runs a format check to ensure |
| 729 | e}), the item's header is also included in the minibuffer and so can be | 798 | the item is well-formed. However, unlike the command @kbd{F e} |
| 730 | edited manually. | ||
| 731 | |||
| 732 | @item e m | ||
| 733 | Edit 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 | ||
| 736 | the 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 |
| 738 | putting the file in an inconsistent state, since it puts only the | 800 | putting the file in an inconsistent state, since it puts only the |
| 739 | current item in Todo Edit mode.} | 801 | current item in Todo Edit mode.} |
| 740 | @end table | ||
| 741 | 802 | ||
| 742 | A number of commands are available for interactively editing all or part | 803 | @samp{diary} (@kbd{y}): Change the current item's diary inclusion |
| 743 | of the item header, permitting quick edits and helping avoid formatting | 804 | status by adding @code{todo-nondiary-marker} if the item lacks this, |
| 744 | errors. | 805 | or by removing it if present. |
| 745 | 806 | ||
| 746 | The following three commands are for editing any or all of the year, | 807 | @samp{nonmarking} (@kbd{k}): Change the current item's calendar |
| 747 | month and day components of a date header: | 808 | marking status by adding @code{diary-nonmarking-symbol} if the item |
| 809 | lacks this, or by removing it if present. Since this symbol only | ||
| 810 | applies to diary items, the item is automatically marked as such, | ||
| 811 | i.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 |
| 814 | of 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 | ||
| 817 | present; otherwise, add one. Typing @key{RET} at the prompt enters | ||
| 818 | the current time if @code{todo-always-add-time-string} is non-nil, | ||
| 819 | otherwise it enters the empty string (i.e., no time string). | ||
| 820 | @end enumerate | ||
| 750 | 821 | ||
| 751 | @item e d t | 822 | @noindent |
| 752 | Successively prompt for changes to the date's year, month and | 823 | Editing the text of a lengthy item in the minibuffer can be |
| 753 | day number, and if the option @code{todo-always-add-time-string} is | 824 | inconvenient; therefore, if you type `e e' or `e h' on an item whose |
| 754 | non-nil, also for editing the time string (see also @kbd{e t} below). | 825 | text contains more than one logical line, the effect is the same as if |
| 826 | you had typed `e m', that is, you switch a special buffer in Todo Edit | ||
| 827 | mode. | ||
| 755 | 828 | ||
| 756 | @item e d a | 829 | When you pass any of the parameters of the preceding group, except for |
| 757 | Change the date to today's date. | 830 | the @samp{date} parameter, this completes the item editing invocation |
| 831 | begun by typing @kbd{e}. Pressing @kbd{d} to pass the @samp{date} | ||
| 832 | parameter, however, prompts you with the following parameters and | ||
| 833 | their associated keys, and pressing any of these completes the | ||
| 834 | invocation. | ||
| 758 | 835 | ||
| 759 | @item e d c | 836 | @enumerate 2 |
| 760 | This command pops up the Emacs calendar, and after you type @key{RET} on | 837 | |
| 761 | a 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 | ||
| 841 | string, and, if the option @code{todo-always-add-time-string} is | ||
| 842 | non-nil, also for editing its time string. | ||
| 843 | |||
| 844 | @samp{calendar} (@kbd{c}): This pops up the Emacs calendar, and after | ||
| 845 | you type @key{RET} on a date in the calendar makes that date the | ||
| 846 | item'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) | ||
| 851 | and make it the item's date header. Note that this replaces an | ||
| 852 | existing 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 | ||
| 855 | item's date string. | ||
| 856 | |||
| 857 | @samp{month} (@kbd{m}): Edit just the month component of the current | ||
| 858 | item's date string (with completion). | ||
| 859 | |||
| 860 | @samp{daynum} (@kbd{d}): Edit just the day number component of the | ||
| 861 | current item's date string. | ||
| 862 | @end enumerate | ||
| 763 | 863 | ||
| 764 | @noindent | 864 | @noindent |
| 765 | You can also use these commands on items whose date header consists of a | 865 | With the latter three parameters you can add a positive or negative |
| 766 | weekday name, which then changes to a header with year, month and day | 866 | numeric prefix argument to the invocation: this increments or |
| 767 | components. | 867 | decrements the selected date component by the given number and |
| 868 | automatically adjusts the other date components if necessary. For | ||
| 869 | example, if the item's date string is ``January 1, 2013'', then typing | ||
| 870 | @kbd{- 3 e d d} results in ``December 29, 2012''. | ||
| 871 | |||
| 872 | The first two groups of parameters apply only to todo items that are | ||
| 873 | not marked as done (@pxref{Done Items}); the two parameters of the | ||
| 874 | third group, in contrast, apply only to done todo items. You cannot | ||
| 875 | edit the text of such items, but you can edit or delete the comment | ||
| 876 | you may have added on marking the item as done (@pxref{Done Items, | ||
| 877 | @code{todo-item-done}},), or retroactively add a comment, by passing | ||
| 878 | either of these parameters. | ||
| 879 | |||
| 880 | @enumerate 3 | ||
| 768 | 881 | ||
| 769 | Each of the following three commands, in contrast to the preceding | 882 | @item |
| 770 | three, 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 |
| 771 | header consisting of a weekday name: | 884 | comment, 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 | 887 | comment, if it has one. |
| 775 | @itemx e d m | 888 | @end enumerate |
| 776 | @itemx e d d | ||
| 777 | Prompt for changing just the year, month or day number, respectively; if | ||
| 778 | invoked with a positive or negative numeric prefix argument, directly | ||
| 779 | increment or decrement the date component accordingly and automatically | ||
| 780 | adjust the other date component if necessary. For example, if the date | ||
| 781 | string is ``January 1, 2013'', typing @kbd{- 3 e d d} results in | ||
| 782 | ``December 29, 2012''. | ||
| 783 | @end table | ||
| 784 | 889 | ||
| 785 | @table @kbd | 890 | The command @code{todo-edit-item} is sensitive to the distinction |
| 786 | @item e d n | 891 | between not done and done todo items. If you type @kbd{e} when point |
| 787 | Prompt for a weekday name and make it the item's date header. Note that | 892 | is on a done item, this displays the following prompt in the echo |
| 788 | this replaces an existing date string, it does not add the day name to | 893 | area: |
| 789 | the date string. | ||
| 790 | |||
| 791 | @item e t | ||
| 792 | Edit just the item's time string. A time string can be added both to a | ||
| 793 | date string and to a weekday name. If you type @key{RET} at the | ||
| 794 | prompt, this omits a time string from the header, or deletes an existing | ||
| 795 | time string. | ||
| 796 | |||
| 797 | @item e y y | ||
| 798 | Change the item's diary inclusion status by adding or removing | ||
| 799 | @code{todo-nondiary-marker}. | ||
| 800 | 894 | ||
| 801 | @item e y k | 895 | @example |
| 802 | Change the item's diary marking status by adding or removing | 896 | Press 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 |
| 804 | item is not marked for exclusion from the diary). | ||
| 805 | @end table | ||
| 806 | 898 | ||
| 807 | @noindent | 899 | @noindent |
| 808 | Parallel to the latter two item-level commands are the | 900 | Only by typing @kbd{c} or @kbd{d} in response to this prompt can you |
| 809 | following category-level commands: | 901 | complete the invocation. In contrast, if you type @kbd{e} when point |
| 902 | is on a non-done todo item, this displays the following prompt in the | ||
| 903 | echo area, and you can continue or complete the invocation only by | ||
| 904 | typing one of the listed keys: | ||
| 905 | |||
| 906 | @example | ||
| 907 | Press a key (so far `e'): e=>edit h=>header m=>multiline y=>diary k=>nonmarking d=>date t=>time | ||
| 908 | @end example | ||
| 909 | |||
| 910 | As noted above, passing the @samp{date} parameter does not complete | ||
| 911 | the invocation of @code{todo-edit-item}; rather, it displays the | ||
| 912 | following prompt, and typing any of these keys does complete the | ||
| 913 | invocation: | ||
| 914 | |||
| 915 | @example | ||
| 916 | Press a key (so far `e d'): f=>full c=>calendar a=>today n=>dayname y=>year m=>month d=>daynum | ||
| 917 | @end example | ||
| 918 | |||
| 919 | In addition to the item-level invocations `e y', to change the current | ||
| 920 | item's diary inclusion status, and `e k', to change the current item's | ||
| 921 | calendar marking status, Todo mode also has two related category-level | ||
| 922 | commands: | ||
| 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 | |||
| 818 | category. | 931 | category. |
| 819 | @end table | 932 | @end table |
| 820 | 933 | ||
| 934 | @noindent | ||
| 935 | Like `e k', `C e k' automatically removes @code{todo-nondiary-marker} | ||
| 936 | from all items it is present on, since only diary items can bear | ||
| 937 | @code{diary-nonmarking-symbol}. | ||
| 938 | |||
| 939 | Since categories often contain a mix of items marked for diary | ||
| 940 | inclusion and exclusion, and of the former, a mix of those to be | ||
| 941 | marked and those not to be marked in the calendar, it is more useful | ||
| 942 | for these category-level commands, unlike the item-level commands, not | ||
| 943 | to be toggles, but to have the same effect on all items in the | ||
| 944 | category, and take a prefix argument to reverse the effect. (If you | ||
| 945 | really want to toggle the diary-inclusion and calendar-marking status | ||
| 946 | of all items in the category, you can do this by marking all the items | ||
| 947 | and 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 | |||
| 849 | with that of the item directly below it (@code{todo-lower-item-priority}). | 977 | with that of the item directly below it (@code{todo-lower-item-priority}). |
| 850 | 978 | ||
| 851 | @item # | 979 | @item # |
| 852 | Prompt for a number and relocate the item to the corresponding position | 980 | Prompt for a number and relocate the item to the corresponding |
| 853 | in the list (@code{todo-set-item-priority}). For example, entering | 981 | position 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., | 982 | entering @kbd{3} at the prompt makes the item the third in the |
| 855 | gives it third highest priority. You can also pass the desired priority | 983 | category, i.e., gives it third highest priority; all lower priority |
| 984 | items are pushed down by one. You can also pass the desired priority | ||
| 856 | as a numeric prefix argument, e.g., @kbd{3 #} gives the item third | 985 | as a numeric prefix argument, e.g., @kbd{3 #} gives the item third |
| 857 | highest priority without prompting. (Prefix arguments have no effect | 986 | highest priority without prompting. (Prefix arguments have no effect |
| 858 | with @kbd{r} or @kbd{l}.) | 987 | with @kbd{r} or @kbd{l}.) |
| @@ -877,7 +1006,8 @@ enter is new, then you are asked whether to add the category to the | |||
| 877 | file, and if you affirm, the item is moved to the new category. | 1006 | file, and if you affirm, the item is moved to the new category. |
| 878 | @end table | 1007 | @end table |
| 879 | 1008 | ||
| 880 | You delete an item, thereby permanently removing it: | 1009 | You can delete an item, thereby permanently (and, as far as Todo mode |
| 1010 | is 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 |
| 922 | This command (@code{todo-item-done}) removes the todo item at point from | 1053 | This command (@code{todo-item-done}) removes the todo item at point from |
| 923 | the todo list, appends to the original header a header consisting of | 1054 | the 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 | ||
| 957 | Three editing commands for done items are available: | 1088 | Since done items are meant to be a record of your finished todo items, |
| 1089 | you cannot apply to them the same kinds of editing operations | ||
| 1090 | available to unfinished todo items. However, as explained in | ||
| 1091 | @ref{Editing Item Headers and Text} and repeated below for | ||
| 1092 | convenience, you can edit or delete a done item's comment, or | ||
| 1093 | retroactively add a comment. You can also relocate a done item, and | ||
| 1094 | you 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 |
| 962 | If you type this command (@code{todo-edit-done-item-comment}) when point is | 1099 | Edit the current done item's comment, if it has one; otherwise, prompt |
| 963 | on a done item that has a comment, you can edit the text of the | 1100 | for and add a comment. |
| 964 | comment. If you invoke it with a prefix argument (@kbd{C-u e c}), the | 1101 | |
| 965 | comment is deleted on confirmation. If the done item does not have a | 1102 | @item e d |
| 966 | comment, this command allows you to add one. | 1103 | Delete the current done item's comment, if it has one. |
| 967 | 1104 | ||
| 968 | @item m | 1105 | @item m |
| 969 | Move the done item at point to the top of the done items section of | 1106 | Move the done item at point to the top of the done items section of |
| 970 | another category (@code{todo-move-item}). This is useful in case, after | 1107 | another category (@code{todo-move-item}). This is useful in case, |
| 971 | having relocated an item to its category's done items section, you | 1108 | after having finished a todo item and relocated it to its category's |
| 972 | create a category that is better suited to the content of the done item | 1109 | done items section, you create a category that is better suited to the |
| 973 | than its current category, so you can recategorize the done item. | 1110 | content of the done item than its current category; in other words, |
| 1111 | you can retroactively recategorize the done item. | ||
| 974 | 1112 | ||
| 975 | @item u | 1113 | @item u |
| 976 | If you decide the done item at point is not done after all, this command | 1114 | If 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 | |||
| 1156 | the category, but only when only the done items section is being | 1294 | the category, but only when only the done items section is being |
| 1157 | displayed, i.e., after invoking @kbd{C V} or @kbd{V}. | 1295 | displayed, i.e., after invoking @kbd{C V} or @kbd{V}. |
| 1158 | 1296 | ||
| 1159 | The following commands operate on marked items: @kbd{k} (deleting), @kbd{m} | 1297 | The following commands operate on marked items: |
| 1160 | (moving to another category), @kbd{d} (moving to the done items section; | ||
| 1161 | note 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 | ||
| 1163 | Todo Archive mode for unarchiving an item), as well as the commands for | ||
| 1164 | editing the item header (those beginning with the prefix @kbd{e d} as well | ||
| 1165 | as @kbd{e t}, @kbd{e y y} and @kbd{e y k}). The item insertion, textual editing and | ||
| 1166 | priority changing commands do not operate on marked items. | ||
| 1167 | 1298 | ||
| 1168 | If you use @kbd{m}, @kbd{d}, @kbd{A d} or @kbd{u} on multiple noncontiguous marked | 1299 | @itemize @bullet |
| 1169 | items, the relocated items retain their relative order but are now | 1300 | |
| 1170 | listed 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 | ||
| 1307 | the 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 | ||
| 1312 | mode for unarchiving an item) | ||
| 1313 | @item | ||
| 1314 | the commands for editing the item header (those beginning with the | ||
| 1315 | prefix @kbd{e d} as well as @kbd{e t}, @kbd{e y} and @kbd{e k}) | ||
| 1316 | @end itemize | ||
| 1317 | |||
| 1318 | @noindent | ||
| 1319 | The item insertion, textual editing and priority changing commands do | ||
| 1320 | not operate on marked items. | ||
| 1321 | |||
| 1322 | If you use @kbd{m}, @kbd{d}, @kbd{A d} or @kbd{u} on multiple | ||
| 1323 | noncontiguous marked items, the relocated items retain their relative | ||
| 1324 | order but are now listed consecutively en bloc. | ||
| 1171 | 1325 | ||
| 1172 | You can mark both todo and done items, but note that only @kbd{m} can apply | 1326 | You can mark both todo and done items, but note that only @kbd{m} can apply |
| 1173 | to both; other commands only affect either marked todo or marked done | 1327 | to 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 | ||
| 1180 | It can be helpful to have a compact overview of the categories in a todo | 1334 | It can be helpful to have a compact overview of the categories in a |
| 1181 | file and the types of items it contains; Todo provides a tabular view | 1335 | todo file and the types of items it contains; the Todo package |
| 1182 | of this information. | 1336 | provides 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 | |||
| 1251 | recognize such categories by their items counts in the table---all | 1405 | recognize such categories by their items counts in the table---all |
| 1252 | columns but the archived one have counts of zero---and in addition, | 1406 | columns but the archived one have counts of zero---and in addition, |
| 1253 | their lines in the table are also distinguished from the others by a | 1407 | their lines in the table are also distinguished from the others by a |
| 1254 | different face. | 1408 | different face (@pxref{Faces}). |
| 1255 | 1409 | ||
| 1256 | You can navigate around the table: | 1410 | You can navigate around the table: |
| 1257 | 1411 | ||
| @@ -1313,14 +1467,15 @@ or archive file after reordering, in subsequent sessions as well. | |||
| 1313 | It is important to be aware that renumbering the categories does not | 1467 | It is important to be aware that renumbering the categories does not |
| 1314 | change the textual order of the categories in the file. This is | 1468 | change the textual order of the categories in the file. This is |
| 1315 | significant if you should invoke @kbd{F e} to edit the entire file | 1469 | significant if you should invoke @kbd{F e} to edit the entire file |
| 1316 | manually and in so doing alter the number of items in a category: this | 1470 | manually and in so doing alter the number of categories or the number |
| 1317 | will make the item count shown in the table of categories of this file | 1471 | of items in a category: this will make the information shown in the |
| 1318 | inconsistent with the actual number. You can repair this inconsistency | 1472 | table of categories of this file inconsistent with its actual state. |
| 1319 | by invoking the command @code{todo-repair-categories-sexp} (which lacks | 1473 | You can repair this inconsistency by invoking the command |
| 1320 | a key binding, since it is meant to be a rarely needed rescue | 1474 | @code{todo-repair-categories-sexp} (which lacks a key binding, since |
| 1321 | operation). But this will revert any renumbering of the categories you | 1475 | it is meant to be a rarely needed rescue operation). But this will |
| 1322 | have made, so you will have to renumber them again. This is the reason | 1476 | revert any renumbering of the categories you have made, so you will |
| 1323 | why you should exercise caution when using @kbd{F e}. | 1477 | have to renumber them again. This is one reason why you should |
| 1478 | exercise 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 | ||
| 1526 | Aside from explicitly invoking an item filtering command to display a | 1681 | Aside from explicitly invoking an item filtering command to display a |
| 1527 | saved list of items filtered by a given method from given todo files, | 1682 | saved list of items filtered by a given method from given todo files, |
| 1528 | there are two other ways to visit a saved file of filtered items: | 1683 | there are two other ways to visit a saved file of filtered items. You |
| 1684 | can 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 | |||
| 1533 | completion (@code{todo-find-filtered-items-file}). | 1689 | completion (@code{todo-find-filtered-items-file}). |
| 1534 | @end table | 1690 | @end table |
| 1535 | 1691 | ||
| 1536 | @itemize @bullet | 1692 | @noindent |
| 1537 | @item | 1693 | Alternatively, as with tables of categories, by customizing |
| 1538 | As with tables of categories, by customizing @code{todo-show-first} you | 1694 | @code{todo-show-first} you can have the first invocation of |
| 1539 | can 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 |
| 1540 | display the corresponding saved file of filtered items. If there is | 1696 | file of filtered items. If there is no saved filtered items list for |
| 1541 | no saved filtered items list for the file, @code{todo-show} simply | 1697 | the file, @code{todo-show} simply defaults to visiting the file and |
| 1542 | defaults to visiting the file and displaying its first category, as | 1698 | displaying its first category, as usual. |
| 1543 | usual. | ||
| 1544 | @end itemize | ||
| 1545 | 1699 | ||
| 1546 | The command @kbd{F k} (@pxref{File Editing}) is also available in Todo | 1700 | The command @kbd{F k} (@pxref{File Editing}) is also available in Todo |
| 1547 | Filtered Items mode. It deletes the current filtered items file. | 1701 | Filtered 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 | ||
| 1563 | Each of the Todo modes uses faces to distinguish various aspects of the | 1717 | Each of the Todo modes uses faces to distinguish various aspects of |
| 1564 | display, both structural and informational. For example, the faces for | 1718 | the display, both structural and informational. For example, the |
| 1565 | the date and time strings of todo item headers by default inherit the | 1719 | faces for the date and time strings of todo item headers |
| 1566 | attributes of the corresponding faces used by the Emacs diary; but when | 1720 | (@code{todo-date} and @code{todo-time}, respectively) by default |
| 1567 | the date and time of a Todo diary item (i.e., an item lacking | 1721 | inherit the attributes of the corresponding faces used by the Emacs |
| 1568 | @code{todo-nondiary-marker}) is earlier than the current date and time, | 1722 | diary; but when the date and time of a Todo diary item (i.e., an item |
| 1569 | they are displayed in a different face. In this way, you can readily | 1723 | lacking @code{todo-nondiary-marker}) is earlier than the current date |
| 1570 | recognize diary items that have ``expired'' and act accordingly (e.g., | 1724 | and time, they are displayed in a different face |
| 1571 | by tagging them as done or by updating the deadlines). | 1725 | (@code{todo-diary-expired}). In this way, you can readily recognize |
| 1572 | 1726 | diary items that have ``expired'' and act accordingly (e.g., by | |
| 1573 | Another example of an informational face is the face used to distinguish | 1727 | tagging them as done or by updating the deadlines). |
| 1574 | top priority items. A third case is the face used in Todo Categories | 1728 | |
| 1575 | mode to mark rows of the table containing categories with only archived | 1729 | Another example of an informational face is the face used to |
| 1576 | items. | 1730 | distinguish top priority items (@code{todo-top-priority}). A third |
| 1731 | case is the face used in Todo Categories mode to mark rows of the | ||
| 1732 | table containing categories with only archived items | ||
| 1733 | (@code{todo-archived-only}). | ||
| 1577 | 1734 | ||
| 1578 | The @code{todo-faces} customization group contains a complete list of | 1735 | The @code{todo-faces} customization group contains a complete list of |
| 1579 | Todo mode faces and brief descriptions of their use. | 1736 | Todo mode faces and brief descriptions of their use. |
| @@ -1607,15 +1764,16 @@ temporarily hide the item numbering: | |||
| 1607 | @itemx N | 1764 | @itemx N |
| 1608 | Toggle between displaying item numbering and displaying the | 1765 | Toggle 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 |
| 1610 | saved virtual category of filtered items. This command also works in | 1767 | saved virtual category of filtered items). (This command also works in |
| 1611 | buffers of filtered items that have not yet been written to a file.) | 1768 | buffers of filtered items that have not yet been written to a file.) |
| 1612 | @end table | 1769 | @end table |
| 1613 | 1770 | ||
| 1614 | In the todo items section of each Todo mode category, the item prefix | 1771 | In 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 | 1773 | items (determined as specified in @pxref{Filtering Items}) is |
| 1617 | different face from the prefix of the other items, so you see at a | 1774 | displayed in a face (@code{todo-top-priority}) different from the face |
| 1618 | glance how many items in the category are top priorities. | 1775 | of the prefix of non-top-priority items, so you see at a glance how |
| 1776 | many 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 |
| 1638 | Highlight the current item if unhighlighted, or remove its highlighting. | 1796 | Highlight the current item (with the face @code{hl-line}) if |
| 1639 | When item highlighting is enabled, it follows navigation by @kbd{n} or | 1797 | unhighlighted, or remove its highlighting. When item highlighting is |
| 1640 | @kbd{p}. If you want to have current item highlighting by default, | 1798 | enabled, it follows navigation by @kbd{n} or @kbd{p}. If you want to |
| 1641 | enable the option @code{todo-highlight-item}. @kbd{F H} or @kbd{H} will | 1799 | have current item highlighting by default, enable the option |
| 1642 | still toggle it. | 1800 | @code{todo-highlight-item}. @kbd{F H} or @kbd{H} will still toggle |
| 1801 | it. | ||
| 1643 | @end table | 1802 | @end table |
| 1644 | 1803 | ||
| 1645 | There are two options which affect the display of items whose content is | 1804 | There 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 | |||
| 1675 | visually separated by a line as wide as the window the buffer is | 1834 | visually separated by a line as wide as the window the buffer is |
| 1676 | displayed in. You can change the appearance and width of the separator | 1835 | displayed in. You can change the appearance and width of the separator |
| 1677 | by customizing @code{todo-done-separator-string}; you can also change the | 1836 | by customizing @code{todo-done-separator-string}; you can also change the |
| 1678 | face of the separator string. | 1837 | face of the separator string (@code{todo-done-sep}). |
| 1679 | 1838 | ||
| 1680 | There are also several options for changing the appearance in Todo | 1839 | There are also several options for changing the appearance in Todo |
| 1681 | Categories mode and Todo Filtered Items mode, beyond those mentioned | 1840 | Categories 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 |
| 1751 | it often). (A delicate part of the conversion concerns the customizable | 1910 | it often). (A delicate part of the conversion concerns the customizable |
| 1752 | format of item date/time headers in the old-style; see the documentation | 1911 | format of item date/time headers in the old-style; see the documentation |
| 1753 | string of @code{todo-todo-mode-date-time-regexp} for details.) | 1912 | string 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 |