Наши партнеры

UnixForum





Библиотека сайта 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

Вывод:

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 modify для модификации заданного свойства задачи:

$ 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 task
h2>Завершение задач

Пометить программу как выполненную можно с помощью следующей команды:

$ 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 показал себя прекрасным менеджером задач для тех, кто проводит большое количество времени в терминале.