kids encyclopedia robot

GNU Emacs facts for kids

Kids Encyclopedia Facts
Quick facts for kids
GNU Emacs
Current GNU Emacs logo
Current GNU Emacs logo
GNU Emacs 26.2 screenshot.png
GNU Emacs 26.2 running on GNOME 3
Original author(s) Richard Stallman
Developer(s) GNU Project
Initial release 20 March 1985; 40 years ago (1985-03-20)
Stable release
29.4 Edit this on Wikidata / 22 June 2024
Preview release
Lua error in Module:Wd at line 1575: attempt to index field 'wikibase' (a nil value). / 29 January 2021
Written in Emacs Lisp, C
Operating system Unix-like (GNU, Linux, macOS, BSDs, Solaris), Windows, MS-DOS
Platform Cross-platform
Available in English
Type Text editor
License GPL-3.0-or-later

GNU Emacs is a very powerful text editor and a collection of free software tools. It was started in 1984 by Richard Stallman, who also founded the GNU Project. GNU Emacs is based on an older editor called Emacs, which was made for Unix computers.

This program is known as "the extensible self-documenting text editor." This means you can easily add new features to it. Most of its functions are written in a special language called Emacs Lisp. This lets users change the program or add new tools. Many people have created extra tools for Emacs. These include a file browser, a calculator, an email program, and a system for organizing your tasks called Org-mode.

A Quick Look at Emacs's History

Richard Stallman - Fête de l'Humanité 2014 - 010
Richard Stallman, who started the GNU Project and created GNU Emacs.

The very first Emacs was made in 1976. It was a set of special commands for another editor. In 1984, Richard Stallman began working on GNU Emacs. He wanted to create a "free software" version. Free software means you have the freedom to use, study, share, and change the program.

GNU Emacs was first released on March 20, 1985. It quickly became very popular. It offered more features than other editors at the time. It also had a full programming language for adding new tools.

For a long time, only a few people worked on Emacs. But since 1999, more people have been able to help. Today, its development uses a system called Git. Richard Stallman has been the main person in charge for most of its history.

What is Emacs's License?

GNU Emacs uses the GNU General Public License (GPL). This license means you can freely look at, change, and share the program's code. Both the C and Emacs Lisp parts are open for everyone.

The people who create Emacs ask for copyright for major code changes. This helps the Free Software Foundation (FSF) protect the software's freedom. It ensures Emacs stays free for everyone to use and share.

How to Use GNU Emacs

Emacs Dired buffers
Editing several Dired (directory editor) buffers in GNU Emacs.
GNU Emacs editing C code
Editing C source code in GNU Emacs.
Cpp in GNU emacs
Editing and compiling C++ code from GNU Emacs.

Basic Commands and Keys

When you use GNU Emacs, it acts like most text editors. You can type text and move around with the arrow keys. But Emacs also uses special key combinations. These often involve the control key, meta key, alt key, or super keys. For example, you might press Control and another key at the same time. These key presses tell Emacs to do specific tasks.

Emacs can also work with other programs. It can use a spell checker or a compiler for programming code. It can even run a Unix shell (a command-line program) right inside Emacs. This makes it great for programming.

The Minibuffer: Emacs's Message Area

Emacs uses a special area called the "minibuffer." This is usually the line at the very bottom of the screen. It shows you messages and asks for information. For example, it might ask what file you want to open. It's like a small message box. You can also use it to complete commands automatically.

Managing Files and Displaying Information

Emacs stores text in "buffers." Think of buffers as temporary workspaces. You can have many buffers open at once. Some buffers hold text from files you are editing. Others show you lists of files, help messages, or other information.

Emacs can split its screen into different "windows." These are like separate sections on your screen. Each window can show a different buffer. This is helpful if you want to see two files at once. For example, you could see your code in one window and the results of running it in another. Emacs windows are "tiled," meaning they fit together like puzzle pieces.

Major Modes: How Emacs Adapts

GNU Emacs can handle many types of text. It changes its behavior using "major modes." There are major modes for plain text files. There are also modes for different programming languages. Each major mode adds special features.

These features often include:

  • Syntax highlighting: This colors different parts of your text. For example, keywords in code might be blue, and comments might be green.
  • Automatic indentation: This helps keep your code or text neatly organized.
  • Special commands: These commands help you work with specific types of files. For example, a programming mode might have commands to jump to the start of a function.

