File: todo-mode.el.html

This package provides facilities for making and maintaining prioritized lists of things to do. These todo lists are identified with named categories, so you can group together thematically related todo items. Each category is stored in a file, providing a further level of organization. You can create as many todo files, and in each as many categories, as you want.

With Todo mode you can navigate among the items of a category, and between categories in the same and in different todo files. You can add and edit todo items, reprioritize them, move them to another category, or delete them. You can also mark items as done and store them within their category or in separate archive files. You can include todo items in the Emacs Fancy Diary display and treat them as appointments. You can add new todo files, and rename or delete them. You can add new categories to a file, rename or delete them, move a category to another file and merge the items of two categories. You can also reorder the sequence of categories in a todo file for the purpose of navigation. You can display sortable summary tables of the categories in a file and the types of items they contain. And you can filter items by various criteria from multiple categories in one or more todo files to create prioritizable cross-category overviews of your todo items.

To get started, type M-x todo-show. For full details of the user interface, commands and options, consult the Todo mode user manual, which is one of the Info manuals included in the standard Emacs installation.

Defined variables (107)

todo--date-pattern-groupsAlist for grouping date components in ‘todo-date-pattern’.
todo--fifiles-historyList of short file names used by todo-find-filtered-items-file.
todo--item-headers-hiddenNon-nil if item date-time headers in current buffer are hidden.
todo-add-item-if-new-categoryNon-nil to prompt for an item after adding a new category.
todo-always-add-time-stringWhether to add the time to an item’s date header by default.
todo-archive-mode-abbrev-tableAbbrev table for ‘todo-archive-mode’.
todo-archive-mode-hookHook run after entering ‘todo-archive-mode’.
todo-archive-mode-mapTodo Archive mode keymap.
todo-archive-mode-syntax-tableSyntax table for ‘todo-archive-mode’.
todo-archivesList of truenames of user’s todo archives.
todo-categoriesAlist of categories in the current todo file.
todo-categories-alignAlignment of category names in Todo Categories mode.
todo-categories-archived-labelArchived button label in Todo Categories mode.
todo-categories-bufferName of buffer in Todo Categories mode.
todo-categories-category-labelCategory button label in Todo Categories mode.
todo-categories-category-numberVariable for numbering categories in Todo Categories mode.
todo-categories-diary-labelDiary button label in Todo Categories mode.
todo-categories-done-labelDone button label in Todo Categories mode.
todo-categories-mode-abbrev-tableAbbrev table for ‘todo-categories-mode’.
todo-categories-mode-hookHook run after entering ‘todo-categories-mode’.
todo-categories-mode-mapTodo Categories mode keymap.
todo-categories-mode-syntax-tableSyntax table for ‘todo-categories-mode’.
todo-categories-number-separatorString between number and category in Todo Categories mode.
todo-categories-todo-labelTodo button label in Todo Categories mode.
todo-categories-totals-labelString to label total item counts in Todo Categories mode.
todo-categories-with-marksAlist of categories and number of marked items they contain.
todo-category-begString marking beginning of category (inserted with its name).
todo-category-completions-filesList of files for building ‘todo-read-category’ completions.
todo-category-doneString marking beginning of category’s done items.
todo-category-numberVariable holding the number of the current todo category.
todo-comment-stringString inserted before optional comment appended to done item.
todo-completion-ignore-caseNon-nil means case is ignored by ‘todo-read-*’ functions.
todo-current-todo-fileVariable holding the name of the currently active todo file.
todo-date-from-calendarHelper variable for setting item date from the Emacs Calendar.
todo-date-patternRegular expression matching a todo item date header.
todo-date-string-startRegular expression matching part of item header before the date.
todo-default-priorityDefault priority of new and moved items.
todo-default-todo-fileTodo file visited by first session invocation of ‘todo-show’.
todo-descending-countsList of keys for category counts sorted in descending order.
todo-diary-items-bufferBuffer type string for ‘todo-filter-items’.
todo-diary-nonmarkingNon-nil to insert new todo diary items as nonmarking by default.
todo-directoryDirectory where user’s todo files are saved.
todo-done-separatorString used to visually separate done from not done items.
todo-done-separator-stringString determining the value of variable ‘todo-done-separator’.
todo-done-stringIdentifying string appended to the front of done todo items.
todo-done-string-startRegular expression matching start of done item.
todo-edit-bufferName of current buffer in Todo Edit mode.
todo-edit-mode-abbrev-tableAbbrev table for ‘todo-edit-mode’.
todo-edit-mode-hookHook run after entering ‘todo-edit-mode’.
todo-edit-mode-mapTodo Edit mode keymap.
todo-edit-mode-syntax-tableSyntax table for ‘todo-edit-mode’.
todo-file-buffersList of file names of live Todo mode buffers.
todo-filesList of truenames of user’s todo files.
todo-files-functionFunction returning the value of the variable ‘todo-files’.
todo-filter-done-itemsNon-nil to include done items when processing regexp filters.
todo-filter-filesList of default files for multifile item filtering.
todo-filtered-items-bufferInitial name of buffer in Todo Filter Items mode.
todo-filtered-items-mode-abbrev-tableAbbrev table for ‘todo-filtered-items-mode’.
todo-filtered-items-mode-hookHook run after entering ‘todo-filtered-items-mode’.
todo-filtered-items-mode-mapTodo Filtered Items mode keymap.
todo-filtered-items-mode-syntax-tableSyntax table for ‘todo-filtered-items-mode’.
todo-font-lock-keywordsFont-locking for Todo modes.
todo-global-current-todo-fileVariable holding name of current todo file.
todo-highlight-itemNon-nil means highlight items at point.
todo-include-in-diaryNon-nil to allow new todo items to be included in the diary.
todo-indent-to-hereNumber of spaces to indent continuation lines of items.
todo-initial-categoryDefault category name offered on initializing a new todo file.
todo-initial-fileDefault file name offered on adding first todo file.
todo-insert-item--parametersList of all item insertion parameters.
todo-item-markString used to mark items.
todo-item-startString identifying start of a todo item.
todo-key-bindings-tList of key bindings for Todo mode only.
todo-key-bindings-t+aList of key bindings for Todo and Todo Archive modes.
todo-key-bindings-t+a+fList of key bindings for Todo, Archive, and Filtered Items modes.
todo-key-bindings-t+fList of key bindings for Todo and Todo Filtered Items modes.
todo-legacy-date-time-regexpRegexp matching legacy todo-mode.el item date-time strings.
todo-menuTodo Menu.
todo-mode-abbrev-tableAbbrev table for ‘todo-mode’.
todo-mode-hookHook run after entering ‘todo-mode’.
todo-mode-line-functionFunction that returns a mode line control for Todo mode buffers.
todo-mode-mapTodo mode keymap.
todo-mode-syntax-tableSyntax table for ‘todo-mode’.
todo-month-abbrev-arrayArray of abbreviated month names, in order.
todo-month-name-arrayArray of month names, in order.
todo-multiple-filter-filesList of files selected from ‘todo-multiple-filter-files’ widget.
todo-multiple-filter-files-widgetVariable holding widget created by ‘todo-multiple-filter-files’.
todo-nondiary-endString inserted after item date matching ‘todo-nondiary-start’.
todo-nondiary-markerList of strings surrounding item date to block diary inclusion.
todo-nondiary-startString inserted before item date to block diary inclusion.
todo-number-prefixNon-nil to prefix items with consecutively increasing integers.
todo-prefixString prefixed to todo items for visual distinction.
todo-print-bufferName of buffer with printable version of Todo mode buffer.
todo-print-buffer-functionFunction called by ‘todo-print-buffer’ to print Todo mode buffers.
todo-regexp-items-bufferBuffer type string for ‘todo-filter-items’.
todo-show-current-fileNon-nil to make ‘todo-show’ visit the current todo file.
todo-show-done-onlyIf non-nil display only done items in current category.
todo-show-firstWhat action to take on first use of ‘todo-show’ on a file.
todo-show-with-doneNon-nil to display done items in all categories.
todo-skip-archived-categoriesNon-nil to handle categories with only archived items specially.
todo-top-prioritiesDefault number of top priorities shown by ‘todo-filter-top-priorities’.
todo-top-priorities-bufferBuffer type string for ‘todo-filter-items’.
todo-top-priorities-overridesList of rules specifying number of top priority items to show.
todo-undo-item-omit-commentWhether to omit done item comment on undoing the item.
todo-use-only-highlighted-regionNon-nil to enable inserting only highlighted region as new item.
todo-visitedList of todo files visited in this session by ‘todo-show’.
todo-wrap-linesNon-nil to activate Visual Line mode and use wrap prefix.
todo-y-with-spaceNon-nil means allow SPC to affirm a "y or n" question.

