3 [[http:orgmode.org][Emacs org-mode]] is an exceptionally rich emacs mode based around
4 hierachically-structured text documents. The environment that has
5 been designed around this central concept provides support for many
6 different usage modes. At a high level, important areas include note
7 taking, project planning and document publishing. Working with the
8 text files is made efficient by document navigation and editing
9 facilities which include creation, folding, restructuring and
10 repositioning of subtrees and list items, and a plain-text
11 spreadsheet for tabular data. Nevertheless, org is unobtrusive: an
12 org-mode buffer may make use of only the most basic features, or
13 even none at all. It is notoriously difficult to describe org
14 briefly: good starting points include [...].
16 Org therefore provides an ideal environment for literate
17 programming: chunks of source code in any language can be embedded
18 within the org-mode text file. The hierarchical structure of the
19 document may reflect, for example, the logic of the problem being
20 addressed or the structure of the project within which the problem
21 arises. Embedding source code within Org documents means that, for
22 example, the project-planning features of org-mode are immediately
23 available, and that the document may be published to HTML and LaTeX
24 with appropriate formatting of the code.
26 In addition to the standard org functionality, org provides
27 convenient switching between the org buffer with embedded code, and
28 a separate buffer in the native language mode. Thus literate
29 programming with org-mode does not impact upon language-specific
30 modes for working with source code in emacs. For example, when
31 working with [[http://www.r-project.org/][R]] code, you do not leave [[http://ess.r-project.org/][ess-mode]] until you flick back
32 from the code buffer to view it embedded within an org buffer, which
33 may also contain chunks of code in other languages.
36 Org-Babel provides several extensions to the above-described method of
37 working with source code in org mode:
38 1. Code block execution for interpreted languages (python, ruby, shell, R, perl)