Pull to refresh

Организация информации — Emacs Org Mode

Reading time 5 min
Views 27K
Привет всем!
Долгое время я пытался найти решение проблемы организации различного рода информации:
  • Личных и рабочих проектов — трекер проектов, документация, разделение на этапы, структуризация, приоритеты, риски, состояние отдельных этапов.
  • Простых TODO-списков — ведение списков дел в условиях сильного распараллеливания деятельности. Причем, чтобы обязательно было быстро, удобно, функционально и всегда под рукой.
  • Личной библиотеки — упорядочение огромного количества e-книг по категориям (со вложенными) + легкий доступ к ним чтобы был. Здесь сначала пытался просто понятно выстроить структуру папок, но масштабы уже не те, чтобы можно было потом быстро найти нужную книгу.

Ниже, я описал (знакомые мне) средства, которые могут быть использованы для решения этих задач. Лично для себя выбрал Emacs Org Mode, так что именно его описанию уделена большая часть текста.

  • Microsoft Office Project — от этого варианта отказался сразу, слишком громоздкий и не подходит для всех описанных задач. IMHO, в нем нормально можно только планы проектов составлять, да и то не для себя, а на корпоработе, когда важно пользоваться стандартным средством.
  • ToDoList — великолепная вещь, после первого знакомства (натолкнулся случайно на CodeProject.Com) не прекращал пользоваться, периодически обновляясь. У программы богатые возможности организации, графический интерфейс и прекрасное юзабилити. Написано это дело на MFC, то есть родной средой для него является Windows. Текущая версия (5.5 + еще пара цифр) имеет просто все, что нужно, а также весьма стабильна (впрочем, у меня ToDoList еще с 4-х версий ни разу не падал). Есть импорт и экспорт из/в кучу форматов, включая MS Project. Есть возможность, называемая «Transform tasklist» — как пример, можно по шаблону сохранить список в html по выбранным фильтрам. Также возможно отфильтровать видимые задания по категориям, типам, выполнению, риску, ответственному и приоритету. Еще стоит упомянуть, что программа отлично масштабируется под ваши нужды — можно скрыть большинство полей и придать ей компактный вид, и я не знаю задач, которые потребовали бы больше фунциональности и атрибутов, чем имеется в этой программе. Таже она полностью portable, т.е. можно носить на флешке и freeware (исходные коды доступны на codeproject). В общем, рекомендую всем, кому вдруг не понравится о_О следующий вариант.
  • Emacs Org Mode — всем пользователям Emacs посвящается! Мое мнение — наличия Org Mode в Emacs достаточно, чтобы начать пользоваться им, особенно если вы приверженец простоты работы с простым (plain) текстом простыми клавиатурными комбинациями. Как только я ввел команду M-x org-mode я забыл про ToDoList (что не делает его плохой программой). В Emacs версий 22 (насчет более старых не уверен) присутствует, хоть и устаревшая (4.67c), но вполне работоспособная версия Org Mode. Краткое описание привожу ниже, а полный манул можно найти на OrgMode.Org, там же скачать свежую версию.


Emacs Org Mode


Если вкратце, то Org Mode — это plain-text версия ToDoList (если совсем строго, то верно обратное), это режим Emacs для содержания коротких заметок, TODO-списков, для планирования проектов, а также для организации любой информации, которую можно представить текстом и в виде дерева. Собственно, представление информации в виде дерева, ее упорядочивание, сортировка — основная задача Org Mode.

Org Mode реализован поверх outline-mode, что позволяет сворачивать деревья и их ветви. Вся информация представлена в Org Mode в виде деревьев, в которые организованы TODO-записи и обычные заголовки. Заголовок — обычная строка текста с предшествующими звезочками (*). Количество звездочек — уровень вложенности заголовка. Если перед текстом, но после звездочки написать TODO, это уже TODO-запись, и с ней можно делать на порядок больше вещей, чем с обычной.

Под заголовком может быть произвольный текст, другие заголовки, ссылки и таблицы. Кстати, ссылки и таблицы — это еще две отдельные истории! Ссылки позволяют в удобном виде [[url][title]] создавать ссылки на любые элементы файловой системы, веб-ресурсы, ссылки mailto и usenet, а также ссылки на Org-элементы текущего или любого другого файла. Очень удобный функционал. Лично я с помощью ссылок в Org Mode упорядочил свою e-библиотеку.

