- Org mode for Emacs
- Org Mode
- Highlights
- Features
- Install
- Quickstart
- Contribute
- Outlining
- Agenda
- Babel
- Further reading
- More Org
- Worg, a World of Org
- Таблицы — Emacs и org-mode
- Введение в org-mode emacs
- Введение
- Базовые вещи
- Попробуем более крутые фишки
- Установка
- Заключение
- Организация информации — Emacs Org Mode
- Emacs Org Mode
- Примеры настройки Org Mode
Org mode for Emacs
Org Mode
Your life in plain text
A GNU Emacs major mode for convenient plain text markup — and much more.
Org mode is for keeping notes, maintaining to-do lists, planning projects, authoring documents, computational notebooks, literate programming and more — in a fast and effective plain text system.
Support via Liberapay
GitHub
PayPal
Created by Carsten Dominik in 2003, maintained by Bastien Guerry and developed by many others.
Highlights
Features
Install
Quickstart
Contribute
Org is a highly flexible structured plain text file format, composed of a few simple, yet versatile, structures — constructed to be both simple enough for the novice and powerful enough for the expert.
Get a glimpse of the expressive power Org offers in the example below. Click the headlines and links to discover how Org intelligently folds structural content.
Outlining
Agenda
Babel
Further reading
Beyond the quickstart and the manual, Org has a guide and a wealth of community-written documentation on Worg .
Nearly every Org user has a story to tell about how Org enables and empowers them — some have found it so useful that they have written (scientific) papers about the value of Org for conducting reproducible research. Some have produced third party tools to enjoy Org outside of Emacs, such as mobile applications.
More Org
The de facto mimetype for Org files is text/org . Org files use the .org extension. Most operating systems don’t know to open .org files in Emacs, but they can be configured to do so without much effort.
While the reference implementation of Org in Emacs lisp is by far the most featureful, there are many additional tools that work with Org.
Worg, a World of Org
Org and Org-mode have so many use cases that it is simply not possible to easily document them, let alone show them all off on a single page. As a result, Worg serves as a community wiki and provides a place to document and share information about all aspects of using and working with Org.
For example, Worg contains:
Worg is maintained as a Git repository of Org files that are published as an HTML website. New contributors are welcome.
Таблицы — Emacs и org-mode
На хабре уже есть посты про удивительные возможности org-mode — раз, два и три. В этом экскурсе я хочу рассказать ещё об одной возможности, с помощью которой можно пользоваться таблицами в текстовом редакторе (да, я про Emacs) без боли и унижения. А в org-mode таблицы достаточно просты и удобны:
Итак, поехали: активируем org-mode выполнив M-x org-mode RET или открыв файл .org в emacs.
1. Создание и навигация по таблице
Таблицы создаются просто: C-c | (shift + \ в английской раскладке). Этой же комбинацией можно превратить выделенную область текста в таблицу.
На запрос ‘Table size Columns x Rows [e.g. 5×2]:’ в минибуфере выбираем размер таблицы — и emacs рисует нам симпатичную таблицу в ASCII:
Перемещение между ячейками — Tab, Shift+Tab, RET. Перерисовка и выравнивание таблицы происходит при каждом перемещении или по С-с. Заполненная таблица выглядит примерно так:
2. Редактирование структуры таблицы
Emacs автоматически добавляет строку, если нажать Tab/RET в последней ячейке.
Добавление столбца выглядит интуитивно, если понимать добавление и удаление столбцов как расширение/сужение таблицы:
Удалить столбец — M-S-Left, добавить — M-S-Right
Удалить строку — M-S-Up, добавить — M-S-Down
Перемещение колонки влево/вправо — M-Left / M-Right. По аналогии, перемещение строки вверх/вниз: M-Up/ M-Down
3. Оформление и выравнивание таблицы
Если в начале первой ячейки поставить минус, emacs дорисует горизонтальную линию:
Выравнивание таблицы происходит автоматически, но можно и указать фиксированную ширину для столбца — задав число в треугольных скобках в любой ячейке этого столбца:
Слишком длинные ячейки укорачиваются и помечаются знаком =>, такие ячейки можно редактировать по C-c ` в отдельном буфере, по окончании редактирования — нажать C-c.
4. Функции в таблице
Суммирование
C-c + суммирует все числа в колонке, а С-y вставляет результат в текущую ячейку:
Сортировка
C-c ^ позволяет отсортировать строки между двумя горизонтальными линиями по текущему столбцу. На запрос в минибуфере можно выбрать: а — алфавитная сортировка, n — цифровая, t — по времени, A/N/T — соответственно, обратная сортировка:
Повторение предыдущей строки
S-RET копирует содержимое ячейки в следующую, а если текущая ячейка пуста — из предыдущей. Работает автоинкремент. Чем-то похоже на растягивание выделения в Excel (если не ошибаюсь, оно называется автозаполнение):
5. Заключение
Описанные возможности покрывают большинство базовых потребностей в таблицах. После данного экскурса можете смело удалять свой Calc/Excel и полностью пересаживаться на Emacs 😉
upd1. Добавил про сортировку и повторение предыдущей строки
Введение в org-mode emacs
По сути это даже не перевод, а свободное изложение моих мыслей на эту тему, после ознакомления с указанным источником. То есть — переработка. Некоторые, показавшиеся очевидными, вещи, были намеренно исключены из текста. Какие-то, показавшиеся полезными — добавлены.
Введение
Описано было довольно хорошо вот здесь.
Как его подключить
Если у Вас версия 22 и выше — он у Вас уже установлен. Если нет — установите новую версию. 🙂
Активация
( require ‘org-install )
( add-to-list ‘auto-mode-alist ‘ ( «\\.org$» . org-mode ))
( define-key global-map «\C-cl» ‘org-store-link )
( define-key global-map «\C-ca» ‘org-agenda )
( setq org-log-done t )
И с этих пор будем уверены, что все самое основное у нас есть. Что такое «org-store-link» и «org-agenda» определимся дальше.
Автор считает, что хорошо бы сделать отдельную папочку под *.org файлы.
Базовые вещи
Создание и эксплуатация нового файла .org
Просто заводим .org файл в намеченной папке, открываем его емаксом. И если у Вас в .emacs есть все, что мы писали выше, то автоматически включится org-mode.
Просто лист задач(headline)
Выглядит вот так:
headline — это то, что помечается звездочкой. Хорошо, что на официальном сайте Org-Mode оказалась шпора, которая помогла найти ту команду: M+RET, которая этот headline создает. Что бы каждый раз не тянуться к звездочке, можно использовать её.
Что бы создать хедлайн другого уровня, мы должны сначала создать хедлайн первого, и, находясь в нем, нажать M+S+(стрелка вправо\влево). Понятно, что нулевой уровень он нам создавать откажется.
Примечательно, что M+RET создает хедлайн одного и того же уровня с предыдущим. И если уровень первый — он перепрыгнет через одну строку.
Если впоследствии мы захотим пометить любой из хелдайнов, как задачу к выполнению, достаточно просто нажать C+c С+t. Тыкнув комбинацию повторно, мы увидим, что задача меняет свой статус с TODO, на DONE, и все станет выглядеть так:
А если нажать ещё(третий раз), то какой-либо статус уберется — останется только пометка о закрытии и сама надпись хедлайна.
Используем хедлайны, что бы структурировать документ
Иногда, лучшим путем, для описания ваших идей, будет их структурирование(outlining).
И вот как это может выглядеть на практике:
Теперь займемся наполнением
Вы можете легко добавить любой текст, под своими заголовками(все теми же хедлайнами):
Ссылки в другие места
Для того что бы создать ссылку достаточно использовать такой шаблон — [[ссылка][описание]].
И вот так это будет выглядеть во время редактирования:
А после редактирования останется только само описание:
Для создания ссылки можно ещё использовать комбинацию C+c C+l. В мини-буфере emacs предложит сначала написать ссылку, затем после нажатия RET — её создать. Находясь в мини-буфере так же можно нажать TAB, для просмотра, какие виды ссылок бывают.
Что бы открыть вновь созданные ссылки необходимо навести точку на ссылку и тыкнуть C+c C+o. Или C+u C+c C+o — если Вы хотите открыть её в другом окне.
Ради интереса, можно перейти в другой файл, нажать там C+c l. И ссылка на этот файл поместится в хранилище ссылок. Перейдя в любой наш файл .org мы можем извлечь из этого хранилища любые сохраненные ссылки, с помощью той же команды C+c C+l.
Самые наблюдательные читатели уже могли заметить, что эта команда как раз и есть та, которую мы вписали в
Обзор документа
Когда Вы почувствовали, что хочется немного уменьшить объем написанного, можно нажать shift-TAB и получится вот так:
Заметьте, что теперь показываются только заголовки первого уровня.
И когда мы нажмем это самое ещё пару-тройку раз, он нам будет разворачивать все больше:
И больше:
Попробуем более крутые фишки
До того, как мы закончим, попробуем освоить: глобальный TODO лист(global TODO list), составление графика(scheduling), и повестку дня(agenda) в org-mode. Все это используется для разных видов отображения TODO вещей — с разными приоритетами, из разных .org-файлов, для удобства.
Установка
Для начала нам необходимо задать переменную org-agenda-files, которая скажет org-mode, в каких файлах нам искать TODO, и запланированные(scheduled) вещи.
Давайте представим, что у нас есть 3 файла .org: один для работы, другой для дома, третий для школы.
Тогда мы должны добавить в наш файл
Глобальный TODO лист
Тыкнем C-c a t, что бы в него войти. Org-mode просканирует все org-agenda-files и представит список всех действующих TODO штук:
Там Вы можете перемещать курсор на любую TODO вещь, и нажать t, что бы отметить её как завершенную(DONE). Или нажать RET, что бы в неё войти и перепрыгнуть в то место и в тот файл, где она расположена.
Планирование задач и использование повестки дня
Давайте попробуем навести курсор на любую задачу. При нажатии C+c C+s откроется календарь, где мы сможем выбрать любую дату:
После того как мы это сделаем и нажмем RET, под задачей появится пометка, «запланировано»(SCHEDULED), с датой:
Так же мы можем использовать C+c C+d, для обозначения «крайних сроков»(DEADLINE), по аналогичному принципу.
Теперь сохраним наш файл и нажмем C+c a a. Будет отображено расписание на эту неделю:
Теперь можем нажать l (как Leonid), что бы включить вид «log». Будет это выглядеть примерно так:
Заключение
Это было всего лишь резюме возможностей emacs Org-Mode. Для того, что бы получить более подробную информацию о нем, ниже я предоставил несколько ссылок.
Организация информации — 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-книг «чтоб-были-под-рукой» (хотел вставить скриншот трекера проектов, но не нашел несекретной 🙂 информации):
Примеры настройки 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.