Minor Modes: Extra Customization

You can customize Emacs even more with "minor modes." You can only use one major mode at a time. But you can use many minor modes at once. Minor modes add small features. For example, one minor mode might help you undo changes to your window layout. Another might check your spelling as you type.

"Batch Mode": Emacs Without the Editor

GNU Emacs can also run without showing its full editor screen. This is called "batch mode." In this mode, Emacs acts like a powerful calculator or script runner. It can run Emacs Lisp programs and then exit. This is useful for automated tasks.

Emacs Manuals

GNU Emacs manual cover design
The GNU Emacs Manual cover.

The GNU Emacs Manual is included with the program. Richard Stallman wrote it. You can read it right inside Emacs. There are also other manuals. These help you learn how to program in Emacs Lisp. All these manuals are also available as books.

Languages and Accessibility

GNU Emacs supports many different languages and writing systems. It can check spelling in many languages. It also supports text that reads from right-to-left, like Arabic or Hebrew.

Since version 23, Emacs uses UTF-8 for handling text. This helps it work with almost any character from any language. The main Emacs interface is in English.

There's also a special system called Emacspeak. This helps people who are visually impaired or blind. It lets them control Emacs using audio feedback.

Making Emacs Your Own: Extensibility

Emacs+AucTeX
GNU Emacs with AUCTeX, a set of tools for editing TeX and LaTeX documents.

You can change and add to GNU Emacs almost endlessly. You do this by writing programs in Emacs Lisp. These programs can create new commands or new ways for Emacs to work.

Since version 24, Emacs has a built-in "package manager." This makes it easy to find and install new tools. Many popular tools are now included with Emacs by default. These include Org-mode, a powerful tool for notes and planning.

Example Org file showing planning for a short trip
An Org-mode buffer showing notes for planning a trip.
GNU Emacs showing a Magit buffer
A Magit buffer showing the log of the Emacs Git repository.

Some popular extra tools include:

  • AUCTeX: Tools for editing TeX and LaTeX documents.
  • Dired: A file manager that works inside Emacs.
  • ERC and Rcirc: Programs for chatting online using IRC.
  • Eshell: A command-line shell written in Emacs Lisp.
  • Gnus: A program for reading news and emails.
  • Magit: A powerful tool for working with Git, a system for tracking changes in code.
  • Org-mode: For taking notes, making lists, planning projects, and writing documents.
  • SLIME: Turns Emacs into a full development environment for the Common Lisp programming language.

How Emacs Performs

In the past, GNU Emacs sometimes ran slower than other text editors. This was because it had to load and run a lot of Lisp code. But today's computers are much faster. They can run GNU Emacs easily.

Emacs is mostly written in Emacs Lisp. But it also uses parts written in C for better speed. Newer versions can even compile Lisp files directly into faster code. This makes Emacs run much quicker.

Where Emacs Can Run

GNU Emacs works on many different computer systems. This includes DOS, Windows, and most Unix-like systems. Examples are Linux, macOS, and others. Many Unix-like systems even include Emacs when you install them. In 2023, an official version for Android was released.

Emacs can run in two ways:

  • Text terminals: This is a simple text-only screen, like a command prompt.
  • Graphical user interface (GUI) environments: This is what you usually see, with windows, menus, and icons.

On Unix-like systems, Emacs can use the X Window System for its graphical look. On macOS and Windows, it uses the built-in graphics systems. This helps Emacs look and feel more like other programs on those systems.

Other Versions of Emacs

Sometimes, a software project splits into different versions. This is called a "fork."

XEmacs

Xemacs-21.5.b29
XEmacs 21.5 running on GNU/Linux.

One well-known fork is XEmacs. It started in 1991 from an early version of GNU Emacs. For a while, XEmacs and GNU Emacs developed separately. But XEmacs development has slowed down a lot. GNU Emacs has since added many features that XEmacs used to have exclusively.

Other Emacs Versions

There are other less known versions of Emacs too:

  • Meadow: A Japanese version for Microsoft Windows.
  • Aquamacs: A version designed to work well with the Apple Macintosh look and feel.

Release History

The changes in each Emacs release are listed in a file called NEWS. This file comes with Emacs.