Таблицы — никогда не думал, что в текстовом режиме (все файлы Org Mode — простые текстовые файлы) можно реализовать такое количество функций для работы с таблицами: автоматическое расширение столбцов, обмен позиций у строк, столбцов, высчитываемые ячейки, формулы — не Excel конечно, но зато все это делается без отрыва пальцев от основного блока клавиатуры, это ведь Emacs!

Agenda Views. Для просмотра запланированных на сегодня / на текущую неделю дел, или же просто списка всех TODO, Org Mode содержит Agenda views — можно назвать это повесткой дня/недели. Можно настроить список файлов, из которых Agenda будет собирать информацию. Планирование задач — это фактически расставление заголовкам статусов и timestamp-ов.

Что еще… Файлы Org Mode могут быть экспортированы в HTML, LaTeX, iCalendar и Freemind файлы, в нем есть поддержка планирования (различные timestamps, deadlines, повторяющиеся задания и т.д.), любым заголовкам можно присвоить произвольные статусы, теги и свойства, можно задавать произвольные линейки статусов (TODO — WAIT — DONE, DEVEL — TESTING — BUG — DONE, ...).

Внешний вид Org Mode — список e-книг «чтоб-были-под-рукой» (хотел вставить скриншот трекера проектов, но не нашел несекретной :) информации):

Emacs Org Mode

Примеры настройки Org Mode


Здесь фактически комментарии к части содержимого моего .emacs:

(custom-set-variables
Настройка переменных Org Mode — списка файлов для Agenda Views, директории по умолчанию для Org Mode и файла заметок по умолчанию:
'(org-agenda-files (quote («p:/documents/org/fto.org»)))
'(org-default-notes-file «p:/documents/notes»)
'(org-directory «p:/documents/org»)
)

Подключение Org Mode:
(require 'org-install)

Включение автоматического переключения в Org Mode при открытии файла с расширением .org:
(add-to-list 'auto-mode-alist '("\\.org\\'". org-mode))

Несколько удобных shortcuts для сохранения ссылки на текущий заголовок и запуска org-agenda:
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)

Задание цепочек ключевых слов (переключение между словами клавишами Shift + Right или + Left с курсором на заголовке). "|" отмечает границу, если заголовок в статусе после этого разделителя, то он «выполнен», это влияет на планирование и отображение в Agenda Views:
(setq org-todo-keywords
'((sequence «TODO» «WAIT» "|" «DONE»)
Здесь — анализ, первичная разработка, тестирование консультантом, доработка, польз. тестирование, отказ от разработки и перенос на боевое окружение :) :
(sequence «ANLZ» «FDEV» «CTST» «RDEV» «UTST» "|" «CNCL» «TRNS»)
)

Задание произвольного начертания ключевым словам:
(setq org-todo-keyword-faces
'((«TODO». (:foreground «red» :weight bold))
(«WAIT». (:foreground «orange» :weight bold))
(«DONE». (:foreground «green» :weight bold)))
)

Требуется для корректной работы Org Mode:
(global-font-lock-mode 1)

Об этом в следущем посте быть может :) :
(require 'mercurial)

А это тема с картинки :) :
(require 'color-theme)
(color-theme-initialize)
(color-theme-charcoal-black)

Теперь доступ к своему файлу вы сможете получить через M-x org-my
(defun org-my()
(interactive)
(find-file «p:/documents/org/default.org»)
)

Замечу, что возможно некоторые настройки не будут работать в версии Org Mode по умолчанию, в любом случае стоит скачать свежую.

Спасибо за внимание, надеюсь, что кто-нибудь, как и я, найдет для себя в Org Mode кучу полезных возможностей. Вот кстати еще пара интересных линков: Using Emacs org-mode for GTD, Using org-mode as a Day Planner, на английском.

Если же вам все-таки хочется чего-нибудь попроще и с нормальным GUI, а также не хочется начинать пользоваться Emacs, что поначалу бывает болезненно — предлагаю как альтернативу ToDoList.
Tags:
Hubs:
+6
Comments 17
Comments Comments 17

Articles