пятница, 16 мая 2014 г.

GTD с использованием vim

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

Однажды, я наткнулся на книгу Дэвида Аллена "Как привести дела в порядок" (ориг. "Getting things done" или GTD), которая многое поставила на свои места, но не сразу. Я не буду описывать здесь подробно систему GTD, с ней вы можете ознакомиться в вышеупомянутой книге. Дальнейшая информация предполагает некоторое знакомство с этой системой.

Для начала расскажу предысторию. Я не сразу начал пользоваться vim для этих целей, а использовал готовую утилиту для Gnome - GTG. Да, она удобна, интуитивна понятна и делает половину действий за пользователя. Последнее её достоинство оказалось самым большим недостатком, т.к. очень важной частью системы является анализ всей содержащейся в ней информации. Этот процесс должен производиться вручную, иначе куча дел просто зависнут в системе и вы перестанете обращать на них внимание, в дальнейшем она обрастёт множеством таких "зависших" дел, станет неэффективным, после чего вы перестанете её использовать. Поэтому, если и использовать подобные системы, нужно подходить к этому с умом и не надеяться, что программа всё упорядочит за вас.

Сам по себе vim не представляет собой удобное средство для системы, но используя некоторые плагины, можно сделать полноценную систему GTD. Один из таких плагинов -- vimwiki, который позволяет создавать списки с отметками о выполнении, перекрёстные ссылки между файлами с возможностью перехода, форматирование и прочее.

Использование системы

Итак, после установки vim и плагина для него, можно приступать к оформлению системы. Запускаем vim или графическую оболочку для него -- gvim, нажимаем вводим \ww, открывается начальная страница по умолчанию для vimwiki. Можно создать систему прямо начиная с начальной страницы, можно создать подстраницы. Я выбрал второе, т.к. использовал уже vimwiki для других целей, поэтому добавил следующее:

[[GTD|gtd/]]

Эта строчка является ссылкой на каталог gtd, по умолчанию будет произведён запуск средства для просмотра каталогов внутри vim, поэтому нужно дополнительно настроить использование vimwiki, но об этом позже.

Далее, в соответствии с GTD создадим подстраницы для отдельных списков (или в корне vimwiki, или внутри каталога gtd):

=GTD=

* [[inbox|Входящие]]
* [[current|Текущие действия]]
* [[projects/|Проекты]]
* [[../diary/diary|Запланированное]]
* [[someday/someday|Когда-нибудь, может быть]]
* [[../|База знаний]]
* [[waiting|В ожидании]]

Здесь первая строчка - это заголовок первого уровня, далее идёт маркированный список со ссылками на списки. Вообще структура системы может у вас отличаться от моей, т.к. тут уже каждый подстраивает систему под себя. Как видно, синтаксис vimwiki очень похож на markdown (почему бы разработчикам vimwiki не использовать markdown без изменений?).

Первая ссылка - это корзина, т.е. "Входящие" в терминологии GTD, сюда записываем всё, что необходимо сделать. В дальнейшем корзина входящих будет разбираться и сортироваться.

Следующая ссылка - список текущих действий, отсортированный по контексту. Примерная структура списка следующая:

=Общее=

=Звонки=

=За компьютером=

== Интернет ==

=По пути=

=На работе=

=Дома=

=Повестка дня=

Это лишь заголовки, под ними следует вставить списки дел, что можно сделать по разному, например, с использованием TODO-списков, их синтаксис похож на обычные списки, только добавляются квадратные скобки:

* [ ] Задание 1
* [o] Задание 2
    * [X] Подзадание 2.1
    * [ ] Подзадание 2.2
    * [ ] Подзадание 2.3
* [ ] Задание 3

Списки могут быть вложенные, выполнение одного задания можно отметить, нажав Ctrl-Space.

Далее в основном списке идёт ссылка на список проектов, я её вынес в отдельный каталог, чтоб не загромождать основной каталог системы. Структуру я описывать не буду, здесь можно сделать вложенные todo-списки или ссылки на страницы с проектами.

Следующая ссылка - запланированные дела, я использовал встроенную возможность vimwiki создавать ежедневные файлы. Файл со ссылками на ежедневные файлы по умолчанию находится в папке diary и называется соответственно. Помимо этого можно использовать плагин Calendar и соответствующую команду, введя которую, слева появляется окошко с календарём, в котором можно быстро перейти к нужному дню и создать/посмотреть список дел для конкретного дня.

Далее идёт список отложенных дел, пишем туда всё, что не собираемся делать в ближайшем будущем, но, возможно, когда-нибудь это понадобится. Также внутри этого файла я создал 43 ссылки в соответствии с системой Аллена - это 31 ссылка, соответствующая дням месяца, и 12 ссылок, соответствующих месяцам. Эти ссылки могут использоваться, чтобы откладывать задания или информацию на определённый срок, чтобы в нужный момент обратиться к ней. Подробнее можно ознакомиться в соответствующей литературе.

Следующий пункт - справочная информация. Т.к. у меня первоначально vimwiki использовалась для хранения справочной информации, то в приведённом примере это ссылка на начальную страницу vimwiki.

Ну и последняя ссылка - список дел, выполнение которых ожидается от других людей или зависят от определённых событий. Просматривая этот список можно контролировать делегированные задания другим людям, и, по возможности, напоминать им о выполнении этих заданий.

Настройки vim

Чтобы было удобно пользоваться системой, нужно настроить vim, привожу пример своего файла настройки:

let g:vimwiki_use_mouse = 1
let g:vimwiki_folding = 1
let g:vimwiki_fold_lists = 1
let g:vimwiki_use_calendar = 1
let g:vimwiki_dir_link = 'index'
let g:vimwiki_browsers = ['firefox']
set textwidth=80

По порядку опишу опции:

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

  2. Использование складок. Скорее всего, список текущих дел будет слишком длинный и не будет умещаться на экране, использование складок позволить свернуть отдельные участки текста в соответствии с заголовками. Поэтому открыв список, вы будете видеть только заголовки, а введя zo складка будет открыта, и появится соответствующий список.

  3. Эта опция позволяет сворачивать не только заголовки, но и вложенные списки.

  4. Для того, чтобы правильно работала команда Calendar, нужно указать эту опцию.

  5. Везде ссылки на главную страницу каталога я заменял на ссылку на сам каталог, чтобы vim открывал не каталог, а заглавную страницу, нужна эта опция. В моём случае это index, т.е. при переходе по ссылке, например [[projects/]], будет произведён переход к файлу projects/index.wiki.

  6. Указывает программу для открытия интернет-ссылок.

  7. Ширина текста - это стандартная опция vim, которая форматирует текст по ширине во время ввода (см. справку vim).

Все остальные опции, которые касаются vim, у меня находятся в стандартном файле ~/.vimrc, это же отдельный файл, который я расположил в ~/.vimwiki.gvimrc, чтобы эти настройки активировались только при запуске vimwiki. Чтобы его задействовать и открыть сразу vimwiki, нужно запустить vim со следующими опциями:

gvim -U ~/.vimwiki.gvimrc -geometry 100x40+512+400 /home/vladimir/vimwiki/index.wiki

Тут я указал ещё размер окна gvim и его расположение. Можно создать кнопку запуска на рабочем столе и добавить туда эту команду. Чем проще получить доступ к системе, тем удобнее будет ей пользоваться, и тем больше вероятность, что вы действительно будете эффективно ей пользоваться.


Комментариев нет:

Отправить комментарий