Todo.txt — простой, но функциональный ToDo-лист

Продолжаем тему упрощения процесса планирования. В сегодняшней заметке — небольшой обзор концепции todo.txt. Эта концепция предлагает использовать для списков дел обычный текстовый файл, но при этом за счет простого синтаксиса иметь функционал, который во многом не уступает навороченным менеджерам задач. Скрытая мощь todo.txt порадует гиков, а простота — остальных пользователей.

todo.txt - простой, но функциональный ToDo-лист

Приложения для различных платформ

Итак, для нашего продвинутого ToDo-листа нам предлагается создать обычный текстовый файл todo.txt и работать с ним. В принципе, для работы будет достаточно любого текстового редактора. Но для того, чтобы увидеть принципы работы с todo.txt на примерах, хорошо бы установить себе приложение, умеющее работать с форматом todo.txt. С этого и начнем.

Десктоп (Linux, Windows, Mac OS)

Приложение для Windows называется todotxt.net, его можно скачать на Гитхабе (на выбор — установщик или портабельную версию). Интерфейс минималистичный, управление в основном привязано к горячим клавишам. Большинство действий выполняется нажатием одной клавиши (например, N для создания новой задачи, U для апдейта существующей и X для завершения задачи).

Todo.txt для Windows

Для Мака тоже имеется свое приложение. Оно также минималистично и легко управляется горячими клавишами. Во многом повторяет функционал вышеописанного приложения для Windows, но есть и некоторые различия. Есть поддержка даты выполнения (due:), пороговой даты (t:), повторяющихся задач (rec:), скрытых задач (h:1). Позволяет архивировать выполненные задачи в отдельный файл done.txt.

Todo.txt для Мака

Это только самые популярные решения, есть и другие (с их списком можно ознакомиться на главной странице todotxt.org). Например, есть еще кросс-платформный Todour.

Todour

В общем, концепция популярная и выбор приложений для работы с ней довольно широк, найдется вариант на любой вкус.

Также имеется расширение для Chrome, которое в том числе может работать в оффлайне как standalone-приложение.

Todo.txt - расширение для Chrome

Наконец, под Linux (а точнее для моей любимой Ubuntu) имеется индикатор на панель todo-indicator.

Индикатор todo.txt на панели Ubuntu

Для его установки нужно предварительно прописать соответствующий PPA:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install todo-indicator

Ну и напоследок скажу, что многие продвинутые текстовые редакторы имеют поддержку синтаксиса todo.txt (обычно посредством расширений). Например, для моего любимого Sublime Text есть для этих целей расширение «Todo.txt Syntax» (устанавливается стандартным способом через Package Control).

Мобильные платформы (Android, iOS)

Под Android имеется официальное приложение от todotxt.org (оно платное, но стоит копейки). Если же оно по каким-то причинам вас не устроит — по запросу «todo.txt» вы найдете в Play-маркете огромное количество других приложений на любой вкус.

Из бесплатных неофициальных приложений под Android наиболее популярен Simpletask.

Большинство мобильных приложений (включая упомянутые выше) из коробки синхронизируются через Dropbox и другие облачные сервисы. Таким образом, можно использовать один и тот же файл todo.txt для работы на десктопе и мобильном телефоне.

Под iOS есть свое приложение.

Приложение Todo.txt для Android

Принципы работы с todo.txt

Принципы работы с todo.txt на любых платформах и в любых приложениях примерно одни и те же. Имеется текстовый файл todo.txt, с которым и ведется вся работа. Каждая строка этого файла является пунктом в списке задач, а при помощи нехитрого синтаксиса можно разделять задачи по проектам, устанавливать приоритеты и сроки, назначать контекстные теги и т.п. Разберем этот синтаксис на примерах. (Далее я привожу свой вольный перевод официального мануала.)

Повторим уже озвученное первое правило todo.txt:

Каждая отдельная строка в вашем todo.txt представляет собой одну задачу.

Почему именно простой текст?

Простой текстовый файл не зависит от платформы (операционной системы) и используемых приложений. Он легковесный и его можно открыть и отредактировать в любом текстовом редакторе. С ним можно работать без доступа к интернету, он не зависит от стабильности работы веб-сервисов, и проблемы типа битого бинарного файла (с закрытым форматом) ему не страшны. Не нужно ничего экспортировать/импортировать, не нужны никакие базы данных. Вы можете манипулировать этим файлом как угодно, он открыт и прост.