Version history of GNU Emacs
Version Release date What's New
29.4 June 22, 2024 A security update.
29.3 March 24, 2024 A security update.
29.2 January 18, 2024 A release to fix bugs.
29.1 July 30, 2023 Adds better code parsing and a new graphical look for Wayland. Includes popular tools like Eglot and use-package.
28.2 September 12, 2022 A bug-fix release with no new features.
28.1 April 4, 2022 Can now compile Lisp files directly for faster speed. Better display of Emoji. Shows matching parentheses by default.
27.2 March 25, 2021 Mainly a bugfix release.
27.1 August 10, 2020 Supports very large numbers. Better text display and drawing. New ways to organize tabs. Can resize and rotate images without extra tools.
26.3 August 28, 2019 New security key for checking Emacs Lisp packages.
26.2 April 12, 2019 Better support for building Emacs modules. Now follows Unicode version 11.0.
26.1 May 28, 2018 Can run some tasks at the same time (Lisp threads). Can show line numbers. Smoother display on X Window System. New tools for Google Drive. Supports 24-bit colors in terminals.
25.3 September 11, 2017 An urgent release to fix a security problem.
25.2 April 21, 2017 Mainly a bugfix release.
25.1 September 17, 2016 Can load shared libraries (modules). Checks security certificates. New mode for using curved quotes. Better search features. Can embed native widgets. Improved Unicode character insertion.
24.5 April 10, 2015 Mainly a bugfix release.
24.4 October 20, 2014 Supports access control lists and digital signatures for packages. Better full-screen and multi-monitor support. Can save and restore window layouts. New built-in web browser (eww).
24.3 March 10, 2013 Improved Lisp features and a new mode for Python.
24.2 August 27, 2012 Bugfix release.
24.1 June 10, 2012 Includes ELPA (package manager), supports native color themes, better support for two-way text input.
23.4 January 29, 2012 Fixes a security flaw.
23.3 March 10, 2011 Improved tools for using Emacs with version control systems.
23.2 May 8, 2010 New tools for using Emacs as an IDE. New mode for editing JavaScript. Cursor hides while typing in graphical mode.
23.1 July 29, 2009 Supports smoother fonts on X. Better Unicode support. Can view PDF and PostScript files. New modes for XML and Ruby. Uses modern graphics libraries on macOS.
22.3 September 5, 2008 Better mouse support. New keyboard macro system. Improved Unicode. Drag-and-drop on X. Many new modes and tools, including a graphical debugger and the Calc calculator.
22.2 March 26, 2008 New support for several version control systems like Git. New modes for CSS and other files. Improved image scrolling.
22.1 June 2, 2007 Supports the GTK+ graphical toolkit. Drag-and-drop on X. Supports Mac OS X Carbon UI. Includes org-mode version 4.67d.
21.1 October 20, 2001 Supports colors and other features on terminals. Built-in horizontal scrolling. Sound support. Wheel mouse support. Improved menus. Supports images, toolbars, and tooltips. Unicode support.
20.1 September 17, 1997 Multi-lingual support.
19.34 August 22, 1996 Bug fix release with no user-visible changes.
19.31 May 25, 1996 Emacs opens X11 windows by default. Scroll bars on Windows. Can recover multiple files after a crash.
19.30 November 24, 1995 Supports multiple windows on MS Windows. Menu bar available on text terminals. New package to act like common Windows and Macintosh keybindings.
19.29 June 19, 1995 Much faster performance. Better font support, including scalable fonts. Improved image handling. Better international features and more customization.
19.28 November 1, 1994 First official v19 release. Supports multiple windows using X Windowing System. New interface for version control systems (VC). Font-lock mode (syntax highlighting). Hexl mode for editing hexadecimal files.
18.59 October 31, 1992 Enhancements and bug fixes compared to previous Emacs 18.x versions.
18.53 February 23, 1989 Introduced font-locking, which allows syntax highlighting. This makes code easier to read. Also included bug fixes and improvements.
18.52 August 17, 1988 Introduced spook.el, a fun tool for adding certain keywords to messages.
18.24 October 2, 1986 Server mode. Emacs can open TCP connections. Can open Emacs in console mode on xterms.
17.36 December 20, 1985 Backup file version numbers.
16.56 July 15, 1985 First Emacs 16 release. Removed all code from Gosling Emacs due to copyright issues.
13.8? March 20, 1985 First public release.
kids search engine
GNU Emacs Facts for Kids. Kiddle Encyclopedia.