Учет затраченного времени с 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 вообще документации горы.
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 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

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