With ivy-todo
you can add or modify items in your org-mode TODO lists using ivy. The primary use case is to quickly edit TODO items in the project you’re currently working on, ivy-todo
tries to figure out your project’s name using projectile or find-file-in-project or vc.el (requires Emacs 25 or greater).
You could download ivy-todo
from Melpa, or add ivy-todo.el
to your load-path and require it in your init file. You might want to change the variable ivy-todo-file
(defaults to ivy-todo.org in your org-directory
). If you do not want ivy-todo
to guess which TODO list to use, put (setq ivy-todo-guess-list nil)
in your init file. Example setup using use-package:
(use-package ivy-todo :ensure t
:bind ("C-c t" . ivy-todo)
:commands ivy-todo
:config
(setq ivy-todo-default-tags '("PROJECT")))
The variable ivy-todo-default-tags
can be used to set a list of tags which will be applied to new project lists (it is nil
by default).
Each level 1 headline in your ivy-todo-file
is considered a TODO list. Use M-x ivy-todo
(or bind it to a key) to manipulate the items. To change TODO list, use the universal argument (C-u M-x ivy-todo
). To change ivy-todo-file
use double universal argument (C-u C-u M-x ivy-todo
).
The default ivy action is to modify the TODO state of the chosen item. You can choose different actions by using M-o
(by default) in the ivy buffer.