Org 可对 ‘#+BEGIN_SRC’ 至 ‘#+END_SRC’ 包裹的代码块执行多种操作,简化现代源代码维护的基础管理工作。Org 可编辑、格式化、提取、导出与发布代码块,也可编译执行代码块并捕获运行结果。 Org 模式文档中常将代码块称为 活动代码块(live code) ,因其可修改 Org 文档内容或导出产物。用户可通过调整头部参数(参见 Using Header Arguments),控制每个代码块在编译、执行、提取与导出时的 “活跃度(liveliness)”。
编辑与格式化代码块时,Org 会调用对应语言的 Emacs 主模式,该模式包含专为该语言设计的编辑功能。
Org 可提取一个或多个代码块并写入源码文件,这一过程在文学编程中被称为 代码提取(tangle) 。
导出与发布时,Org 后端会对代码块进行合适的格式化处理,通常支持原生语法高亮。
执行与编译代码块时,用户可配置 Org 选择对应编译器。Org 支持收集执行或编译结果,插入到 Org 文档中并/或进行导出。除文本结果外,Org 还可插入音频、视频、图片等其他类型数据的链接,并可将编译器错误信息关联至代码块中的对应行。
Org 管理代码块的一项重要特性是:可通过统一语法,在不同语言的代码块间传递变量、函数与结果。多数文学编程工具仅支持单一语言,而 Org 与语言无关的设计允许开发者为不同任务选用合适的编程语言,并在同一 Org 文档中混合使用。这种多语言互通特性,也是其创始人 Eric Schulte 与 Dan Davison 将该功能命名为 Org Babel 的原因。
Org 模式将文本、数据、代码、执行环境配置、运行结果,以及相关论述、结论、引用、内外链接统一保存在单个文档中,实现了可复现研究的便捷验证与维护。