GNU Emacs

Its built-in features include a file browser and editor (Dired), an advanced calculator (Calc), an email client and news reader (Gnus), a Language Server Protocol integration,[10] and the productivity system Org-mode.

A large community of users have contributed extensions such as the Git interface Magit, the Vim emulation layer Evil, several search frameworks, the window manager EXWM,[11] and tools for working with a wide range of programming languages.

Markus Hess exploited a security flaw in GNU Emacs's email subsystem in his 1986 cracking spree, in which he gained superuser access to Unix computers.

Richard Stallman has remained the principal maintainer of GNU Emacs, but he has stepped back from the role at times.

Older versions of the GNU Emacs documentation appeared under an ad-hoc license that required the inclusion of certain text in any modified copy.

In 2011, it was noticed that GNU Emacs had been accidentally releasing some binaries without corresponding source code for two years, in opposition to the intended spirit of the GPL.

This is used to implement shell-mode, running a Unix shell as inferior process, as well as read–eval–print loop (REPL) modes for various programming languages.

Emacs' support for external processes makes it suitable for interactive programming along the lines of Interlisp or Smalltalk.

Emacs uses the "minibuffer," normally the bottommost line, to display messages and request information, functions that are often performed by dialog boxes in GUI editors.

[32] Emacs can split the editing area into separate non-overlapping sections called "windows," a feature that has been available since 1975, predating the graphical user interface in common use.

In Emacs terminology, "windows" are similar to what other systems call "frames" or "panes" – a rectangular portion of the program's display that can be updated and interacted with independently.

There are major modes for many different purposes including editing ordinary text files, the source code of many markup and programming languages, as well as displaying web pages, directory listings and other system info.

Each major mode involves an Emacs Lisp program that extends the editor to behave more conveniently for the specified type of text.

Examples of the latter include a mode that adds the ability to undo changes to the window configuration and one that performs on-the-fly syntax checking.

In batch mode, user configuration is not loaded and the terminal interrupt characters C-c and C-z will have their usual effect of exiting the program or suspending execution instead of invoking Emacs keybindings.

GNU Emacs has support for many alphabets, scripts, writing systems, and cultural conventions and provides spell-checking for many languages by calling external programs such as ispell.

Version 24 added support for bidirectional text and left-to-right and right-to-left writing direction for languages such as Arabic, Persian and Hebrew.

The GNU Emacs user interface originated in English and, with the exception of the beginners' tutorial, has not been translated into any other language.

A subsystem called Emacspeak enables visually impaired and blind users to control the editor through audio feedback.

Over time many popular packages have been included in Emacs by default; for example version 21 began bundling Org-mode, Calc, TRAMP, and many others.

[39] Notable packages include: In its early history, GNU Emacs often ran noticeably slower than rival text editors because the loading and interpreting of its Lisp-based code incurs a performance overhead.

Modern computers are powerful enough to run GNU Emacs with ease, but versions prior to 19.29 (released in 1995) couldn't edit files larger than 8 MB.

[4] GNU Emacs runs both on text terminals and in graphical user interface (GUI) environments.

GNU Emacs can also use the graphics systems native to macOS and Windows to provide menubars, toolbars, scrollbars and context menus conforming more closely to each platform's look and feel.

[56] XEmacs development has slowed, with the most recent stable version 21.4.22 released in January 2009, while GNU Emacs has implemented many formerly XEmacs-only features.

[61] Changes brought about by downgrading to the previous release are listed in an "Antinews" file, often with some snarky commentary on why this might be desirable.

Richard Stallman , founder of the GNU Project and author of GNU Emacs
Editing multiple Dired buffers in GNU Emacs
Editing C source code in GNU Emacs
Editing and compiling C++ code from GNU Emacs
GNU Emacs Manual (cover art by Etienne Suvasa; cover design by Matt Lee)
GNU Emacs with AUCTeX , a set of tools for editing TeX and LaTeX documents
An Org-mode buffer displaying notes for planning a trip
A Magit buffer displaying the Emacs git repository's log
XEmacs 21.5 on GNU / Linux