Emacs /ˈiːmæks/ or EMACS (Editor MACroS) 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 2019.
Emacs has over 10,000 built-in commands (many of which are macros themselves) and its user interface allows the user to combine these commands into macros to automate work. Implementations of Emacs typically feature a dialect of the Lisp programming language that provides a deep extension capability, allowing users and developers to write new commands and applications for the editor. Extensions have been written to manage email, files, outlines, and RSS feeds, as well as clones of ELIZA, Pong, Conway's Life, Snake and Tetris.
The original EMACS was written in 1976 by Carl Mikkelsen, David A. Moon and Guy L. Steele Jr. as a set of Editor MACroS for the TECO editor. It was inspired by the ideas of the TECO-macro editors TECMAC and TMACS.
The most popular, and most ported, version of Emacs is GNU Emacs, which was created by Richard Stallman for the GNU Project. XEmacs is a variant that branched from GNU Emacs in 1991. GNU Emacs and XEmacs use similar Lisp dialects and are for the most part compatible with each other.
|Developer(s)||David A. Moon|
Guy L. Steele Jr.
Richard M. Stallman
|Stable release||26.1 (May 28, 2018) [±]|
|Written in||Lisp, C|
Emacs development began during the 1970s at the MIT AI Lab, whose PDP-6 and PDP-10 computers used the Incompatible Timesharing System (ITS) operating system that featured a default line editor known as Tape Editor and Corrector (TECO). Unlike most modern text editors, TECO used separate modes in which the user would either add text, edit existing text, or display the document. One could not place characters directly into a document by typing them into TECO, but would instead enter a character ('i') in the TECO command language telling it to switch to input mode, enter the required characters, during which time the edited text was not displayed on the screen, and finally enter a character (<esc>) to switch the editor back to command mode. (A similar technique was used to allow overtyping.) This behavior is similar to that of the program ed.
Richard Stallman visited the Stanford AI Lab in 1972 or 1974 and saw the lab's E editor, written by Fred Wright. He was impressed by the editor's intuitive WYSIWYG (What You See Is What You Get) behavior, which has since become the default behavior of most modern text editors. He returned to MIT where Carl Mikkelsen, a hacker at the AI Lab, had added to TECO a combined display/editing mode called Control-R that allowed the screen display to be updated each time the user entered a keystroke. Stallman reimplemented this mode to run efficiently and then added a macro feature to the TECO display-editing mode that allowed the user to redefine any keystroke to run a TECO program.
E had another feature that TECO lacked: random-access editing. TECO was a page-sequential editor that was designed for editing paper tape on the PDP-1 and typically allowed editing on only one page at a time, in the order of the pages in the file. Instead of adopting E's approach of structuring the file for page-random access on disk, Stallman modified TECO to handle large buffers more efficiently and changed its file-management method to read, edit, and write the entire file as a single buffer. Almost all modern editors use this approach.
The new version of TECO quickly became popular at the AI Lab and soon 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 diverse macros into a single set. Steele and Stallman's finished implementation included facilities for extending and documenting the new macro set. The resulting system was called EMACS, which stood for Editing MACroS or, alternatively, E with MACroS. Stallman picked the name Emacs "because <E> was not in use as an abbreviation on ITS at the time." An apocryphal hacker koan alleges that the program was named after Emack & Bolio's, a popular Cambridge ice cream store. The first operational EMACS system existed in late 1976.
Stallman saw a problem in too much customization and de facto forking and set certain conditions for usage. He later wrote:
The original Emacs, like TECO, ran only on the PDP-10 running ITS. Its behavior was sufficiently different from that of TECO that it could be considered a text editor in its own right, and it quickly became the standard editing program on ITS. Mike McMahon ported Emacs from ITS to the TENEX and TOPS-20 operating systems. Other contributors to early versions of Emacs include Kent Pitman, Earl Killian, and Eugene Ciccarelli. By 1979, Emacs was the main editor used in MIT's AI lab and its Laboratory for Computer Science.
In the following years, programmers wrote a variety of Emacs-like editors for other computer systems. These included EINE (EINE Is Not EMACS) and ZWEI (ZWEI Was EINE Initially), which were written for the Lisp machine by Mike McMahon and Daniel Weinreb, and Sine (Sine Is Not Eine), which was written by Owen Theodore Anderson. Weinreb's EINE was the first Emacs written in Lisp. In 1978, Bernard Greenberg wrote Multics Emacs almost entirely in Multics Lisp at Honeywell's Cambridge Information Systems Lab. Multics Emacs was later maintained by Richard Soley, who went on to develop the NILE Emacs-like editor for the NIL Project, and by Barry Margolin. Many versions of Emacs, including GNU Emacs, would later adopt Lisp as an extension language.
James Gosling, who would later invent NeWS and the Java programming language, wrote Gosling Emacs in 1981. The first Emacs-like editor to run on Unix, Gosling Emacs was written in C and used Mocklisp, a language with Lisp-like syntax, as an extension language.
Richard Stallman began work on GNU Emacs in 1984 to produce a free software alternative to the proprietary Gosling Emacs. GNU Emacs was initially based on Gosling Emacs, but Stallman's replacement of its Mocklisp interpreter with a true Lisp interpreter required that nearly all of its code be rewritten. This became the first program released by the nascent GNU Project. GNU Emacs is written in C and provides Emacs Lisp, also 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 version 15.34, released later in 1985. Early versions of GNU Emacs were numbered as 1.x.x, with the initial digit denoting the version of the C core. The 1 was dropped after version 1.12, as it was thought that the major number would never change, and thus the numbering skipped from 1 to 13. In September 2014, it was announced on the GNU emacs-devel mailing list that GNU Emacs would adopt a rapid release strategy and version numbers would increment more quickly in the future.
GNU Emacs was later ported to Unix. It offered more features than Gosling Emacs, in particular a full-featured Lisp as its extension language, and soon replaced Gosling Emacs as the de facto Unix Emacs editor. Markus Hess exploited a security flaw in GNU Emacs' email subsystem in his 1986 cracking spree in which he gained superuser access to Unix computers.
GNU Emacs uses a layered architecture, with a Turing complete language running on top of a smaller central core. Because about 70% of GNU Emacs is written in the Elisp extension language, and the set of features implemented in Elisp code are automatically present once the C core (which implements the Elisp interpreter, weighing 247 kLOC as of version 24.4) has been ported, porting Emacs to a new platform is considerably less difficult than porting an equivalent project consisting of native code only. Theoretically, only the core must be ported to the new platform; once the core is ported, the portions implemented in the language above take minimal work to bring over.
GNU Emacs development was relatively closed until 1999 and 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 took place in a single CVS trunk until 2008 and was then switched to the Bazaar DVCS. On November 11, 2014, development was moved to Git.
Richard Stallman has remained the principal maintainer of GNU Emacs, but he has stepped back from the role at times. Stefan Monnier and Chong Yidong were maintainers from 2008-2015. John Wiegley was named maintainer in 2015 after a meeting with Stallman at MIT. As of early 2014, GNU Emacs has had 579 individual committers throughout its history.
Lucid Emacs, based on an early alpha version of GNU Emacs 19, was developed beginning in 1991 by Jamie Zawinski and others at Lucid Inc. One of the best-known early forks in free software development occurred when the codebases of the two Emacs versions diverged and the separate development teams ceased efforts to merge them back into a single program. Lucid Emacs has since been renamed XEmacs and remains the second most popular variety of Emacs, after GNU Emacs. XEmacs development has slowed, with the most recent stable version 21.4.22 released in January 2009 (while a beta was released in 2013), while GNU Emacs has implemented many formerly XEmacs-only features. This has led some users to proclaim XEmacs' death.
Other forks, less known than XEmacs, include:
In the past, projects aimed at producing small versions of Emacs proliferated. GNU Emacs was initially targeted at computers with a 32-bit flat address space and at least 1 MiB of RAM. Such computers were high end workstations and minicomputers in the 1980s, and this left a need for smaller reimplementations that would run on common personal computer hardware. In more recent times, small clones have been designed to fit on software installation disks.
Other projects aim to implement Emacs in a different dialect of Lisp or a different programming language altogether. Although not all are still actively maintained, these clones include:
Emacs is primarily a text editor and is designed for manipulating pieces of text, although it is capable of formatting and printing documents like a word processor by interfacing with external programs such as LaTeX, Ghostscript or a web browser. Emacs provides commands to manipulate and differentially display semantic units of text such as words, sentences, paragraphs and source code constructs such as functions. It also features keyboard macros for performing user-defined batches of editing commands.
GNU Emacs is a real-time display editor, as its edits are displayed onscreen as they occur. This is standard behavior for modern text editors but EMACS was among the earliest to implement this functionality instead of having to issue a separate command to insert new edits into the existing text as in vi.
Almost all of the functionality in Emacs, including basic editing operations such as the insertion of characters into a document, is achieved through functions written in Emacs Lisp (ELisp), a dialect of the Lisp programming language. The ELisp layer sits atop a stable core of basic services and platform abstraction written in the C programming language. In this Lisp environment, variables and functions can be modified with no need to recompile or restart Emacs.
Emacs operates on data structures called buffers containing text with additional attributes; every buffer maintains its own point (cursor location) and mark (another location, delimiting the selected region together with the point), the name of the file it is visiting (if applicable) and the set of active modes (exactly one major mode and any number of minor modes), which control editor behaviour through variables. Elisp code can be executed interactively through named commands, which can be bound to key presses or accessed by name; some commands evaluate arbitrary Elisp code from buffers (e.g.
Buffers are displayed in windows, which are tiled portions of the terminal screen or the GUI window (called a frame in Emacs terms; multiple frames are possible). Unless configured otherwise, windows include scroll bars, line numbers, a header line at the top (usually displaying the buffer title or filename) and a mode line at the bottom (usually listing the active modes and point position of the buffer).
Multiple windows can be opened onto the same buffer, for example to see different parts of a long text, and multiple buffers can share the same text, for example to take advantage of different major modes in a mixed-language file. The mode can also be changed manually as needed with
M-x <mode name>.
~/.emacs(recent versions also look for
~/.emacs.d/init.el; Emacs will execute the first one it finds, ignoring the rest). This personal customization file can be arbitrarily long and complex, but typical content includes:
(global-set-key (kbd "C-x C-b") 'ibuffer)
~/elisp/are traditional locations for these personal scripts)
.emacs: it offers search, descriptions and help text, multiple choice inputs, reverting to defaults, modification of the running Emacs instance without reloading, and other conveniences similar to the preferences functionality of other programs. The customized values are saved in
.emacs(or another designated file) automatically.
The first Emacs contained a help library that included documentation for every command, variable and internal function. Because of this, Emacs proponents described the software as self-documenting in that it presents the user with information on its normal features and its current state. Each function includes a documentation string that is displayed to the user on request, a practice that subsequently spread to programming languages including Lisp, Java, Perl, and Python. This help system can take users to the actual code for each function, whether from a built-in library or an added third-party library.
Emacs also has a built-in tutorial. Emacs displays instructions for performing simple editing commands and invoking the tutorial when it is launched with no file to edit. The tutorial is by Stuart Cracraft and Richard Stallman.
The Church of Emacs, formed by Richard Stallman, is a parody religion created for Emacs users. While it refers to vi as the editor of the beast (vi-vi-vi being 6-6-6 in Roman numerals), it does not oppose the use of vi; rather, it calls it proprietary software anathema. ("Using a free version of vi is not a sin but a penance.") The Church of Emacs has its own newsgroup, alt.religion.emacs, that has posts purporting to support this parody religion. Supporters of vi have created an opposing Cult of vi.
There is folklore attributing a repetitive strain injury colloquially called Emacs pinky to Emacs' strong dependence on modifier keys, although there have not been any studies done to show Emacs causes more such problems than other keyboard-heavy computer programs.
Users have addressed this through various approaches. Some users recommend simply using the two Control keys on typical PC keyboards like Shift keys while touch typing to avoid overly straining the left pinky. Software-side methods include:
ace-jump-mode or elisp extensions that provide similar functionality of tiered navigation, first asking for a character then replacing occurrences of the character with access keys for cursor movement.
evil-mode, an advanced Vim emulation layer.
god-mode, which provides an approach similar to vim's with a mode for entering Emacs commands without modifier keys.
Spacekey is used as the main key for initiating control sequences. The project also heavily incorporates both
viper-modethat allows use of the vi key layout for basic text editing and the Emacs scheme for more advanced features.
M-x <command-name>. M-x itself can also be rebound.
Hardware solutions include special keyboards such as Kinesis's Contoured Keyboard, which places the modifier keys where they can easily be operated by the thumb, or the Microsoft Natural keyboard, whose large modifier keys are placed symmetrically on both sides of the keyboard and can be pressed with the palm of the hand. Foot pedals can also be used.
The Emacs pinky is a relatively recent development. The Space-cadet keyboard on which Emacs was developed had oversized Control keys that were adjacent to the space bar and were easy to reach with the thumb.
In the movie, The Internship (2013), at 01:21:01, Nick Campbell asks, "It occurred to me, why not use Emacs rather than vi as the default editor for Ubuntu?" to which Dana replies, "That's actually a very good thought, Nick."
On the television series, Silicon Valley Season 3, episode 6, Richard asks, "I mean, why not just use Vim over Emacs?", to which Winnie replies, "I do use Vim over Emacs.", to which Richard responds, "Oh, God, help us!"
For an editor to be called "emacs" the main requirement is that it be fully extensible with a real programming language, not just a macro language.
GNU Emacs is the most popular and widespread of the Emacs family of editors.
Finally, if you find yourself frustrated, try describing your problems to the famous psychotherapist Eliza. Just do M-x doctor.
"EMACS as such actually started out as a standards project," emails Guy Steele
A cocky novice once said to Stallman: 'I can guess why the editor is called Emacs, but why is the justifier called Bolio?'. Stallman replied forcefully, Names are but names, Emack & Bolio's is the name of a popular ice cream shop in Boston town. Neither of these men had anything to do with the software.' His question answered, yet unanswered, the novice turned to go, but Stallman called to him, 'Neither Emacs nor Bolio had anything to do with the ice cream shop, either.'
I wrote the second Emacs ever: the Lisp machine implementation, whose spec was "do what Stallman's PDP-10 (original) Emacs does", and then progressed from there. There's just a whole LOT of it. It took me and Mike McMahon endless hours to implement so many commands to make ZWEI/Zmacs.
In retrospect 24.3 should have been named 25.1 and 24.4 should have been named 26.1. The .N thingy should really be kept only for bug-fix releases and neither of 24.3, 24.4, nor the previously planned 24.5 are bug-fix releases.
twenty-nine years of continuous development by no fewer than 579 people
In touch typing, modifiers comes in pairs, such as ⇧ Shift key. The accepted ergonomic way to press modifier combinations is using one hand to press the modifier key and the other to press the letter key. Using 2 hands avoids single-hand straining its muscle.
AUCTeX is an extensible package for writing and formatting TeX files in Emacs and XEmacs.
AUCTeX provides syntax highlighting, smart indentation and formatting, previews of mathematics and other elements directly in the editing buffer, smart folding of syntactical elements, macro and environment completion. It also supports the self-documenting .dtx format from the LaTeX project and, to a limited extent, ConTeXt and plain TeX.
AUCTeX, originating from the ‘tex-mode.el’ package of Emacs 16, was created by students from Aalborg University Center (now Aalborg University), hence the name AUCTeX. Lars Peter Fischer wrote the first functions to insert font macros and Danish characters back in 1986. Per Abrahamsen wrote the functions to insert environments and sections, and to indent the text, as well as the outline minor mode in 1987. Kresten Krab Thorup wrote the buffer handling and
debugging functions, the macro completion, and much more, including much improved indentation and text formatting functions, and made the first public release of AUCTeX in 1991.AUCTeX is distributed under the GNU General Public License.Apel (emacs)
In computer programming, apel (the initialism represents "A Portable Emacs Library") provides support for writing portable code in Emacs Lisp.
XEmacs features a version of apel called apel-xemacs.Conkeror
Conkeror is a discontinued Mozilla-based web browser designed to be navigated primarily by a computer keyboard. Its design is mainly patterned after the text editor GNU Emacs, with some influence from other programs, including vi.It was originally written by Shawn Betts, the primary author of keyboard-driven ratpoison and Stumpwm tiling window managers. Formerly an extension for the Mozilla Firefox browser, it is now developed for XULRunner as a stand-alone application. Development of the extension version was abandoned in 2007.
Conkeror is released under the same set of free software licenses as Mozilla: the GNU General Public License, the GNU Lesser General Public License, and the Mozilla Public License.Dired
Dired (for Directory Editor) is a computer program for editing file system directories. It typically runs inside the Emacs text editor as a specialized mode, though standalone versions have been written. Dired was the first file manager, or visual editor of file system information. The first version of Dired was written as a stand-alone program circa 1974 by Stan Kugell at the Stanford Artificial Intelligence Laboratory (SAIL). It was incorporated into GNU Emacs from the earliest versions, and re-implemented in C and C++ on other operating systems.When run in Emacs, dired displays an ls-like file listing in an Emacs buffer. The list can be navigated using standard navigation commands. Several Emacs Lisp scripts have been developed to extend Dired in Emacs. In combination with Tramp it is able to access remote file systems for editing files by means of SSH, FTP, telnet and many other protocols, as well as the capability of accessing local files as another user in the same session. There are also functions that make it possible to rename multiple files via Emacs search and replace capabilities or apply regular expressions for marking (selecting) multiple files. Once marked, files can be operated on in various ways from deleting, to renaming, to executing an external shell command or elisp function on them. By means of the Lisp package dired-x it is also possible to handle existing ls-like directory listings in a virtual Dired mode. These can also be saved again, often using the filename extension dired.Dunnet (video game)
Dunnet is a surreal, cyberpunk text adventure written by Ron Schnell, based on a game he wrote in 1982. The name is derived from the first three letters of dungeon and the last three letters of Arpanet. It was first written in Maclisp for the DECSYSTEM-20, then ported to Emacs Lisp in 1992. Since 1994 the game has shipped with GNU Emacs; it also has been included with XEmacs.The game has been recommended to writers considering writing interactive fiction.ERC (software)
ERC is an Internet Relay Chat (IRC) client integrated into GNU Emacs. It is written in Emacs Lisp.Editor war
Editor war is the common name for the rivalry between users of the Emacs and vi (usually Vim) text editors. The rivalry has become a lasting part of hacker culture and the free software community.
The Emacs vs vi debate was one of the original "holy wars" conducted on Usenet groups, with many flame wars fought between those insisting that their editor of choice is the paragon of editing perfection, and insulting the other, since at least 1985. Related battles have been fought over operating systems, programming languages, version control systems, and even source code indent style.Emacs Lisp
Emacs Lisp is a dialect of the Lisp programming language used as a scripting language by Emacs (a text editor family most commonly associated with GNU Emacs and XEmacs). It is used for implementing most of the editing functionality built into Emacs, the remainder being written in C, as is the Lisp interpreter. Emacs Lisp is also termed Elisp, although there is also an older, unrelated Lisp dialect with that name.Users of Emacs commonly write Emacs Lisp code to customize and extend Emacs. Other options include the Customize feature that's been in GNU Emacs since version 20. Itself written in Emacs Lisp, Customize provides a set of preferences pages allowing the user to set options and preview their effect in the running Emacs session. When the user saves their changes, Customize simply writes the necessary Emacs Lisp code to the user's config file, which can be set to a special file that only Customize uses, to avoid the possibility of altering the user's own file.
Emacs Lisp can also function as a scripting language, much like the Unix Bourne shell or Perl, by calling Emacs in batch mode. In this way it may be called from the command line or via an executable file, and its editing functions, such as buffers and movement commands are available to the program just as in the normal mode. No user interface is presented when Emacs is started in batch mode; it simply executes the passed-in script and exits, displaying any output from the script.Eww (web browser)
Emacs Web Wowser (a backronym of "eww") is a web browser written entirely in Emacs Lisp. It became part of GNU Emacs starting with version 24.4. If Emacs is compiled with the suitable image libraries, and is used in a graphical environment (such as under the X Window System), it can render images inline directly into Emacs's display buffer. It requires an Emacs built with libxml2 support. Written by Lars Magne Ingebrigtsen, it was originally developed as part of the Emacs mail reader Gnus, to display HTML-formatted email, but with the addition of HTTP support from Emacs' url.el package it became a fully-fledged browser.GNU Emacs
GNU Emacs is the most popular and most ported Emacs text editor. It was created by GNU Project founder Richard Stallman. In common with other varieties of Emacs, GNU Emacs is extensible using a Turing complete programming language. GNU Emacs has been called "the most powerful text editor available today". With proper support from the underlying system, GNU Emacs is able to display files in multiple character sets, and has been able to simultaneously display most human languages since at least 1999. Throughout its history, GNU Emacs has been a central component of the GNU project, and a flagship of the free software movement. GNU Emacs is sometimes abbreviated as GNUMACS, especially to differentiate it from other EMACS variants. The tag line for GNU Emacs is "the extensible self-documenting text editor".GNU TeXmacs
GNU TeXmacs is a scientific word processor and typesetting component of the GNU Project. It was inspired by TeX and GNU Emacs, though it shares no code with those programs. TeXmacs does use TeX fonts. It is written and maintained by Joris van der Hoeven. The program produces structured documents with a WYSIWYG user interface. New document styles can be created by the user. The editor provides high-quality typesetting algorithms and TeX fonts for publishing professional looking documents.Gnus
Gnus (), or Gnus Network User Services, is a message reader which is part of GNU Emacs. It supports reading and composing both e-mail and news and can also act as an RSS reader, web processor, and directory browser for both local and remote filesystems.
Gnus blurs the distinction between news and e-mail, treating them both as "articles" that come from different sources. News articles are kept separate by group, and e-mail can be split into arbitrary groups, similar to folders in other mail readers. In addition, Gnus is able to use a number of web-based sources as inputs for its groups.Integrated development environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, build automation tools, and a debugger. Most of the modern IDEs have intelligent code completion. Some IDEs, such as NetBeans and Eclipse, contain a compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not. The boundary between an integrated development environment and other parts of the broader software development environment is not well-defined. Sometimes a version control system, or various tools to simplify the construction of a graphical user interface (GUI), are integrated. Many modern IDEs also have a class browser, an object browser, and a class hierarchy diagram, for use in object-oriented software development.MULE
The MULtilingual Enhancement (MULE) is computer software which adds extra written language characters to the GNU Emacs text editor and programming environment.
MULE provides facilities to handle text written in many languages (at least 42 character sets, 53 coding sets, 128 input methods, and 58 languages), and multilingual texts containing several languages in the same buffer. This goes beyond the simple facilities offered by Unicode to represent multilingual text. MULE also supports input methods, composing display using fonts in various encodings, changing character syntax and other editing facilities to correspond to local language usage, and more.
MULE was originally based on Nemacs, a version of Emacs extended to handle Japanese, released in 1987. Development stalled, and the effort to incorporate increased language functionality into the main Emacs version stalled, until the fork between Lucid Inc. and the Free Software Foundation (FSF) led to XEmacs, which for several years boasted considerably better support for multiple languages and character sets. This competition reinvigorated development of GNU Emacs's language handling abilities and prompted the inclusion of MULE in version 21 of GNU Emacs.
MULE was written by the researchers Satoru Tomura, Ken'ichi Handa, Mikiko Nishikimi, and Naoto Takahashi, of the National Institute of Advanced Industrial Science and Technology (AIST), which is a part of Ministry of Economy, Trade and Industry (METI), of the government of Japan. This made it impossible for the developers to assign copyright to FSF, as is usually done for contributions to GNU packages.Multics Emacs
Multics Emacs is an early implementation of the Emacs text editor written in Maclisp by Bernard Greenberg at Honeywell's Cambridge Information Systems Lab. User-supplied extensions were also written in the Lisp programming language. The choice in 1978 of Lisp provided more extensibility than ever before, and has been followed by most subsequent Emacs implementations.Rcirc
rcirc is an Internet Relay Chat (IRC) client written in Emacs Lisp. It is one of two IRC clients included in GNU Emacs since release 22.1, alongside ERC.Rcirc is "compact, written in a single file of less than 2,500 lines of code". It allocates separate buffers for each server and channel, and includes tab completion and inbound message timestamps. It allows opening new buffers for composing messages, useful for multiline work. All IRC commands are bound to control-c command shortcuts. Sound alerts are available for private messages and for when a user's nick is mentioned in channel.SLIME
SLIME, the Superior Lisp Interaction Mode for Emacs, is an Emacs mode for developing Common Lisp applications. SLIME originates in an Emacs mode called SLIM written by Eric Marsden. It is developed as an open-source public domain software project by Luke Gorrie and Helmut Eller. Over 100 Lisp developers have contributed code to SLIME since the project was started in 2003. SLIME uses a backend called Swank that is loaded into Common Lisp.
SLIME works with the following Common Lisp implementations:
CMU Common Lisp (CMUCL)
Scieneer Common Lisp
Steel Bank Common Lisp (SBCL)
Clozure CL (former OpenMCL)
Allegro Common Lisp
Embeddable Common Lisp (ECL)
Armed Bear Common Lisp (ABCL)Some implementations of other programming languages are using SLIME:
Kawa, a Scheme implementation
Scheme48There are also clones of SLIME:
SOLID for OCamlW3m
w3m is a free software/open source text-based web browser and terminal pager. It has support for tables, frames, SSL connections, color and inline images on suitable terminals. Generally, it renders pages in a form as true to their original layout as possible.
The name "w3m" stands for "WWW wo miru (WWWを見る)", which is Japanese for "to see the WWW" where W3 is a numeronym of WWW.
The original project appears to be inactive, while a currently maintained version exists and is packaged in various GNU/Linux distributions such as Debian and Fedora. This version is available from the repository of Debian developer Tatsuya Kinoshita.XEmacs
XEmacs is a graphical- and console-based text editor which runs on almost any Unix-like operating system as well as Microsoft Windows. XEmacs is a fork, based on a version of GNU Emacs from the late 1980s. Any user can download, use, and modify XEmacs as free software available under the GNU General Public License version 2 or any later version.