Библиотека сайта rus-linux.net
Taskwarrior - органайзер в командной строке
Оригинал: Taskwarrior – A Command line TODO Task Manager Application
Автор: SK
Дата публикации: 7 апреля 2017 года
Перевод: А. Кривошей
Дата перевода: июль 2017 г.
Люди часто считают, что делать заметки необязательно, можно держать все необходимое в памяти. Раньше я также так думал, однако на собственных ошибках понял, что ошибался. Для собственных нужд я нашел полезную утилиту командной строки под названием "Taskwarrior". Это бесплатная программа с открытым исходным кодом для ведения списка дел в терминале. Это эффективная, гибкая, быстрая и ненавязчивая утилита. Вы можете добавлять любые типы задач, с ежедневным, еженедельным или ежемесячным повторением, персональные цели, рабочие задачи, семейные события, и управлять всем этим из командной строки.
Конечно, имеется большое количество графических менеджеров списков дел и аналогичных веб-приложений. Причина, по которой я выбрал именно эту программу заключается в том, что я работаю большей частью в командной строке. В этой статье я покажу вам, как эффективно управлять своими задачами в терминале с помощью Taskwarrior.
Установка
Taskwarrior имеется в системных репозиториях большинства современных дистрибутивов Linux.
В Arch Linux и его производных, таких как Antergos, Manjaro Linux, установка производится с помощью следующей команды:
$ sudo pacman -S task
В системах на базе RPM, как Fedora установка осуществляется следующим образом:
$ sudo dnf install task
В SUSE/openSUSE:
$ sudo zypper in task
В Debian, Ubuntu, Linux Mint:
$ sudo apt-get install task
Если программы нет в репозиториях вашего дистрибутива, вы можете установить ее с помощью менеджера пакетов Linuxbrew, как показано ниже:
$ brew install task
Использование
Работать с Taskwarrior несложно. Вы запомните все команды за пару дней. Ниже я опишу команды, которыми пользуюсь чаще всего.
Перед использованием программы запустите команду task, чтобы создать файл ~/.taskrc. В этом файле хранятся все настройки Taskwarrior.
$ task
Пример вывода:
A configuration file could not be found in Would you like a sample /home/sk/.taskrc created, so Taskwarrior can proceed? (yes/no) y [task next] No matches.
Добавление задач
Теперь давайте добавим в Taskwarrior несколько задач.
Для добавления задачи просто введите:
task add Write a guide about Taskwarrior
Вывод будет примерно таким:
Created task 1.
Давайте добавим побольше задач.
task add Fix Laptop OS problem task add Clean living room task add Pay Internet bill task add Recharge mobile
Вы можете добавлять столько задач, сколько вам нужно.
Просмотр задач
Для просмотра списка доступных задач введите:
$ task list
или
$ task ls
Вывод:
ID Description 3 Clean living room 2 Fix Laptop OS problem 4 Pay Internet bill 5 Recharge mobile 1 Write a guide about Taskwarrior 5 tasks
Как можно видеть, у нас всего пять задач.
Здесь выводится ID, приоритет и описание. Вы можете также вывести детальную информацию о каждой задаче с помощью команды:
$ task long
Пример вывода:
ID Created Mod Description 5 2017-04-06 1min Recharge mobile 4 2017-04-06 1min Pay Internet bill 3 2017-04-06 1min Clean living room 2 2017-04-06 1min Fix Laptop OS problem 1 2017-04-06 1min Write a guide about Taskwarrior
Эта команда выводит также время жизни и теги для каждой задачи.
Для просмотра одной определенной задачи используется ее ID:
task <Task-ID-Number> info
Пример:
$ task 5 info
Пример вывода:
Name Value ID 5 Description Recharge mobile Status Pending Entered 2017-04-06 17:45:59 (2min) Last modified 2017-04-06 17:45:59 (2min) Virtual tags PENDING READY UNBLOCKED LATEST UUID 8c4ab173-df08-4b61-b813-f5eb0042b930 Urgency 0
Добавление приоритета задачи
Как правило, важные задачи нужно выполнять первыми. Для этого определенным задачам мы можем добавить приоритет. В Taskwarrior параметр приоритета имеет три значения.
H – высокий приоритет
M – средний
L – низкий.
Вы можете добавлять приоритет задачи в зависисмости от ее важности.
$ task add priority:H Buy Groceries
Добавление тегов к задаче
Для того, чтобы, например, быстро находить задачи, относящиеся к одной группе, неплохо прикреплять к задачам теги.
Рассмотрим пример.
$ task add +household Buy Groceries
Для просмотра списка задач, содержащих определенный тег, введите:
$ task list +household
Вывод:
ID Age Tags Description Urg 7 43s household Buy Groceries 0.8 1 task
Вы также можете добавлять несколько тегов к одной задаче, как показано ниже.
$ task add +tamil +language Learn Tamil Language
Добавление примечаний к задачам
Taskwarrior также позволяет добавлять к задаче примечания.
$ task 8 annotate Start learning Tamil alphabets
Вывод:
Annotating task 8 'Learn Tamil Language'. Annotated 1 task.
Группировка задач в проект
Хорошей практикой также является группировка задач в категории или проекты. Намного проще стартовать или завершить группу задач.
Для того, чтобы понять, как группировать задачи в проекты, рассмотрим следующий пример:
$ task add "Buy Groceries" project:personal +household
Вывод:
Created task 10. The project 'personal' has changed. Project 'personal' is 0% complete (1 task remaining).
Добавим другую задачу.
$ task add "Clean living room" project:personal +household
Вывод:
Created task 11. The project 'personal' has changed. Project 'personal' is 0% complete (2 of 2 tasks remaining).
Как можно видеть из этого примера, я добавил две задачи в один и тот же проект, названный "personal", и пометил их тегом "household". Теперь вы легко можете фильтровать задачи по названию проекта.
$ task burndown.daily project:personal
Вывод:
Мы также можем просматривать прогресс по задаче еженедельно:
$ task burndown.weekly project:personal
Это поможет вам отслеживать выполнение работ.
Назначение дат выполнения задач
Некоторые задачи необходимо выполнять немедленно, другие могут подождать. В Taskwarrior имеются встроенные ключевые слова, такие как tomorrow, today, someday.
Назначить дату выполнения определенной задачи можно с помощью команды:
$ task add Fix Laptop OS problem due:today
Значит задача должна быть выполнена сегодня. Аналогично можно назначить время выполнения неделя.
$ task add Fix Laptop OS problem due:'1week'
Один месяц:
$ task add Fix Laptop OS problem due:'1month'
Либо задать определенную дату:
$ task add Fix Laptop OS problem due:due:2017-04-30
После того, как пройдет заданная дата, задача получает виртуальный тег "READY".
Вы можете проверить такие задачи с помощью команды:
$ task ready
Чтобы удалить дату выполнения из заданной команды, введите:
$ task 1 modify due:
Эта команда удалит дату выполнения у команды с ID 1. Узнать больше о датах выполнения можно по этой ссылке.
Редактирование и модификация задач
Редактирование свойств задачи производится с помощью команды:
$ task 1 edit
Эта команда откроет заданную задачу в редакторе по умолчанию, и вы сможете вручную отредактировать свойства этой задачи.
Вместо редактирования задачи можно использовать команду task
$ task 2 modify priority:L
Эта команда установит низкий приоритет для задачи 2.
Вы также можете изменить дату выполнения, как показано ниже.
$ task 1 modify due:5d
Эта команда установит время выполнения задачи1 в 5 дней.
Запуск задач
Taskwarrior поможет найти задачи, которые находятся в работе. Для отслеживания задач, над которыми в настоящее время идет работа, просто сделайте их активными, как показано ниже.
$ task 1 start $ task 2 start
Вы можете просмотреть список активных задач с помощью следующей команды:
$ task list
Вывод:
Как вы можете видеть на скриншоте, все активные задачи выделяются, и их легко идентифицировать.
Для остановки активной задачи введите:
$ task 1 stop
Вы можете остановить сразу все выполненные задачи.
Поиск задач
Вы можете искать определенные задачи с помощью регулярных выражений.
Например, приведенная ниже команда выводит задачи, которые содержат слово "Tamil".
$ task '/.* Tamil/' list
Вывод:
ID Age Tags Description Urg 8 56min language tamil Learn Tamil Language [1] 1.7 1 taskh2>Завершение задач
Пометить программу как выполненную можно с помощью следующей команды:
$ task 1 done
Вывод:
Completed task 1 'Write a guide about Taskwarrior'. Completed 1 task.
Теперь вы можете просмотреть список оставшихся задач с помощью команды:
$ task next
Удаление задач
Если задача вам больше не нужна, просто удалите ее:
$ task 10 delete
Подтвердите удаление заданной задачи.
Delete task 10 'Fix Laptop OS problem'? (yes/no) yes Deleting task 10 'Fix Laptop OS problem'. Deleted 1 task.
Нужно узнать количество выполненных задач? Без проблем.
$ task timesheet
Вывод:
2017-04-02 - 2017-04-08 Completed (2 tasks) Project Due Description Write a guide about Taskwarrior Fix Laptop OS problem Started (0 tasks)Recurring tasks
Некоторые задачи необходимо выполнять ежедневно или еженедельно. Например, приведенная ниже команда будет по пятницам напоминать мне, что в субботу мне необходимо убраться в гостиной, и Taskwarrior будет делать это каждую неделю.
$ task add Clean living room due:'Saturday' wait:'Friday' recur:'1week'
Приведенная ниже команда будет в конце каждого месяца напоминать об оплате счета за интернет.
$ task add due:eom recur:monthly Pay Internet bill
Я рекомендую вам почитать man-страницу Taskwarrior для более близкого знакомства с его возможностями.
$ man task
Также, много полезных подсказок можно найти на странице документации Taskwarrior.
Заключение
Теперь вы знаете, как добавлять, просматривать, управлять и удалять задачи из командной строки с использованием Taskwarrior. Во время моего тестирования Taskwarrior показал себя прекрасным менеджером задач для тех, кто проводит большое количество времени в терминале.