Программист
0,0
рейтинг
2 июля 2009 в 14:56

Разработка → Учет затраченного времени с Emacs и org-mode

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

В этой статье я расскажу об одном из способов учета затраченного времени — org-mode в Emacs.
Этот способ хорош тем, что он очень гибок и при желании все настраивается под себя, работает практически на всех операционных системах и платформах, и довольно прост в использовании.

image

Сам я работаю практически исключительно в Linux, но в этой статье для чистоты эксперимента и привлечения в ряды пользователей Emacs пользователей альтернативной ОС буду использовать Windows XP.
Хочу показать, что Emacs — это удобно даже под Windows и совсем не страшно (слухи о необходимости ножного привода для набора комбинаций клавиш Emacs сильно преувеличены :-) ).
В Linux все примерно также (Emacs лучше поставить при помощи менеджера пакетов дистрибутива).

Итак, для начала нам нужен Emacs.
Emacs — это текстовый редактор (есть много мнений по этому поводу, но для целей этой статьи будем считать его текстовым редактором :-) ) из мира Unix, но прекрасно работающий и в Windows.
А org-mode — это один из множества режимов для Emacs, имеет множество возможностей (в том числе по учету времени) и с недавних пор входит в стандартный дистрибутив GNU Emacs.

Качаем GNU Emacs отсюда: http://ftp.gnu.org/gnu/emacs/windows/emacs-22.3-bin-i386.zip (37 MB)
Распаковываем архив (лучше в директорию без пробелов).
Допустим, мы распаковали в D:\emacs-22.3, тогда в D:\emacs-22.3\bin будет файлик addpm.exe, который нужно один раз запустить, и он добавит в меню «Пуск» ярлык для запуска Emacs.
А можно этот файлик и не запускать — не обязательно, а просто сразу запустить D:\emacs-22.3\bin\runemacs.exe

В общем, запускаем Emacs, создаем новый файл (кликаем на иконку), файлу даем расширение .org (не обязательно, но удобно; можно и .txt и какое угодно, в общем-то).
В будущем можно будет настроить, что для файлов с расширением .org будет по умолчанию включаться org-mode (в Linux часто уже сразу настроено), а пока просто наберем Alt+x org-mode ENTER (вместо Alt+x в Emacs принято писать M-x), после чего буфер с открытым файлом перейдет в режим org-mode.

Теперь создадим несколько пунктов для TODO-списка: каждый пункт будем начинать со звездочки и слова TODO большими буквами.
Звездочки в org-mode — это способ выделять уровни заголовков. Одна звездочка — это как <h1> в HTML, две звездочки — <h2> и т.д. Лучше, конечно, пять звездочек, но это я отвлекся…
В пунктах TODO-списка можно указывать и дополнительную информацию, не только заголовок. Например, я добавил ссылку (ссылки в org-mode — кликабельные).

image

Далее идем в Org -> Logging work и ставим галочку «Record DONE Time», чтобы при завершении выполнения пункта из TODO списка сохранялось время завершения — это удобно.

А теперь — самое интересное: переходим в тот пункт списка, над которым начинаем работать (кликаем), и из того же меню Org -> Logging work выбираем Clock in (естественно, в будущем вам будет удобней делать все это горячими клавишами, благо они подписаны возле пунктов меню).
Все, время пошло. Закончили работать над этим пунктом или просто собрались на обед — Org -> Logging work -> Clock out. Там можно делать сколько угодно раз — время будет суммироваться.

image

Когда работа по какому-либо пункту полностью выполнена, надо перевести ее из состояния TODO в DONE: Org -> TODO Lists -> TODO/DONE, при этом возможно работающий по этому пункту счетчик времени будет остановлен.

В конце дня (часа, недели месяца, за определенный период — все настраивается) можно создать сводную таблицу затраченного времени.
Для этого переходим в часть файла, где мы хотим разместить сводную таблицу (лучше в самом начале, до всех пунктов) и выбираем Org -> Logging work -> Create clock table.

image
Да, картинка та же, что в самом начале

Из этой таблицы можно удалить ненужные нам столбцы/строки, экспортировать в файл (все через меню Tbl — это тоже часть org-mode) и отослать в письме заказчику:

*Total file time* *24:05*
DONE Скачать Emacs 0:01
TODO Написать статью на habrahabr 0:02
TODO Мир во всем мире 24:02

В общем-то, все.

Конечно, возможности org-mode не ограничиваются только учетом времени: например, есть даже встроенный табличный процессор типа Excel, с формулами.
Если захотите подробней почитать про org-mode: orgmode.org/org.html или встроенная документация (в меню Org -> Documentation -> Info Documentation).
Еще на youtube есть запись интересного выступления автора org-mode в Google: www.youtube.com/watch?v=oJTwQvgfgMM
Интересна также статья habrahabr.ru/blogs/emacs/28098

Ну а про сам Emacs вообще документации горы.
Сергей Дымченко @kit
карма
81,4
рейтинг 0,0
Программист
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (17)

  • 0
    Courier New страшен как тридцать седьмой…

    Чтобы обновить данные таблицы, нужно переместить на нее курсор (point) и нажать C-c C-x C-u.
    • 0
      DejaVu Mono?
      • 0
        К сожалению, в Windows он тоже страшен. Consolas.
        • 0
          Ещё Lucida Console неплох.
        • 0
          Сглаживание ClearType поможет Вам увидеть истинную красоту DejaVu Mono ;)
          Из тройки перечисленных моноширинных шрифтов, DejaVu Mono мне нравится больше остальных.
  • +2
    Пользуюсь org-mode и с каждым днем все больше и больше удивляюсь его возможностям. Статья мне интересна. +1
    • 0
      Я тоже постоянный пользователь. Особенно мне нравится то, что его можно постоянно приспосабливать под свои нужды.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      не подскажите инструмент на замену emacs+org-mode с более фантанистым интерфейсом и юзабилити?
      • 0
        Eclipse + Mylyn
        • +1
          А вы использовали emacs+org-mode перед тем как предлагать Mylyn?
          Я использовал mylyn, если это и есть настоящее юзабилити, то лучше останусь на org-mode ;)
          • 0
            Нет, не использовал. А что именно вас не устроило в удобстве Mylyn?
            • 0
              Очень удобно работать с текстовыми буфферами, в которых постояно происходит брейнсторминг и рождаются задачи. В mylyn эти визарды/деревяшки задач — точно не для меня…
  • 0
    Спасибо за статью, как раз этой ночью прочитал по диагонали /usr/share/doc/org-mode/org.pdf с целью поиска идеального timetracker-а.
  • 0
    Большущий плюсик!

    Спасибо, полезно.
  • 0
    Большое спасибо.
  • 0
    Для будущих org-mode wizards рекомендую начать с этого туториала:
    doc.norang.ca/org-mode.html

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