Библиотека сайта rus-linux.net
Управление личными заданиями с помощью Todo.txt
Автор: Александр Тарасов aka oioki
Дата: 26 августа 2007
Есть множество программ для управления личными заданиями. Некоторые из этих программ обладают функциями календаря, планировщика, напоминателя и др. Но многим людям не нужна вся эта функциональность. Если вы один из них, а также комфортно себя чувствуете в командной строке, тогда вам наверняка стоит обратить внимание на консольную утилиту управления своими заданиями под названием, которое больше напоминает имя файла -
Todo.txt, автор программы -
Gina Trapani. В общем, программа оправдывает свое название, так как всю информацию о заданиях она хранит в одноименном файле, а сам скрипт todo.sh
представляет собой оболочку для его просмотра и изменения.
Установка
Установка Todo.txt проста. Загрузив с сайта разработчика архивtodo.sh.zip
, распакуйте два файла. Сам bash-скрипт todo.sh
нужно поместить в один из каталогов переменной окружения PATH, к примеру, в /usr/bin
. Советую также переименовать todo.sh
в более лаконичное todo
, которое будет использоваться в примерах ниже. Второй файл .todo
представляет собой конфигурационный файл, в котором нужно изменить переменную TODO_DIR, указав путь хранения вашего todo.txt, к примеру так:
TODO_DIR="/home/oioki/todo"
|
Мне показалось, что будет удобно, если список заданий будет появляться при каждом новом открытии консоли. Если вы хотите сделать также, допишите в конце файла /etc/profile
строку
todo ls
|
Итак, начнем
Самое простое, что можно сделать с помощью Todo.txt - это добавить задание (a - от слова add):
# todo a |
Добавлять задания можно и в одну строку. Однако если в вашем задании есть символ апострофа, то задание нужно заключать в кавычки:
# todo a "Посмотреть Surf's Up"
|
Интересной функцией Todo.txt является возможность присваивания приоритетов заданиям. Задания с более высоким приоритетом будут отображаться выше других. Приоритет обозначается латинской буквой от A до Z, самый высокий приоритет у заданий с буквой A. Назначим наивысший приоритет ремонту (он под номером 1):
# todo p 1 A
|
Список текущих и выполненных заданий можно просмотреть с помощью команды
# todo ls
|
Допустим, мы закончили ремонт и хотим отметить это в нашем списке заданий:
# todo do 1 |
Остальные действия производятся аналогичным образом. Я лишь перечислю их: дописывание задания справа (app) и слева (prep), удаление (rm), очистка списка от выполненных заданий (archive), поиск по ключевому слову (ls), поиск по текущим и выполненным (lsa), поиск по приоритету (lsp), замена задания (replace), очистка от дубликатов (remdup), занесение текущего количества заданий в отчет (report). Если вы все же испытываете затруднения, вам в помощь краткая справка:
# todo --help
|
Эффективное составление заданий
Дэвид Аллен, автор книги Getting Things Done, предлагает разделять задания по категориям. К примеру если для выполнения задания требуется телефон, то в задании должно быть упоминание об этом. Следуя этому принципу, будет логично в конце каждого подобного задания дописывать @phone. Теперь задания, связанные с телефоном, можно будет легко выделять с помощью команды
# todo ls @phone
|
Другие примеры категорий: @online, @computer, @office, @home. Вы наверняка можете придумать кучу других категорий для своих задач.
Другим способом эффективного составления заданий является организация напоминания о проектах. Удобно иметь один список для каждого большого проекта. Чтобы отметить какое-то задание как принадлежащее проекту, добавляйте в конце текста задания p:проект
, например
# todo a "Переписать библиотеку спецфункций на C++ p:wavelet"
|
Аналогично, с помощью действия ls
можно будет легко извлекать задания, относящиеся к отдельному проекту.
Расширения
Программа представляет собой Bash-скрипт, модифицирование которого не представляет сложностей для умелого пользователя. Естественно, что появились несколько расширений Todo.txt. Расскажу о двух наиболее интересных.Календарь Tickler
Это расширение, написанное Tannie, позволяет разделить задания по дням и месяцам. Перед использованием расширения нужно дописать строку в конфигурационный файл Todo.txt примерно следующего содержания:
TICKLER_DIR="/home/oioki/todo/tickler"
|
Расширение
состоит из трех файлов. ticklerfolders.sh
нужно запустить один раз, скрипт создаст структуру каталогов для календаря. Затем нужно наложить патч
todotickle.diff
с помощью команды
# patch /usr/bin/todo < todotickle.diff
|
Наконец, нужно сделать так, чтобы скрипт
tickler.sh
(поместим его также в /usr/bin
) запускался каждый день, для обновления списков заданий из календаря. Первое, что приходит в голову - использовать планировщик cron. Строка cron для ежедневного обновления заданий в 9 часов утра выглядит так:
* 9 * * * /usr/bin/tickler.sh
|
Теперь можно переносить задания на какое либо число следующего месяца либо последующий месяц с помощью действия tickle
. К примеру, чтобы перенести задание под номером 3 на ближайшее 30 число, введите
# todo tickle 3 d30
|
Bird's Eye - обзор заданий
birdseye.py
- скрипт на языке Python, который может показать вам сводную статистику по выполненным и текущим проектам, а также категориям. Пример вывода скрипта:
|
Перепечатка статьи разрешается при условии указания на первоисточник - http://rus-linux.net/lib.php?name=/MyLDP/consol/todotxt.html