Три направления создания эффективного ToDo-листа

Используя специальные условные знаки (простой синтаксис), вы можете создать список задач, соответствующий трем базовым принципам:

Приоритеты

Ваш список задач должен в состоянии дать вам знать, какие именно задачи являются наиболее важными и первостепенными для выполнения. В идеале первоочередные задачи должны автоматически отображаться в верхней части списка.

Проекты

Самый правильный и простой путь реализации большого проекта — это разбиение его на более мелкие задачи. Ваш todo.txt должен быть способен на разделение задач по проектам.

Контекст

Вы же знакомы с методологией GTD? Среди прочего она предполагает разделение задач по контекстам, то есть по местам и ситуациям, в которых конкретная задача будет оптимальна (или единственно возможна) для исполнения. Например, все телефонные звонки можно помечать контекстным тегом @phone, домашние дела — @home, покупки в магазине — @market и т.п.

В случае использования контекстов вы можете оптимизировать свое время. Например, сидя в машине или другом транспорте вы можете просмотреть контекст @phone и сделать несколько звонков.

Формат todo.txt

Проще всего формат (синтаксис) todo.txt будет рассмотреть на примере.
Рассмотрим следующую строку (и ниже разберем ее на составляющие):

x (A) 2017-10-15 2017-09-20 Название задачи +НазваниеПроекта @контекст due:2017-10-25

В этой строке:

  • x (латинская буква «x») — этим знаком отмечаются уже выполненные задачи (опционально)
  • (A) (латинские буквы «A», «B», «C» в скобках) — приоритет задачи (опционально)
  • 2017-10-15 (год-месяц-день) — дата завершения задачи
  • 2017-09-20 (год-месяц-день) — дата создания задачи
  • Название задачи — краткое название/описание задачи
  • +НазваниеПроекта (начинается с плюса, без пробелов) — название проекта (например, +РемонтКвартиры)
  • @контекст (начинается с собачки, без пробелов) — контекстный тег (например, @phone, @home, @market и т.п.)
  • due:2017-10-25 (два значения через двоеточие) — специальный ключ и его значение (в данном случае — крайний срок выполнения задачи)

Формат todo.txt преследует две цели:

  • Содержимое файла должно быть удобочитаемым для людей без необходимости использования специальных программ.
  • Пользователь должен иметь возможность редактировать файл интуитивно понятным и предсказуемым способом. Например, текстовый редактор с возможностью алфавитной сортировки строк может использоваться для сортировки задач.

Именно исходя из этих целей, например, каждая задача опционально начинается с приоритетов и/или дат, то есть список задач можно легко сортировать по приоритетам и датам. По тем же соображениям уже выполненные задачи помечаются символом «x» (при сортировке в большинстве случаев они попадают в конец списка).

Незавершенные задачи: 3 правила форматирования

Прелесть todo.txt — в отсутствии строгой структуризации. Вы ограничены только своей фантазией в назначении различных параметров для каждой задачи. Для начала, используйте специальные маркеры для индикации приоритета (например «(A)»), проекта (например «+РемонтКвартиры»), контекста (например «@phone»).

Ваш todo.txt может выглядеть примерно так:

(A) Поблагодарить маму за фрикадельки @phone
(B) Позвонить по поводу замены окон +РемонтКвартиры @phone
(B) Купить обои +РемонтКвартиры @market
Измерить размеры кухни +РемонтКвартиры
@market Купить хлеба

Фильтрация по контексту @phone (звонки) отобразит задачи:

(A) Поблагодарить маму за фрикадельки @phone
(B) Позвонить по поводу замены окон +РемонтКвартиры @phone

Фильтрация по проекту +РемонтКвартиры отобразит задачи:

(B) Позвонить по поводу замены окон +РемонтКвартиры @phone
(B) Купить обои +РемонтКвартиры @market
Измерить размеры кухни +РемонтКвартиры

Существует 3 правила форматирования для подобных списков задач.

