org-mode/intro.org

2.2 KiB

Introduction

Emacs org-mode is an exceptionally rich emacs mode based around hierachically-structured text documents. The environment that has been designed around this central concept provides support for many different usage modes. At a high level, important areas include note taking, project planning and document publishing. Working with the text files is made efficient by document navigation and editing facilities which include creation, folding, restructuring and repositioning of subtrees and list items, and a plain-text spreadsheet for tabular data. Nevertheless, org is unobtrusive: an org-mode buffer may make use of only the most basic features, or even none at all. It is notoriously difficult to describe org briefly: good starting points include […].

Org therefore provides an ideal environment for literate programming: chunks of source code in any language can be embedded within the org-mode text file. The hierarchical structure of the document may reflect, for example, the logic of the problem being addressed or the structure of the project within which the problem arises. Embedding source code within Org documents means that, for example, the project-planning features of org-mode are immediately available, and that the document may be published to HTML and LaTeX with appropriate formatting of the code.

In addition to the standard org functionality, org provides convenient switching between the org buffer with embedded code, and a separate buffer in the native language mode. Thus literate programming with org-mode does not impact upon language-specific modes for working with source code in emacs. For example, when working with R code, you do not leave ess-mode until you flick back from the code buffer to view it embedded within an org buffer, which may also contain chunks of code in other languages.

Litorgy

Litorgy provides several extensions to the above-described method of working with source code in org mode:

  1. Code block execution for interpreted languages (python, ruby, shell, R, perl)
  2. […]