Last Updated on November 13, 2022
Org mode is a mode for the Emacs text editor. It’s designed to keep notes, maintain TODO lists, plan projects, and author documents with a fast and effective plain-text system. It’s particularly strong at scheduling tasks.
The system includes a lightweight markup language for plain text files allowing lines or sections of plain text to be hierarchically divided, tagged, linked, and so on.
Org mode is, in fact, a powerful system for organizing projects, tasks and notes in the Emacs editor. Major features include fast outline and table editing, TODO lists, agendas, scheduling and deadlines, cross-references and hyperlinks to arbitrary resources, as well as customisable document publishing in PDF and HTML from simple plain text markup.
Org mode stores all data in human-readable plain text files, ensuring complete portability, simple integration with other text processing tools and support for revision-tracking and synchronization using any version control system.
Org files can serve as a single source authoring system with export to many different formats such as HTML, LaTeX, Open Document, and Markdown. New export backends can be derived from existing ones, or defined from scratch.
org markup is supported by the GitLab and GitHub code repositories, the JIRA issue tracker, Pandoc, and others.
Org mode is free software published under the GNU General Public License and can be used in Emacs on all major operating systems.
Ways to Learn
The Org Manual
By Carsten Dominik and contributors (PDF; 304 pages)
This manual is the official Org reference documentation from the Org 9.1 distribution.
Chapters cover:
- Document Structure – explains outlines, headlines, visibility cycling, motion, structure editing, sparse trees, plain lists and footnotes.
- Tables – Org comes with a fast and intuitive table editor.
- Hyperlinks – link format, internal links, external links, handling links, and targeted links.
- TODO Items – using TODO states, multi-state workflows, progress logging, priorities, breaking down tasks, and checkboxes.
- Tags – tag inheritance, setting tags, tag groups, and tag searches.
- Properties – properties are like tags, but with a value.
- Dates and Times – timestamps, creating timestamps, deadlines and scheduling, and clocking work time.
- Capture – Refile – Archive.
- Agenda Views – Agenda files, Agenda dispatcher, built-in agenda views, agenda commands, and custom agenda views.
- Markup for rich export – structural and markup elements, images and tables, literal examples, include files, and embedded LaTeX.
- Exporting – export options, the export dispatcher, ASCII/Latin-1/UTF-8 export, HTML export, LaTeX and PDF export, and iCalendar export.
- Publishing – includes a publishing management system that allows you to configure automatic HTML conversion of projects composed of interlinked org files.
- Working with source code – explains a number of features for working with source code, including editing of code blocks in their native major-mode, evaluation of code blocks, tangling of code blocks, and exporting code blocks and their results in several formats.
It’s published under the GNU Free Documentation License.
Useful Guides:
David O’Toole Org tutorial
Org tutorials – huge compilation of tutorials.
Good and Bad about Org mode
Advantages | Disadvantages | ||
---|---|---|---|
Structured editing with plain text files with a simple markup | Complexity; not the simplest system/language to learn | ||
Very powerful | Difficult to recommend if you dislike Emacs although some systems can work with org files | ||
Wide feature-set which meets users' requirements | Can be a real time sink | ||
Integration with Emacs | Not suitable for folk who hate tinkering | ||
Good range of export options including LaTeX and HTML |
Useful Software
pandoc – converts files from one markup format into another.
lazyblorg – blogging with Org-mode for very lazy people.
orgmode for Sublime Text 2 & 3 – adds support for Org mode’s .org syntax files to Sublime Text.
org-caldav – Caldav sync for Emacs orgmode.
Vim users should try:
vim-orgmode – text outlining and task management for Vim based on Emacs’ Org-Mode. vim-orgmode aims at providing the same functionality offered by org-mode for Vim.