Emacs

From Canonica AI

Introduction

Emacs is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on its direct descendant, GNU Emacs, continues actively as of 2021.

A screenshot of a computer screen displaying a text editor interface with multiple windows. Each window contains lines of text and code.
A screenshot of a computer screen displaying a text editor interface with multiple windows. Each window contains lines of text and code.

History

The original Emacs, a set of Editor MACroS for the TECO editor, was written in 1976 by Richard Stallman, initially together with Guy L. Steele Jr. It was inspired by the ideas of the TECO-macro editors TECMAC and TMACS, which the TECO editor was designed to use. The most popular, and most ported, version of Emacs is GNU Emacs, which was created by Stallman for the GNU Project. XEmacs is a variant that branched from GNU Emacs in 1991. XEmacs has not been maintained since 2009.

A screenshot of a computer screen displaying the GNU Emacs text editor interface. The screen is divided into multiple windows, each containing lines of text and code.
A screenshot of a computer screen displaying the GNU Emacs text editor interface. The screen is divided into multiple windows, each containing lines of text and code.

Design philosophy

Emacs was designed to be a self-documenting real-time display editor. The design philosophy of Emacs is built around the idea of extensibility. The system can be adapted to many different tasks and can be extended in ways that its original developers would not have thought of or even considered reasonable. The original Emacs was implemented in a programming language and provided a programming environment. This approach allows users to customize and extend Emacs to their needs, and even to implement new commands in the editor itself.

A screenshot of a computer screen displaying the Emacs text editor with a focus on its customizable interface. The screen is divided into multiple windows, each containing lines of text and code.
A screenshot of a computer screen displaying the Emacs text editor with a focus on its customizable interface. The screen is divided into multiple windows, each containing lines of text and code.

Features

Emacs includes a wide range of features, including the ability to display and edit text, run shell commands, and even play games. It also includes a comprehensive help system, a powerful extension language, and a variety of tools for programming, including syntax highlighting, project planning, and version control integration.

Extensions

Emacs is known for its powerful and flexible system of 'modes', which are essentially pre-packaged extensions that can be loaded to provide additional functionality. These modes range from simple text formatting tools to complete integrated development environments. The most popular of these is probably the Org mode, which is an organizing tool that functions as an outliner, planner, project management, TODO list, and more.

A screenshot of a computer screen displaying the Emacs text editor with the Org mode extension enabled. The screen is divided into multiple windows, each containing lines of text and code.
A screenshot of a computer screen displaying the Emacs text editor with the Org mode extension enabled. The screen is divided into multiple windows, each containing lines of text and code.

See Also

Categories