Правило 1: Приоритет ВСЕГДА идет первым в названии задачи

Как уже говорилось выше, приоритет назначается большими латинскими буквами от A до Z, заключенными в круглые скобки. После обозначения приоритета обязательно ставится пробел.

Пример задачи с назначенным приоритетом:

(A) Позвонить маме

А вот этим задачам приоритет НЕ назначен:

Позвонить маме (A) @phone
(b) Купить тортик
(B)->Отправить отчет по работе на почту заказчику

Правило 2: Дата создания задачи может быть опционально задана сразу после приоритета и пробела

Если приоритета у задачи нет, то на первом месте в строке задачи идет дата ее создания (опять же, если она нужна). Дата создания пишется в формате YYYY-MM-DD (год-месяц-день).

Примеры задач с указанной датой создания:

2017-09-21 Напомнить про +СайтКомпании разработчикам
(A) 2017-09-26 Позвонить маме

А в этой задаче не указана дата создания:

(A) Позвонить маме 2017-09-27

Правило 3: Контекстные теги и проекты можно размещать в стоке задачи где угодно после приоритета и даты (если они есть)

  • Перед контекстным тегом нужно ставить пробел и символ @.
  • Перед названием проекта нужно ставить пробел и символ +.
  • Название проекта и контекстный тег могут содержать любые печатные символы, кроме пробелов.
  • Задача может иметь назначенные ей проект и контекст в количестве ноль, один или более.

Например, вот эта задача одновременно является частью проектов +Семья и +Близкие, а также соответствует контекстам @phone и @float:

(A) Позвонить маме +Семья +Близкие @phone @float

Вот в этой задаче нет контекстов:

Написать админу на admin@admin.com

А в этой задаче нет проектов:

Научиться складывать 2+2

Завершенные задачи: 2 правила форматирования

Есть две метки, касающиеся завершенных задач, и два соответствующих им правила.

Правило 1: Выполненная задача начинается с маленькой латинской буквы «x»

Если задача начинается с символа x (регистр важен), сразу после которой идет пробел, то она помечается как выполненная.

Пример выполненной задачи:

x 2017-09-27 Позвонить маме

А вот эти задачи не являются выполненными:

xylophone lesson
X 2017-09-14
(A) x Уточнить цену билетов на поезд

Использование символа x позволяет при сортировке в алфавитном порядке размещать выполненные задачи в конце списка.

Правило 2: Дата завершения задачи размещается сразу после символа «x» и последующего пробела

Пример:

x 2017-10-07 2017-10-05 Написать новую статью в +Блог @desktop

Если у вас в задаче также указана дата ее создания, то в строке задачи она должна располагаться через пробел сразу после даты завершения. Это сделано для того, чтобы при расположении в алфавитном порядке выполненные задачи сортировались по дате завершения. Многие приложения для работы с todo.txt удаляют метки приоритетов у завершенных задач. Если вы по каким-то причинам хотите этого избежать, то можно использовать упомянутый выше формат ключ:значение, в данном случае в виде pri:A.

Подсказка:
Дата завершения задачи указывается обязательно, а если при этом вы еще указали дату ее создания, то будет легко посчитать количество дней, которое ушло на выполнение задачи.

Расширяемость формата за счет дополнительных параметров

Разработчики приложений для работы с todo.txt могут добавлять дополнительные параметры к задачам. Однако они при этом обязательно должны использовать формат ключ:значение для добавления дополнительных параметров (например, due:2017-10-23 для обозначения дедлайнов).

И ключ, и значение не должны содержать в себе пробелов и лишних двоеточий (кроме разделяющего).

Заключение

Как видите, правила работы с форматом todo.txt совсем нехитрые, их можно освоить за несколько минут. Но при этом они очень гибкие и позволяют организовывать достаточно сложную и функциональную систему для работы со списком задач. Некоторые товарищи даже умудряются создавать на todo.txt полноценную GTD-систему, но мне кажется, что это уже перебор. Сам я раньше использовал GTG для GTD, а сейчас перешел на Trello, о котором планирую написать отдельную статью (возможно даже не одну). Впрочем, никто не мешает использовать для разных целей несколько инструментов одновременно. Например, Trello для GTD и todo.txt для более простых списков задач.