Defined functions (171)

todo--user-error-if-marked-done-item()
todo-absolute-file-name(NAME &optional TYPE)
todo-add-category(&optional FILE CAT)
todo-add-file()
todo-adjusted-category-label-length()
todo-archive-done-item(&optional ALL)
todo-archive-mode()
todo-backward-category()
todo-backward-item(&optional COUNT)
todo-categories-mode()
todo-category-completions(&optional ARCHIVE)
todo-category-number(CAT)
todo-category-select()
todo-category-string-matcher-1(LIM)
todo-category-string-matcher-2(LIM)
todo-check-file(FILE)
todo-check-filtered-items-file()
todo-check-format()
todo-choose-archive()
todo-clear-matches()
todo-comment-string-matcher(LIM)
todo-convert-legacy-date-time()
todo-convert-legacy-files()
todo-current-category()
todo-date-string-matcher(LIM)
todo-delete-category(&optional ARG)
todo-delete-file()
todo-delete-item()
todo-desktop-save-buffer(DIR)
todo-diary-expired-matcher(LIM)
todo-diary-goto-entry(BUTTON)
todo-diary-item-p()
todo-diary-nonmarking-matcher(LIM)
todo-display-categories()
todo-display-sorted(TYPE)
todo-done-item-p()
todo-done-item-section-p()
todo-done-separator()
todo-done-string-matcher(LIM)
todo-edit-category-diary-inclusion(ARG)
todo-edit-category-diary-nonmarking(ARG)
todo-edit-file()
todo-edit-item(&optional ARG)
todo-edit-item--diary-inclusion(&optional NONMARKING)
todo-edit-item--header(WHAT &optional INC)
todo-edit-item--next-key(TYPE &optional ARG)
todo-edit-item--text(&optional ARG)
todo-edit-mode()
todo-edit-quit()
todo-files(&optional ARCHIVES)
todo-filter-diary-items(&optional ARG)
todo-filter-diary-items-multifile(&optional ARG)
todo-filter-items(FILTER &optional NEW MULTIFILE)
todo-filter-items-1(FILTER FILE-LIST)
todo-filter-items-filename()
todo-filter-regexp-items(&optional ARG)
todo-filter-regexp-items-multifile(&optional ARG)
todo-filter-top-priorities(&optional ARG)
todo-filter-top-priorities-multifile(&optional ARG)
todo-filtered-items-mode()
todo-find-archive(&optional ASK)
todo-find-filtered-items-file()
todo-find-item(STR)
todo-forward-category(&optional BACK)
todo-forward-item(&optional COUNT)
todo-get-count(TYPE &optional CATEGORY)
todo-get-overlay(VAL)
todo-go-to-source-item()
todo-hl-line-range()
todo-indent()
todo-insert-category-line(CAT &optional NONUM)
todo-insert-item(&optional ARG)
todo-insert-item--basic(&optional ARG DIARY-TYPE DATE-TYPE TIME WHERE)
todo-insert-item--next-param(ARGS PARAMS LAST KEYS-SO-FAR)
todo-insert-item-from-calendar(&optional ARG)
todo-insert-sort-button(LABEL)
todo-insert-with-overlays(ITEM)
todo-item-done(&optional ARG)
todo-item-end()
todo-item-start()
todo-item-string()
todo-item-undone()
todo-jump-to-archive-category(&optional FILE)
todo-jump-to-category(&optional FILE WHERE)
todo-label-to-key(LABEL)
todo-longest-category-name-length(CATEGORIES)
todo-lower-category()
todo-lower-item-priority()
todo-make-categories-list(&optional FORCE)
todo-mark-category()
todo-marked-item-p()
todo-menu(ARG1)
todo-merge-category(&optional FILE)
todo-mode()
todo-mode-line-control(CAT)
todo-modes-set-1()
todo-modes-set-2()
todo-modes-set-3()
todo-move-category()
todo-move-item(&optional FILE)
todo-multiple-filter-files()
todo-next-button(N)
todo-next-item(&optional COUNT)
todo-nondiary-marker-matcher(LIM)
todo-padded-string(STR)
todo-prefix-overlays()
todo-previous-button(N)
todo-previous-item(&optional COUNT)
todo-print-buffer(&optional TO-FILE)
todo-print-buffer-to-file()
todo-quit()
todo-raise-category()
todo-raise-item-priority()
todo-read-category(PROMPT &optional MATCH-TYPE FILE)
todo-read-date(&optional ARG MO YR)
todo-read-dayname()
todo-read-file-name(PROMPT &optional ARCHIVE MUSTMATCH)
todo-read-time()
todo-remove-item()
todo-rename-category()
todo-rename-file(&optional ARG)
todo-repair-categories-sexp()
todo-reset-and-enable-done-separator()
todo-reset-comment-string(SYMBOL VALUE)
todo-reset-done-separator(SEP)
todo-reset-done-separator-string(SYMBOL VALUE)
todo-reset-done-string(SYMBOL VALUE)
todo-reset-global-current-todo-file()
todo-reset-highlight-item(SYMBOL VALUE)
todo-reset-nondiary-marker(SYMBOL VALUE)
todo-reset-prefix(SYMBOL VALUE)
todo-restore-desktop-buffer(FILE BUFFER MISC)
todo-revert-buffer(&optional IGNORE-AUTO NOCONFIRM)
todo-save()
todo-save-filtered-items-buffer()
todo-search()
todo-set-categories()
todo-set-category-number(&optional ARG)
todo-set-date-from-calendar()
todo-set-item-priority(&optional ITEM CAT NEW ARG)
todo-set-show-current-file(SYMBOL VALUE)
todo-set-top-priorities(&optional ARG)
todo-set-top-priorities-in-category()
todo-set-top-priorities-in-file()
todo-short-file-name(FILE)
todo-show(&optional SOLICIT-FILE INTERACTIVE)
todo-show-categories-table()
todo-show-current-file()
todo-sort(LIST &optional KEY)
todo-sort-categories-alphabetically-or-numerically()
todo-sort-categories-by-archived()
todo-sort-categories-by-diary()
todo-sort-categories-by-done()
todo-sort-categories-by-todo()
todo-time-string-matcher(LIM)
todo-toggle-item-header()
todo-toggle-item-highlighting()
todo-toggle-mark-item(&optional N)
todo-toggle-prefix-numbers()
todo-toggle-view-done-items()
todo-toggle-view-done-only()
todo-total-item-counts()
todo-unarchive-items()
todo-unmark-category()
todo-update-buffer-list()
todo-update-categories-display(SORTKEY)
todo-update-categories-sexp()
todo-update-count(TYPE INCREMENT &optional CATEGORY)
todo-update-filelist-defcustoms()
todo-validate-name(NAME TYPE)
todo-y-or-n-p(PROMPT)

Defined faces (16)

todo-archived-onlyFace for archived-only category names in table of categories.
todo-buttonFace for buttons in table of categories.
todo-category-stringFace for category-file header in Todo Filtered Items mode.
todo-commentFace for comments appended to done todo items.
todo-dateFace for the date string of a todo item.
todo-diary-expiredFace for expired dates of diary items.
todo-doneFace for done todo item header string.
todo-done-sepFace for separator string between done and not done todo items.
todo-key-promptFace for making keys in item insertion prompt stand out.
todo-markFace for marks on marked items.
todo-nondiaryFace for non-diary markers around todo item date/time header.
todo-prefix-stringFace for todo item prefix or numerical priority string.
todo-searchFace for matches found by ‘todo-search’.
todo-sorted-columnFace for sorted column in table of categories.
todo-timeFace for the time string of a todo item.
todo-top-priorityFace for top priority todo item numerical priority string. The item’s priority number string has this face if the number is less than or equal the category’s top priority setting.