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

    Привет всем!
    Долгое время я пытался найти решение проблемы организации различного рода информации:
    • Личных и рабочих проектов — трекер проектов, документация, разделение на этапы, структуризация, приоритеты, риски, состояние отдельных этапов.
    • Простых 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.
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 17
    • 0
      спасибо за статью было интересно читать

      ps а для vim'а вы ничего подобного не посоветуете ? =)
      • 0
        К сожалению, нет. Только что последовать примеру посмотреть профиль yzh44yzh (чуть ниже) (:
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Как разберетесь, поделитесь опытом на хабре :)
        • +1
          Важно, что Org Mode позволяет работать с повесткой дня (agenda) и списком дел (TODO или определенные вами метки). Они могут создаваться на основе нескольких файлов. Все представления весьма гибко настраиваются. Для примера настройки и использования можно почитать статью http://www.newartisans.com/blog_files/org.mode.day.planner.php (англ.)
          • 0
            А я думал о чем я забыл написать - agenda, точно! Спасибо. За ссылку тоже, сам пользуюсь Org Mode вторую неделю, еще не освоил всех его возможностей.
          • 0
            Рекомендую отличный скринкаст на тему emacs org-mode
            • 0
              Хорошо, что кто-то наконец-то осветил org-mode на хабре, теперь осталось поднять карму, чтобы можно было запостить это дело в блог про emacs
              • 0
                Thx. Вернулся из отпуска, ща дополним и перенесем.
              • +1
                Сегодня в рассылке пробежала ещё одна хорошая вводная статья по org: http://pmade.com/articles/2008/project-p…

                Ещё полезно осилить произвольные свойства (см. «properties») как дополнение к тегам.
                • 0
                  (только это, скорее всего, позднее 4.67 появилось (сейчас уже 6.0x))
                  • 0
                    Thx, в частности вычитал про column-view - чрезвычайно удобен.
                  • 0
                    И ещё я не понял смысл `org-my`.
                    • 0
                      Видимо Viverra удобно так ) хотя по-моему проще кнопку назначить на открытие файла со всякой всячиной...
                      Сам использую набор org-файлов, так что подобная функция для меня не актуальна, хотя интересно :) просто открываю нужный файл и усе.
                      Сейчас кстати пишу статейку про свое использование org-mode... у себя в блоге опубликую.
                      • 0
                        ага, удобно :) с кнопками есть проблема, я их плохо запоминаю, они безличны :)
                        • 0
                          Я забиндил на одну из дополнительных кнопок на клаве.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое