Generated by GPT-5-mini| GNU Emacs | |
|---|---|
| Name | GNU Emacs |
| Caption | GNU Emacs running with multiple buffers |
| Developer | Free Software Foundation |
| Released | 1985 |
| Programming language | C, Emacs Lisp |
| Operating system | Unix-like, Microsoft Windows, macOS |
| Platform | x86, x86-64, ARM |
| Genre | Text editor, Integrated development environment |
| License | GNU General Public License |
GNU Emacs GNU Emacs is a extensible, customizable text editor and computing environment originally developed as part of the GNU Project by activists and programmers associated with the Free Software Foundation and contributors from projects such as Emacs Lisp communities. It has been used across platforms including Unix, Linux, Microsoft Windows, and macOS and has influenced editors and environments like XEmacs, Visual Studio Code, and Vim. Emacs has played a role in historical debates involving the Free Software Foundation, the GNU General Public License, and broader discussions in software freedom originating in the 1980s and 1990s.
Emacs traces intellectual roots to the original TECO-based editor extensions developed at MIT by members of the AI Lab and users of the Project MAC environment; key figures included researchers connected to Richard Stallman and early contributors who later became associated with the Free Software Foundation. Significant milestones include the release of a reimplemented Emacs in C and Lisp during the foundation of the GNU Project, interactions with developers from Xerox PARC and influence from editors running on systems like ITS and Multics. Emacs' development intersected with events involving the GNU Manifesto, the licensing work that produced the GNU General Public License, and community debates exemplified by forks such as XEmacs and later integrations into ecosystems like Debian and Red Hat Enterprise Linux.
Emacs provides extensive built-in features including multiple buffer and window management used in environments like Gnome terminals and tiling window managers derived from X Window System principles. It supports editing modes for programming languages and formats including C (programming language), Python (programming language), JavaScript, HTML, TeX, and LaTeX through modes often developed alongside packages from communities such as CTAN authors and contributors to distributions like ELPA and MELPA. Other features include an integrated shell (computing) interface compatible with shells like Bash and Zsh, a debugger interface interoperating with GDB, email and news clients comparable to Mutt and Thunderbird workflows, and calendar and project management inspired by tools like Org-mode and conventions from Project Management Institute practices.
The architecture of Emacs separates a small core implemented in C (programming language) from a large extension language, Emacs Lisp, which implements editing commands, modes, and applications. This design parallels systems such as the Smalltalk virtual machine and influenced later extensible editors like Eclipse and Visual Basic macro systems. Emacs loads Lisp libraries at runtime, uses a garbage collector influenced by implementations from MIT Project MAC research, and interacts with operating systems via POSIX APIs on Unix-like systems and native APIs on Microsoft Windows and macOS.
Extensibility in Emacs is delivered through packages distributed via repositories such as MELPA, ELPA, and project hosting platforms like GitHub and Savannah. Popular packages include Org-mode for notes and task management, language server integrations leveraging the Language Server Protocol ecosystem, and development tool integrations for Git via interfaces comparable to Magit. Community contributions follow licensing and collaboration patterns influenced by organizations such as the Free Software Foundation and infrastructure projects like Debian packaging, enabling distributions and package managers to curate sets of extensions for downstream systems like Arch Linux and Ubuntu.
Emacs offers multiple interaction paradigms including keyboard-centric command invocation, support for GUI features via toolkits used in X Window System and GTK-based environments, and terminal-based operation compatible with terminal emulators like xterm and gnome-terminal. Customization mechanisms include key binding definitions, hook systems, and themes; these patterns echo customization concepts present in environments like X Window System resource files and Windows Registry-style settings in other systems. Emacs' model of buffers, windows, and frames interacts with accessibility efforts and integration tools used in desktop environments such as KDE and GNOME.
Development occurs through a combination of maintainers coordinated by the Free Software Foundation, patches submitted by contributors hosted on platforms such as Savannah and GitHub, and discussions on mailing lists and channels frequented by developers linked to projects like Debian, Gentoo, and academic labs at institutions like MIT and Harvard University. The project has been shaped by governance and licensing disputes during the era of forks like XEmacs and collaborative initiatives involving contributors who have also participated in organizations such as the Linux Foundation and conferences like FOSDEM and GNU Hackers Meeting.
Category:Text editors