- Emacs
infobox software
caption = GNU Emacs 22.0.91.1 with multiple buffers and syntax highlighting forLaTeX , C#, and C.
developer = theGNU project
author =Richard Stallman
released = release year|1976
frequently_updated = yes
programming language = C andEmacs lisp
operating system =Cross-platform
language = English
genre =Text editor
license =GNU General Public License
website = http://www.gnu.org/software/emacs/Emacs is a class of feature-rich
text editor s, usually characterized by their extensibility. Development began in the mid-70s and, as of 2008, is still active. Emacs text editors are most popular with technically proficient computer users andcomputer programmer s. The most popular version of Emacs is GNU Emacs, a part of theGNU project , which is commonly referred to simply as "Emacs".The GNU Emacs manual describes it as "the extensible, customizable, self-documenting, real-time display editor." It is also the most ported of the implementations of Emacs. As of September 2008, the latest stable release of GNU Emacs is version 22.3.
Aside from GNU Emacs, another version of Emacs in use is
XEmacs , which is a fork of GNU Emacs started in 1991. XEmacs has remained mostly compatible and continues to use the same extension language,Emacs Lisp , as GNU Emacs. Almost all of GNU Emacs and XEmacs are written in Emacs Lisp, so the extensibility of Emacs' features is deep.The original EMACS was a set of "Editor MACroS" for the TECO editor. It was written in 1976 by
Richard Stallman , initially together withGuy L. Steele, Jr. . [cite web | url = http://www.multicians.org/mepap.html#secii | title = Multics Emacs: The History, Design and Implementation | author = Bernard S. Greenberg ; cite web |url=http://www.gnu.org/software/emacs/emacs-faq.html#Origin-of-the-term-Emacs | title = GNU Emacs FAQ ; cite web | url = http://www.jwz.org/doc/emacs-timeline.html | title = Emacs Timeline | author = Jamie Zawinski ] It was inspired by the ideas of TECMAC and TMACS, a pair of TECO-macro editors written by Steele,Dave Moon , Richard Greenblatt,Charles Frankston , and others. [ cite web|url=http://www.xemacs.org/Documentation/21.5/html/internals_3.html |title=A history of Emacs |accessdate=2007-08-22 |date=2006-12-11 |work=XEmacs Internals Manual ]In
Unix culture, Emacs is one of the two main contenders in the traditionaleditor war s, the other beingvi . The word "emacs" is often pluralized as "emacsen", by analogy with (itself used by analogy with ) andVAXen . [ [http://www.catb.org/~esr/jargon/html/V/VAXen.html VAXen ] ]History
Emacs development began at the
MIT AI Lab during the 1970s. Before its introduction, the default editor on theIncompatible Timesharing System (ITS), theoperating system on the AI Lab'sPDP-6 andPDP-10 computers, was aline editor known asText Editor and Corrector (TECO). Unlike most modern text editors, TECO has separate modes which the user used to either add text, edit existing text, or display the document. Typing characters into TECO did not place those characters directly into a document; one had to write a series of instructions in the TECO command language telling it to enter the required characters, during which time the edited text was not displayed on the screen. This behavior is similar to the program ed.Richard Stallman visited theStanford AI Lab in 1972 or 1974 and saw the lab's "E" editor, written by Fred Wright.Fact|date=June 2007 The editor had an intuitiveWYSIWYG behavior as is used almost universally by modern text editors, which impressed Stallman. He returned to MIT where Carl Mikkelsen, a hacker at the AI Lab, had added a combined display+editing mode called "Control-R" to TECO, allowing the screen display to be updated each time the user entered a keystroke. Stallman reimplemented this mode to run efficiently, then added a macro feature to the TECO display-editing mode, allowing the user to redefine any keystroke to run a TECO program.Fact|date=June 2007Another feature of E which TECO lacked was random-access editing. Since TECO's original implementation was designed for editing paper tape on the
PDP-1 , it was a page-sequential editor. Typical editing could only be done on one page at a time, in the order of the pages in the file. To provide random access in Emacs, Stallman decided not to adopt E's approach of structuring the file for page-random access on disk, but instead modified TECO to handle large buffers more efficiently, and then changed its file management philosophy to read, edit, and write the entire file as a single buffer. Almost all modern editors use this approach.The new version of TECO was instantly popular at the AI Lab, and soon there accumulated a large collection of custom macros, whose names often ended in "MAC" or "MACS", which stood for "macro". Two years later, Guy Steele took on the project of unifying the overly diverse macros into a single set. After one night of joint hacking by Steele and Stallman, the latter finished the implementation, which included facilities for extending and documenting the new macro set.Fact|date=June 2007 The resulting system was called EMACS, which stood for "Editing MACroS". An alternative version is that EMACS stood for "E with MACroS", a dig at E's lack of a macro capability.Fact|date=June 2007 According to Stallman, he picked the name Emacs "because
was not in use as an abbreviation on ITS at the time." [cite web
last = Richard M.
first = Stallman
title = The EMACS Full-Screen Editor
url = http://www.lysator.liu.se/history/garb/txt/87-1-emacs.txt
accessdate = 2007-09-14 ] (It has also been noted that "Emack & Bolio's " was the name of a popular ice cream store in Cambridge, within walking distance of MIT. A text-formatting program used on ITS was later named BOLIO byDave Moon , who frequented that store. However, Stallman did not like that ice cream, and did not even know of it when choosing the name "Emacs"; this ignorance is the basis of ahacker koan , "Emacs and Bolio").Fact|date=June 2007Stallman saw a problem in too much customization and de-facto forking and set certain conditions for usage. He later wrote::"EMACS was distributed on a basis of communal sharing, which means all improvements must be given back to me to be incorporated and distributed."
The original Emacs, like TECO, ran only on the PDP line of computers. Its behavior was different enough from TECO to be considered a text editor in its own right. It quickly became the standard editing program on ITS. It was also ported from ITS to the Tenex and
TOPS-20 operating systems by Michael McMahon, but not Unix, initially. Other contributors to early versions of Emacs includeKent Pitman ,Earl Killian , andEugene Ciccarelli . By 1979, Emacs was the editor used by most people in MIT's AI lab and its Computer Science lab. [cite web
url=http://pogue.blogs.nytimes.com/2007/08/29/be-careful-what-you-joke-about/
title=email quoted in "Be Careful What You Joke About"
author=Leigh Klotz|]Other early implementations
Many Emacs-like editors were written in the following years for other computer systems, including SINE (Sine is not EMACS), EINE ("EINE Is Not EMACS") and ZWEI ("ZWEI Was EINE Initially", for the
Lisp machine ), which were written by Michael McMahon and Daniel Weinreb. ("Eine" and "zwei" are German for "one" and "two".) Weinreb'sEINE was the first Emacs written in Lisp. In 1978,Bernard Greenberg wroteMultics Emacs atHoneywell 's Cambridge Information Systems Lab. Many versions of Emacs, including GNU Emacs, later adopted Lisp as an extension language.The first Emacs-like editor to run on
Unix wasGosling Emacs , written in 1981 byJames Gosling (who later inventedNeWS and the Java programming language). It was written in C and, notably, used a language with Lisp-like syntax known asMocklisp as an extension language. In 1984 it wasproprietary software .GNU Emacs
In 1984, Stallman began working on GNU Emacs to produce a
free software alternative to Gosling Emacs; initially it was based on Gosling Emacs, but Stallman replaced the Mocklisp interpreter at its heart with a true Lisp interpreter, which entailed replacing nearly all of the code. It became the first program released by the nascentGNU project . GNU Emacs is written in C and providesEmacs Lisp (itself implemented in C) as an extension language. Version 13, the first public release, was made on March 20, 1985. The first widely distributed version of GNU Emacs was 15.34, which appeared later in 1985. Versions 2 to 12 never existed. Earlier versions of GNU Emacs had been numbered "1.x.x", but sometime after version 1.12 the decision was made to drop the "1", as it was thought the major number would never change.GNU Emacs was later ported to Unix. Since it had more features than Gosling Emacs, in particular a full-featured Lisp as extension language, it soon replaced Gosling Emacs as the "de facto" Emacs editor on Unix.
Until 1999, GNU Emacs development was relatively closed, to the point where it was used as an example of the "Cathedral" development style in "
The Cathedral and the Bazaar ". The project has since adopted a public development mailing list and anonymous CVS access. Development takes place in a single CVS trunk, which was at version 23.0.60 as of mid-2008.Richard Stallman remained the maintainer of GNU Emacs through most of the time, but took several breaks. The latest one persists and started 2008, when maintenance was handed over to Stefan Monnier and Chong Yidong. [cite web|url=http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02140.html|title=Re: Looking for a new Emacs maintainer or team|publisher=gnu.org Mailing List|accessdate=2008-02-23; see also [http://www.networkworld.com/community/node/25360 "Stallman on handing over GNU Emacs, its future and the importance of nomenclature"] ]Release history
XEmacs
Beginning in 1991, Lucid Emacs was developed by
Jamie Zawinski and others at Lucid Inc., based on an early alpha version of GNU Emacs 19. The codebases soon diverged, and the separate development teams gave up trying to merge them back into a single program. [cite web
last = Stephen J.
first = Turnbull
title = XEmacs vs. GNU Emacs
url = http://www.xemacs.org/About/XEmacsVsGNUemacs.html
accessdate = 2006-09-27 ] This was one of the most famous early forks of afree software program. Lucid Emacs has since been renamedXEmacs ; it remains the second most popular variety of Emacs, after GNU Emacs.Other modern forks and clones
Many other derivatives of the GNU Emacs have been made, such as a Japanese version for MS Windows called Meadow [, [http://www.meadowy.org/meadow/pukiwiki-en/ FrontPage - Meadow Wiki] ] Steve Young's fork of XEmacs called
SXEmacs , [ [http://www.sxemacs.org SXEmacs Website ] ] and a version which focuses on integrating with the Apple Macintosh user interface calledAquamacs .Emacs clones, not based on GNU Emacs source code, are more numerous. One motivation for writing clones was that GNU Emacs was initially targeted at computers with a 32-bit flat address space, and at least 1 MiB of RAM. At a time when such computers were considered high end, this left an opening for smaller reimplementations. Some notable modern clones include:
*
MicroEMACS , originally written by Dave Conroy and further developed by Daniel Lawrence, which exists in many variations. The editor is used byLinus Torvalds . [ [http://www.stifflog.com/2006/10/16/stiff-asks-great-programmers-answer/ Stifflog - Stiff asks, great programmers answer] ]
* mg, originally called MicroGNUEmacs (and later mg2a), a public-domain offshoot of MicroEMACS intended to more closely resemble GNU Emacs. Now installed by default onOpenBSD .
* NotGNU [ [http://www.notgnu.org/ NotGNU Emacs Editor (Author's Official Download Site) ] ] , a small, fast, freeware implementation for DOS, Win16, Win32 and Linux by Julie Melbin.
*JOVE (Jonathan's Own Version of Emacs), a non-programmable Emacs implementation forUNIX-like systems by Jonathan Payne.
*Freemacs , aDOS version with an extension language based on text macro expansion, all within the original 64 KiB flat memory limit.
* MINCE (MINCE Is Not Complete Emacs), a version for CP/M fromMark of the Unicorn . MINCE evolved into Final Word, which eventually became the Sprint word processor from Borland.Fact|date=February 2007
* Zile
*Climacs , an Emacs-variant implemented inCommon Lisp and more influenced fromZmacs than GNU Emacs.
*Aquamacs , a port of Emacs to theMac OS X Aqua environment.Licensing
The source code, including both the C and Emacs Lisp components, is freely available for examination, modification, and redistribution, under the terms of the
GNU General Public License (GPL).For GNU Emacs (and GNU packages in general), it remains policy to accept significant code contributions only if the
copyright holder executes a suitable disclaimer or assignment of their copyright interest to theFree Software Foundation , although one exception was made to this policy for theMULE (MULtilingual Extension, which handlesUnicode and more advanced methods of dealing with other languages' scripts) code [ [http://mail.gnu.org/archive/html/bug-gnu-emacs/2000-09/msg00065.html Re: VM and the FSF ] ] since the copyright holder is the Japanese government and copyright assignment was not possible. This does not apply to extremely minor code contributions of less than 10 lines or bug fixes. This policy is in place so that FSF can defend the software in court if itscopyleft licence is violated.Older versions of the GNU Emacs documentation were released under an ad-hoc license which required the inclusion of certain text in any modified copy. In the GNU Emacs user's manual, for example, this included how to obtain GNU Emacs and Richard Stallman's political essay "The GNU Manifesto". The XEmacs manuals, which were inherited from older GNU Emacs manuals when the fork occurred, have the same license. Newer versions of the documentation use the
GNU Free Documentation License and makes use of "invariant sections" to require the inclusion of the same documents, additionally requiring that the manuals proclaim themselves as "GNU Manuals".Features
Emacs is primarily a "text" editor, not a
word processor ; it is geared toward manipulating pieces of text, rather than manipulating thetypeface (the "font") of the characters or printing documents (though Emacs can do these as well). Emacs provides commands to manipulate words andparagraph s (deleting them, moving them, moving through them, and so forth),syntax highlighting for makingsource code easier to read, and "keyboard macros" for performing arbitrary batches of editing commands defined by the user.GNU Emacs is a "real-time display" editor in that your edits are displayed on the screen as you make them. This is standard behaviour for modern text editors.
Customizable
Almost all of the functionality in the editor, ranging from basic editing operations such as the insertion of characters into a document to the configuration of the user interface, is controlled by a dialect of the
Lisp programming language known asEmacs Lisp . This unique and unusual design provides many of the features found in Emacs. In this Lisp environment,variable s and even entire functions can be modified without having to recompile or even restart the editor.There are three primary ways to customize Emacs. The first is the "customize" extension, which allows the user to set common customization variables, such as the colour scheme, using a graphical interface, etc. This is intended for Emacs beginners who do not want to work with Emacs Lisp code.
The second is to collect keystrokes into macros and replay them to automate complex, repetitive tasks. This is often done on an ad-hoc basis, with each macro discarded after use, although macros can be saved and invoked later.
The third method for customizing Emacs is using Emacs Lisp. Usually, user-supplied Emacs Lisp code is stored in a file called
.emacs
, which is loaded when Emacs starts up. The.emacs
file is often used to set variables and key bindings different from the default setting, and to define new commands that the user finds convenient. Many advanced users have.emacs
files hundreds of lines long, with idiosyncratic customizations that cause Emacs to diverge wildly from the default behavior.Extensible
As a result, the behavior of Emacs can be modified almost without limit, either directly by the user, or by loading Emacs Lisp code known variously as "libraries", "packages", or "extensions".
Emacs contains a large number of Emacs Lisp libraries, and more "third-party" libraries can be found on the
Internet . Emacs can be used as an Integrated Development Environment (IDE), allowing programmers to edit, compile, and debug their code within a single interface. Other libraries perform more unusual functions. A few examples are listed below:* Calc, a powerful RPN numerical
calculator
* Calendar-mode, for keeping appointment calendars and diaries
*Disassociated Press , aRacter -like text generator.
* Dunnet, a text adventure
*Ediff , for working withdiff files interactively.
* Emerge, for comparing files and combining them
*Emacs/W3 , aweb browser
* ERC, an IRC client
*Gnus , a full-featured newsreader andemail client (and early evidence forZawinski's Law , along with Rmail and VM)
* VM (or 'View Mail'), a full-featuredemail client
*MULE , MultiLingual extensions to Emacs, allowing editing text written in multiple languages, somewhat analogous toUnicode
* Info, an online help-browser
* Planner, apersonal information manager
* SES, aspreadsheet Many third-party libraries can be found on the Internet; for example, there is a library called [http://en.wikipedia.org/wiki/Wikipedia:Wikipedia-mode.el wikipedia-mode] for [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page editing Wikipedia articles] . There is even a
Usenet newsgroup , [news://gnu.emacs.sources gnu.emacs.sources] , which is used for posting new libraries. Some third-party libraries eventually make their way into Emacs, thus becoming a "standard" library.Performance
The downside to Emacs' Lisp-based design is a performance overhead resulting from loading and interpreting the Lisp code. On the systems in which Emacs was first implemented, Emacs was often noticeably slower than rival text editors. Several joke
backronym s allude to this: "EightMegabyte s And Constantly Swapping" (from the days when eight megabytes was a lot of memory), "Emacs Makes A Computer Slow", "EventuallyMalloc s All Computer Storage", and "Eventually Makes All Computers Sick". However, modern computers are fast enough that Emacs is seldom felt to be slow. In fact, Emacs starts up more quickly than most modern word processors. Other joke backronyms describe the user interface: "Escape Meta Alt Control Shift".Platforms
Emacs is one of the most ported non-trivial computer programs. It runs on a wide variety of
operating system s, including mostUnix -like systems (GNU/Linux, the various BSDs, Solaris, AIX,IRIX ,Mac OS X , [cite web
title = Carbon Emacs Package
url = http://homepage.mac.com/zenitani/emacs-e.html
accessdate = 2006-09-27 ] [cite web
title = Aquamacs is an easy-to-use, Mac-style Emacs for Mac OS X
url = http://aquamacs.org/
accessdate = 2006-09-27 ] etc.),MS-DOS ,Microsoft Windows [cite web
last = B
first = Ramprasad
title = GNU Emacs FAQ For Windows 95/98/ME/NT/XP and 2000
date = 2005-06-24
url = http://www.gnu.org/software/emacs/windows/ntemacs.html
accessdate = 2006-09-27 ] [cite web
last = Borgman
first = Lennart
title = EmacsW32 Home Page
date = 2006
url = http://ourcomments.org/Emacs/EmacsW32.html
accessdate = 2006-09-27 ] [cite web
title = GNU Emacs on Windows
publisher = Franz Inc.
date = 2006
url = http://www.franz.com/emacs/
accessdate = 2006-09-27 ] andOpenVMS . Unix systems, both free and proprietary, frequently provide Emacs bundled with theoperating system .Emacs runs on both
text terminal s andgraphical user interface (GUI) environments. OnUnix -like operating systems, Emacs uses theX Window System to produce its GUI, either directly or using a "widget toolkit" such as Motif,LessTif , orGTK+ . Emacs can also use the native graphical systems of Mac OS X (using the Carbon or Cocoa interfaces) andMicrosoft Windows . The graphical interface providesmenubar s,toolbar s,scrollbar s, andcontext menu s.Editing modes
Emacs adapts its behavior to the type of text it is editing by entering editing modes called "major modes". Major modes are defined for ordinary text files,
source code for manyprogramming language s,HTML documents,TeX andLaTeX documents, and many other types of text. Each major mode is an Emacs Lisp program that extends the editor to behave more conveniently for the particular type of text it covers. Typical major modes will provide some or all of the following common features:
*Syntax highlighting (called "font lock" in Emacs): using different fonts or colors to display keywords,comment s, and so forth.
* Automatic indentation: maintaining consistent formatting within a file.
* "Electric" features, i.e. the automatic insertion of elements such as spaces, newlines, and parentheses which are required by the structure of the document.
* Special editing commands: for example, major modes for programming languages usually define commands to jump to the beginning and the end of a function, while major modes for markup languages such asXML provide commands to validate documents or insert closing tags.Additional features can be added by using "minor modes". While only one major mode is associated with a buffer at a time, multiple minor modes can be simultaneously active. These may affect documents directly. For example, the major mode for the C programming language defines a different minor mode for each of the popular
indent style s. Or, they may affect the editing environment instead. For example, "Winner mode" adds the ability to undo changes to the window configuration, while "MMM-mode" adds the ability to use more than one major mode in a single file, as required in common cases such as editing anHTML document with embeddedCSS andJavaScript .Self-documenting
The first Emacs included an innovative "help" library that can display the documentation for every single command, variable, and internal function. (It may have originated this technique.) Because of this, Emacs was described as "self-documenting" in that it presents its own documentation, not only of its normal features but also of its current state, to the user. For example, the user can find out about the command bound to a particular keystroke simply by entering
C-h k
(which runs the commanddescribe-key
), followed by the keystroke. Each function included a documentation string, specifically to be used for showing to theuser on request. The practice of giving functions documentation strings subsequently spread to various programminglanguages such as Lisp and Java.Further, through Emacs's help system, users can be taken to the actual code for each function - be it a built-in library or an installed third-party library.
Emacs also has a built-in
tutorial . When Emacs is started with no file to edit, it displays instructions for performing simple editing commands and invoking the tutorial.Manuals
Apart from the built-in documentation, Emacs has an unusually long, detailed and well-written manual. An electronic copy of the "GNU Emacs Manual", written by Richard Stallman, is included with GNU Emacs and can be viewed with the built-in Info browser. Two other manuals, the "Emacs Lisp Reference Manual" by Bill Lewis, Richard Stallman, and Dan Laliberte, and "Programming in Emacs Lisp" by Robert Chassell, are also included. Apart from the electronic versions, all three manuals are also available in book form, published by the
Free Software Foundation . XEmacs has a similar manual to the "GNU Emacs Manual", which forked from the GNU Emacs Manual at the same time as the XEmacs software.Internationalization
Emacs supports the editing of text written in many human languages. There is support for many alphabets, scripts, writing systems, and cultural conventions. Emacs provides spell checking for many languages by calling external programs such as
ispell . Many encoding systems, includingUTF-8 , are supported. Emacs 22 has full unicode support; however, it uses Emacs-specific encoding internally, necessitating conversion upon load and save.UTF-8 will become the Emacs-internal encoding in Emacs 23.However, the Emacs user interface is in English, and has not been translated into any other language, with the exception of the beginners' tutorial.
For visually impaired and blind users, there is a subsystem called "
Emacspeak " which allows the editor to be used through audio feedback only.Using Emacs
Commands
In the normal editing mode, Emacs behaves like other text editors: the character keys ("a", "b", "c", "1", "2", "3", etc.) insert the corresponding characters, the arrow keys move the editing point,
backspace deletes text, and so forth. Other commands are invoked with modified keystrokes, pressing thecontrol key and/or themeta key /alt key in conjunction with a regular key. Every editing command is actually an invocation of a function in the Emacs Lisp environment. Even a command as simple as typinga
to insert the character "a" involves calling a function--in this case,self-insert-command
.Alternatively, if a user would prefer
IBM Common User Access style keys, "cua-mode" can be used. This has been a third-party package up to, and including, GNU Emacs 21, but is included in GNU Emacs 22.Note that the commands
save-buffer
andsave-buffers-kill-emacs
use "multiple" modified keystrokes. For example,C-x C-c
means: while holding down the control key, press "x"; then, while holding down the control key, press "c". This technique, allowing more commands to be bound to the keyboard than with the use of single keystrokes alone, was popularized by Emacs, which got it from TECMAC, one of the TECO macro collections that immediately preceded Emacs. It has since made its way into modern code editors like Visual Studio, and is even used to some extent by some consumer word processors such asMicrosoft Word .Some Emacs commands work by invoking an external program (such as
ispell for spell-checking or gcc for program compilation), parsing the program's output, and displaying the result in Emacs.Minibuffer
The "minibuffer", normally the bottommost line, is where Emacs requests information. Text to target in a search, the name of a file to read or save and similar information is entered in the minibuffer. When applicable,
command line completion is usually available using the tab and space keys.File management and display
Emacs keeps text in objects called "buffers". The user can create new buffers and dismiss unwanted ones, and several buffers can exist at the same time. Most buffers contain text loaded from
text file s, which the user can edit and save back to disk. Buffers are also used to store temporary text, such as the documentation strings displayed by the "help" library.In both text terminal and graphical modes, Emacs is able to split the editing area into separate sections (referred to since 1975 as "windows", which can be confusing on systems that have another concept of "windows" as well), so that more than one buffer can be displayed at a time. This has many uses. For example, one section can be used to display the
source code of a program, while another displays the results from compiling the program. In graphical environments, Emacs can also launch multiple graphical-environment windows, known as "frames" in the context of Emacs.Emacs Pinky
Because of Emacs' dependence on the modifier keys, in particular, how the control key is pressed with the
little finger ("pinky"), heavy Emacs users have experienced pain in their pinky fingers (seerepetitive strain injury and fat-finger).Fact|date=January 2008 This has been dubbed the "Emacs Pinky", andvi advocates often cite it as a reason to switch to vi. To alleviate this situation, many Emacs users transpose the left control key and the left caps-lock key or define both as control keys, which puts the control key back where it was on the pre-IBM-style PC keyboards for which Emacs key combinations were chosen (usually the leftmost key on the middle row of characters).Fact|date=January 2008 Others use viper-mode, a feature built into Emacs that allows the use of the vi keys for basic text editing and the Emacs keys for more advanced features. Others use special keyboards such as Kinesis's Contoured Keyboard, which reduces the strain by moving the modifier keys so that they are in a position to be easily pushed by thethumb , orMicrosoft Natural keyboard , which has large modifier keys placed symmetrically on both sides of the keyboard so that they can be pressed with the palm.See also
*
Comparison of text editors
*Conkeror , aMozilla -based web browser inspired by Emacs
*GNU TeXmacs
*Space-cadet keyboard
*List of text editors
*List of Unix programs References
Bibliography
* cite book
last = Ciccarelli
first = Eugene
authorlink = Eugene Ciccarelli
year = 1978
title = An Introduction to the Emacs Editor
location = Cambridge, Massachusetts
publisher = MIT Artificial Intelligence Laboratory
id = AIM-447 [ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-447.pdf PDF] [http://www.uvm.edu/~ashawley/gnu/emacs/doc/emacs-1978.html HTML]
* cite book
last = Stallman
first = Richard M.
authorlink = Richard Stallman
year = 1979, updated 1981
title = EMACS: The Extensible, Customizable, Self-Documenting Display Editor
location = Cambridge Massachusetts
publisher = MIT Artificial Intelligence Laboratory
id = AIM-519A [ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-519A.pdf PDF] [http://www.gnu.org/software/emacs/emacs-paper.html HTML]
* cite book
last = Stallman
first = Richard M
year = 2002
title = GNU Emacs Manual
edition = 15th edition
url = http://www.gnu.org/software/emacs/manual/
publisher = GNU Press
id = ISBN 1-882114-85-X
* cite web
last = Stallman
first = Richard M
authorlink = Richard Stallman
title = My Lisp Experiences and the Development of GNU Emacs
url = http://www.gnu.org/gnu/rms-lisp.html
year = 2002
accessdate = 2007-02-01
* cite book
last = Chassel
first = Robert J.
authorlink = Robert J. Chassell
year = 2004
url = http://www.gnu.org/software/emacs/emacs-lisp-intro/
title = An Introduction to Programming in Emacs Lisp
publisher = GNU Press
id = ISBN 1-882114-56-6
* cite book
last = Glickstein
first = Bob
year = 1997 (April)
title = Writing GNU Emacs Extensions
publisher = O'Reilly & Associates
id = 1-56592-261-1
* cite book
last = Cameron, Debra; Elliott, James; Loy, Marc; Raymond, Eric; Rosenblatt, Bill
first =
year = 2004 (December)
title = [http://www.oreilly.com/catalog/gnu3/ "Learning GNU Emacs, 3rd Edition"]
publisher = O'Reilly & Associates
id = ISBN 0-596-00648-9
* cite book
last = Greenberg
first = Bernard S.
authorlink =
year = 1979
title = [http://www.multicians.org/mepap.html "Multics Emacs: The History, Design and Implementation"]
location =
publisher =
id =
* cite book
last = Finseth
first = Craig A.
authorlink =
coauthors =
title = The Craft of Text Editing -or- Emacs for the Modern World
publisher = Springer-Verlag & Co
date = 1991
location =
pages =
url = http://www.finseth.com/craft/
doi =
id = ISBN 978-1-4116-8297-9
* cite web
last = Zawinski
first = Jamie
authorlink = Jamie Zawinski
coauthors =
title = Emacs Timeline
work =
publisher =
date = 1999, updated 2005-06-21
url = http://www.jwz.org/doc/emacs-timeline.html
format =
doi =
accessdate = 2006-09-30External links
* [http://www.gnu.org/software/emacs/emacs.html The GNU Emacs homepage]
* [http://www.gnu.org/software/emacs/tour/ Gnu.org's "Emacs tour"]
* [http://xahlee.org/emacs/emacs.html Emacs Tutorial]
* [http://www.finseth.com/~fin/emacs.html List of Emacs implementations]
* [http://www.emacswiki.org/ EmacsWiki] – community site dedicated to documenting and discussing Emacs
* [http://mentoring.csua.berkeley.edu/files/RefCards/emacs_22_reference_card.pdf Official reference card for double-sided printing] (from theFree Software Foundation ).
* [http://media.commandline.org.uk/code/emacs.pdf Printable key bindings reference card] [http://media.commandline.org.uk/code/emacs.txt Plain Text]
* [http://www.neuralwiki.org/index.php?title=Installing_EMACS Installing Emacs on a Windows machine] - Guide for installing and configuring Emacs using the Windows operating system
* [irc://irc.gnu.org/emacs #emacs] IRC channel
Wikimedia Foundation. 2010.