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.
70-549: Between 1987 and 1993 significant delays occurred in bringing out a new version of GNU Emacs (presumed to be version 19). In the late 1980s, Richard P. Gabriel 's Lucid Inc. faced a requirement to ship Emacs to support the Energize C++ IDE . So Lucid recruited a team to improve and extend the code, with the intention that their new version, released in 1991, would form the basis of GNU Emacs version 19. However, they did not have time to wait for their changes to be accepted by
140-430: A module . A CVS server stores the modules it manages in its repository . Programmers acquire copies of modules by checking out . The checked-out files serve as a working copy , sandbox or workspace . Changes to the working copy are reflected in the repository by committing them. To update is to acquire or merge the changes in the repository with the working copy. CVS uses a client–server architecture:
210-525: A dialog box . Some of these notifications are displayed briefly in the minibuffer, and GNU Emacs provides a *Messages* buffer that keeps a history of the most recent notifications of this type. When the minibuffer is used for output from Emacs, it is called the "echo area". Longer notifications are displayed in buffers of their own. The maximum length of messages that will be displayed in the minibuffer is, of course, configurable. Buffers can also serve as input and output areas for an external process such as
280-521: A front end to Revision Control System (RCS), an older version control system that manages individual files but not whole projects. It expands upon RCS by adding support for repository-level change tracking, and a client-server model. Files are tracked using the same history format as in RCS, with a hidden directory containing a corresponding history file for each file in the repository. CVS uses delta compression for efficient storage of different versions of
350-410: A shell or REPL . Buffers which Emacs creates on its own are typically named with asterisks on each end, to distinguish from user buffers. The list of open buffers is itself displayed in this type of buffer. Most Emacs key sequences remain functional in any buffer. For example, the standard Ctrl-s isearch function can be used to search filenames in dired buffers, and the file list can be saved to
420-415: A status bar called the "mode line" displayed by default at the bottom edge of the window. Emacs windows are available both in text-terminal and graphical modes and allow more than one buffer, or several parts of a buffer, to be displayed at once. Common applications are to display a dired buffer along with the contents of files in the current directory (there are special modes to make the file buffer follow
490-457: A NEWS file distributed with Emacs. 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. Concurrent Versions System Concurrent Versions System ( CVS , or Concurrent Versioning System ) is a version control system originally developed by Dick Grune in July 1986. CVS operates as
560-484: A cautious attitude concerning fiduciary duties to shareholders, companies may have trouble in getting permission to assign away code completely. The Free Software Foundation holds copyright of much of the XEmacs code because of prior copyright assignment during merge attempts and cross-development. Whether a piece of new XEmacs code enters GNU Emacs often depends on the willingness of that individual contributor to assign
630-547: A file browser and editor ( Dired ), an advanced calculator (Calc), an email client and news reader ( Gnus ), a Language Server Protocol integration, 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, and tools for working with a wide range of programming languages. The original EMACS
700-497: A header along with its implementation file for C-based languages. In addition, there is follow-mode , a minor mode that chains windows to display non-overlapping portions of a buffer. Using follow-mode , a single file can be displayed in multiple side-by-side windows that update appropriately when scrolled. In addition, Emacs supports "narrowing" a buffer to display only a portion of a file, with top/bottom of buffer navigation functionality and buffer size calculations reflecting only
770-531: A historical snapshot of the project (e.g.: based on a given date). If the check-in operation succeeds, then the version numbers of all files involved automatically increment, and the server writes a user-supplied description line, the date and the author's name to its log files. CVS can also run external, user-specified log processing scripts following each commit. These scripts are installed by an entry in CVS's loginfo file, which can trigger email notification or convert
SECTION 10
#1732855103708840-425: A major mode (either for a new file type or to build a non-text-editing user interface); others define only commands or minor modes, or provide functions that enhance another extension. Since version 24 GNU Emacs includes a built-in package manager accessible with the list-packages command that allows users to search for and install packages. Historically, packages were downloaded manually, often distributed through
910-490: A new fork from the current version of GNU Emacs, or putting the project in maintenance mode in case someone wants to restart development in the future. This last option was the direction decided, with commitments from individual contributors to provide minimal support for the web site and development resources. In 2020 the XEmacs project moved its Mercurial source repository to Heptapod, following their former host Bitbucket 's discontinuation of Mercurial support. In May 2023,
980-462: A number of other similar editors) collectively or individually as emacsen (by analogy with oxen ) or as emacs , since they both take their inspiration from the original TECO Emacs. XEmacs has commands to manipulate words and paragraphs (deleting them, moving them, moving through them, and so forth), syntax highlighting for making source code easier to read, and "keyboard macros" for performing arbitrary batches of editing commands defined by
1050-526: A package that originally was a third-party add-on but has been included in GNU Emacs since version 22. 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. The minibuffer holds information such as text to target in a search or the name of a file to read or save. When applicable, command-line completion
1120-409: A packaging system for independently maintained Lisp packages. The latest version has GTK+ support and a native Carbon port for Mac OS X. XEmacs has always had a very open development-environment, including anonymous CVS , later Mercurial access and publicly accessible development mailing-lists . XEmacs comes with a 500+ page internals manual (Wing, et al., 2004). Support for Unicode has become
1190-584: A paper introducing his improvements to the CVS program—which describes how the tool was extended and used internally by Prisma, a third-party developer working on the SunOS kernel, and was released for the benefit of the community under the GPL. On November 19, 1990, CVS version 1.0 was submitted to the Free Software Foundation for development and distribution. The latest version was released on 8 May 2008. In
1260-460: A personal account and password in these scenarios. Several developers may work on the same project concurrently, each one editing files within their own "working copy" of the project, and sending (or checking in ) their modifications to the server. To avoid conflicts, the server only accepts changes made to the most recent version of a file. Developers are therefore expected to keep their working copy up-to-date by incorporating other people's changes on
1330-633: A problem for XEmacs. As of 2005, the released version depends on the unmaintained package called Mule -UCS to support Unicode, while the development branch of XEmacs has had robust native support for external Unicode encodings since May 2002, but the internal Mule character sets lack completeness, and development seems stalled as of September 2005. XEmacs development features three branches: stable, gamma, and beta, with beta getting new features first, but potentially having less testing, stability and security. The developers released version 20.0 on 9 February 1997, and version 21.0 on 12 July 1998. As of January 2009,
1400-431: A regular basis. This task is mostly handled automatically by the CVS client, requiring manual intervention only when an edit conflict arises between a checked-in modification and the yet-unchecked local version of a file. Clients can also use the "update" command to bring their local copies up-to-date with the newest version on the server. Clients can also compare versions, request a complete history of changes, or check out
1470-424: A server stores the current version(s) of a project and its history, and clients connect to the server in order to "check out" a complete copy of the project, work on this copy and then later "check in" their changes. CVS servers can allow "anonymous read access", wherein clients may check out and compare versions with either a blank or simple published password (e.g., "anoncvs"); only the check-in of changes requires
SECTION 20
#17328551037081540-478: A suitable disclaimer or assignment of their copyright interest to the Free Software Foundation (FSF.) Small contributions of fewer than 10 lines of code are exempt. This policy is in place so that the FSF can defend the software in court if its copyleft license is violated. In 2011, it was noticed that GNU Emacs had been accidentally releasing some binaries without corresponding source code for two years, in opposition to
1610-420: A text file just as any other buffer. Dired buffers can be switched to a writable mode, in which filenames and attributes can be edited textually; when the buffer is saved, the changes are written to the filesystem. This allows multiple files to be renamed using the search and replace features of Emacs. When so equipped, Emacs displays image files in buffers. Emacs is binary safe and 8-bit clean. Emacs can split
1680-435: A time, but multiple minor modes can operate simultaneously. These may operate directly on documents, as in the way the major mode for the C programming language defines a separate minor mode for each of its popular indent styles , or they may alter the editing environment. 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. There
1750-411: A version control system they can pose a security risk. For instance, a symbolic link to a sensitive file can be stored in the repository, making the sensitive file accessible even when it is not checked in. In place of symbolic links, scripts that require certain privileges and conscious intervention to execute may be checked into CVS. CVS labels a single project (set of related files) that it manages as
1820-513: Is also a minor mode that allows multiple major modes to be used in a single file, for convenience when editing a document in which multiple programming languages are embedded. GNU Emacs supports the capability to use it as an interpreter for the Emacs Lisp language without displaying the text editor user interface. 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
1890-413: Is available using the tab and space keys. Emacs keeps text in data structures known as buffers . Buffers may or may not be displayed onscreen, and all buffer features are accessible by both Emacs Lisp programs and the user interface. The user can create new buffers and dismiss unwanted ones, and many buffers can exist at the same time, limited only by available memory. Emacs can be configured to save
1960-1090: Is bundled with GNU Emacs and can be viewed with the built-in info browser. Two additional manuals, the Emacs Lisp Reference Manual by Bil Lewis, Richard Stallman, and Dan Laliberte and An Introduction to Programming in Emacs Lisp by Robert Chassell , are included. All three manuals are also published in book form by the Free Software Foundation . 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. Many character encoding systems, including UTF-8 , are supported. GNU Emacs uses UTF-8 for its encoding as of version 23, while prior versions used their own encoding internally and performed conversion upon load and save. The internal encoding used by XEmacs
2030-651: Is similar to that of GNU Emacs but differs in details. 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. The behavior of GNU Emacs can be modified and extended almost without limit by incorporating Emacs Lisp programs that define new commands, new buffer modes, new keymaps, add command-line options, and so on. Many extensions providing user-facing functionality define
2100-492: The CVSNT server also supports various flavors of Microsoft Windows ), while CVS clients may run on any major operating system platform. Grune recalled: I created CVS to be able to cooperate with my students, Erik Baalbergen and Maarten Waage, on the ACK ( Amsterdam Compiler Kit ) C compiler. The three of us had vastly different schedules (one student was a steady 9-5 worker, the other
2170-545: The Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement. The program's tagline is "the extensible self-documenting text editor." Most functionality in GNU Emacs is implemented in user-accessible Emacs Lisp , allowing deep extensibility directly by users and through community-contributed packages. Its built-in features include
XEmacs - Misplaced Pages Continue
2240-487: The Free Software Foundation (FSF). Lucid continued developing and maintaining their version of Emacs, while the FSF released version 19 of GNU Emacs a year later, while merging some of the code and adapting some other parts. When Lucid went out of business in 1994, other developers picked up the code. Companies such as Sun Microsystems wanted to carry on shipping Lucid Emacs, but using the trademark had become legally ambiguous because no one knew who would eventually control
2310-678: The GNU General Public License (GPL) state that the Emacs source code, including both the C and Emacs Lisp components, are freely available for examination, modification, and redistribution. 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 the GNU Emacs user's manual, for example, this included instructions for obtaining GNU Emacs and Richard Stallman's essay The GNU Manifesto . The XEmacs manuals, which were inherited from older GNU Emacs manuals when
2380-623: The Usenet newsgroup gnu.emacs.sources. 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. 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. The file size limit
2450-611: The control key and/or the meta key , alt key or super keys in conjunction with a regular key produces modified keystrokes that invoke functions from the Emacs Lisp environment. Commands such as save-buffer and save-buffers-kill-emacs combine multiple modified keystrokes. Some GNU Emacs commands work by invoking external programs, such as ispell for spell-checking and the GNU Compiler Collection (GCC) for program compilation . Emacs also supports "inferior processes," long-lived child processes that interact with
2520-465: 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. Major modes typically provide some or all of the following common features: The use of "minor modes" enables further customization. A GNU Emacs editing buffer can use only one major mode at
2590-528: The Gnus tree into the main Emacs trunk and remove XEmacs compatibility code, citing other packages similarly dropping XEmacs support. In December 2015 project maintainer Stephen J. Turnbull posted a message to an XEmacs development list stating the project was "at a crossroads" in terms of future compatibility with GNU Emacs due to developer attrition and GNU Emacs' progress. Several options were laid out for future directions including ending development entirely, creating
2660-498: The Lisp level." As XEmacs development has slowed, XEmacs has incorporated much code from GNU Emacs, while GNU Emacs has implemented many formerly XEmacs-only features. This has led some users to proclaim XEmacs' death, advocating that its developers contribute to GNU Emacs instead. Many major packages, such as Gnus and Dired , were formerly developed to work with both, although the main developer of Gnus has announced his intention to move
2730-580: The Microsoft Windows environment exist: a native installer and a Cygwin package. Users can reconfigure almost all of the functionality in the editor by using the Emacs Lisp language. Changes to the Lisp code do not require the user to restart or recompile the editor. Programmers have made available many pre-written Lisp extensions. Many packages exist to extend and supplement the capabilities of XEmacs. Users can either download them piecemeal through XEmacs' package manager or apply them in bulk using
2800-404: The arguments from both sides. One of the main disagreements involves different views of copyright assignment. The FSF sees copyright assignment to the FSF as necessary to allow it to defend the code against GPL violations, while the XEmacs developers have argued that the lack of copyright assignment has allowed major companies to get involved, as sometimes companies can license their code but due to
2870-494: The code to the FSF. New features in either editor usually show up in the other sooner or later. Furthermore, many developers contribute to both projects. The XEmacs project has a policy of maintaining compatibility with the GNU Emacs API . For example, it provides a compatibility-layer implementing overlays via the native extent functionality. "XEmacs developers strive to keep their code compatible with GNU Emacs, especially on
XEmacs - Misplaced Pages Continue
2940-410: 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. Each Emacs window has
3010-417: The editor. 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 . Users who prefer the widely used IBM Common User Access keyboard shortcut layout can use cua-mode ,
3080-510: The file highlighted in dired), to display the source code of a program in one window while another displays a shell buffer with the results of compiling the program, to run a debugger along with a shell buffer running the program, to work on code while displaying a man page or other documentation (possibly loaded over the World Wide Web using one of Emacs' built-in web browsers) or simply to display multiple files for editing at once such as
3150-406: The first program released by the then-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
3220-471: The fork occurred, have the same license. Newer versions of the documentation use the GNU Free Documentation License with "invariant sections" that require the inclusion of the same documents and that the manuals proclaim themselves as GNU Manuals . For GNU Emacs, like many other GNU packages, it remains policy to accept significant code contributions only if the copyright holder executes
3290-401: 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 . Lucid Emacs, based on an early version of GNU Emacs 19, was developed beginning in 1991 by Jamie Zawinski and others at Lucid Inc. One of the best-known forks in free software development occurred when the codebases of
3360-452: The intended spirit of the GPL. Richard Stallman described this incident as "a very bad mistake," which was promptly fixed. The FSF did not sue any downstream redistributors who unknowingly violated the GPL by distributing these binaries. In its normal editing mode, GNU Emacs behaves like common text editors by allowing the user to type text with the keyboard and move the editing point with arrow keys . Escape key sequences or pressing
3430-471: The list of open buffers on exit, and reopen this list when it is restarted. Some buffers contain text loaded from text files , which the user can edit and save back to permanent storage. These buffers are said to be "visiting" files. Buffers also serve to display other data, such as the output of Emacs commands, dired directory listings, documentation strings displayed by the "help" library and notification messages that in other editors would be displayed in
3500-595: The log data into a Web-based format. CVS can also maintain different "branches" of a project. For instance, a released version of the software project may form one branch, used for bug fixes, while a version under current development, with major changes and new features, can form a separate branch. CVS assumes that the majority of work takes place on the trunk, and that branches should generally be short-lived or historical. When used as designed, branches are easily managed and branch operations are efficient and fast. The server software normally runs on Unix (although at least
3570-572: The net.emacs newsgroup , participation in GNU Emacs development was relatively restricted 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 today uses the Git DVCS . Richard Stallman has remained
SECTION 50
#17328551037083640-547: The principal maintainer of GNU Emacs, but he has stepped back from the role at times. Stefan Monnier and Chong Yidong have overseen maintenance since 2008. On September 21, 2015 Monnier announced that he would be stepping down as maintainer effective with the feature freeze of Emacs 25. Longtime contributor John Wiegley was announced as the new maintainer on November 5, 2015. Wiegley was joined by Eli Zaretskii in July, 2016, and Lars Ingebrigtsen in September, 2020. The terms of
3710-477: The program or suspending execution instead of invoking Emacs keybindings. GNU Emacs has command line options to specify either a file to load and execute, or an Emacs Lisp function may be passed in from the command line. Emacs will start up, execute the passed-in file or function, print the results, then exit. The shebang line #!/usr/bin/emacs --script allows the creation of standalone scripts in Emacs Lisp. The GNU Emacs Manual , written by Richard Stallman,
3780-419: The project released the first new beta version of XEmacs in nearly a decade with beta version 21.5.35 "kohlrabi". The SXEmacs project forked XEmacs 21.4 and continued development for over a decade, issuing new releases as late as 2020. GNU Emacs GNU Emacs is a text editor and suite of free software tools. Its development began in 1984 by GNU Project founder Richard Stallman , based on
3850-463: The project's beginnings, the developers of XEmacs aimed to have a frequent release-cycle. They also aimed for more openness to experimentation, and XEmacs often offers new features before other emacsen—pioneering (for example) inline images, variable fonts and terminal coloring. Over the years, the developers have extensively rewritten the code in order to improve consistency and to follow modern programming conventions stressing data abstraction. XEmacs has
3920-459: The same file. This works well with large text files with few changes from one version to the next. This is usually the case for source code files. On the other hand, when CVS is told to store a file as binary, it will keep each individual version on the server. This is typically used for non-text files such as executable images where it is difficult to create compact deltas between versions. CVS excludes symbolic links because when they are stored in
3990-586: The selected range. Emacs windows are tiled and cannot appear "above" or "below" their companions. Emacs can launch multiple "frames", which are displayed as individual windows in a graphical environment. On a text terminal, multiple frames are displayed stacked filling the entire terminal, and can be switched using the standard Emacs commands. GNU Emacs can display or edit a variety of different types of text and adapts its behavior by entering add-on modes called "major modes". There are major modes for many different purposes including editing ordinary text files,
4060-452: The stable branch had reached version 21.4.22 and the beta branch version 21.5.28. No gamma releases exist as of 2007. With the release of XEmacs 21.4.0, version numbers follow a scheme whereby an odd second number signals a development-version, and an even second number indicates a stable release. Several of XEmacs's principal developers have published accounts of the split between XEmacs and GNU Emacs, for example, Stephen Turnbull's summary of
4130-563: The trademark "Lucid". Accordingly, the "X" in XEmacs represents a compromise among the parties involved in developing XEmacs. The "X" in XEmacs is thus not related to the X Window System . After initially only supporting X11, XEmacs supported text-based terminals and windowing systems other than X11. Installers can compile both XEmacs and GNU Emacs with and without X support. For a period of time XEmacs even had some terminal-specific features, such as coloring , that GNU Emacs lacked. The software community generally refers to GNU Emacs, XEmacs (and
4200-558: The two Emacs versions diverged and the separate development teams ceased efforts to merge them back into a single program. After Lucid filed for bankruptcy, Lucid Emacs was renamed XEmacs . 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. This has led some users to proclaim XEmacs' death. Other forks, less known than XEmacs, include: Changes in each Emacs release are listed in
4270-510: The user can load dynamic modules. Since version 28.1, Emacs can natively compile Emacs Lisp files via libgccjit , as opposed to just byte compiling them, resulting in a significant boost in performance. GNU Emacs runs on a wide variety of operating systems , including DOS , Windows , and most Unix-like operating systems, such as Linux , the various BSDs , Solaris , AIX , HP-UX and macOS . Many Unix-like systems include Emacs by default. In 2023 an official port for Android
SECTION 60
#17328551037084340-424: The user. XEmacs has comprehensive online help, as well as five manuals available from the XEmacs website. XEmacs supports many human languages as well as editing-modes for many programming and markup-languages. XEmacs runs on many operating systems including Unix / Linux , BSDs and Mac OS X . Running on Mac OS requires X11 ; while development has started on a native Carbon version. Two versions of XEmacs for
4410-412: 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 major version skipped from "1" to "13". A new third version number was added to represent changes made by user sites. In the current numbering scheme, a number with two components signifies a release version, with development versions having three components. GNU Emacs
4480-654: The world of open source software, the Concurrent Version System (CVS) has long been the tool of choice for version control. And rightly so. CVS itself is free software, and its non-restrictive modus operandi and support for networked operation—which allow dozens of geographically dispersed programmers to share their work—fits the collaborative nature of the open-source world very well. CVS and its semi-chaotic development model have become cornerstones of open-source. Over time, developers have created new version control systems based on CVS in order to add features, alter
4550-538: The xemacs-sumo package or " sumo tarballs". The package manager in XEmacs predates the ELPA package system used by GNU Emacs by almost a decade and is incompatible with it. Since XEmacs 21.1 functionality has been moved out of XEmacs core and made available separately as packages. This allows users to exclude packages they have no need for. XEmacs had a package manager for over a decade before GNU Emacs developed one, but XEmacs must be restarted before new packages are loaded. From
4620-518: Was irregular, and I could work on the project only in the evenings). Their project ran from July 1984 to August 1985. CVS was initially called cmt, for the obvious reason that it allowed us to commit versions independently. Grune publicly released the code on June 23, 1986. The code that eventually evolved into the current version of CVS started with Brian Berliner in April 1989, with later input from Jeff Polk and many other contributors. Brian Berliner wrote
4690-491: Was later ported to the Unix operating system . 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's email subsystem in his 1986 cracking spree, in which he gained superuser access to Unix computers. Although users commonly submitted patches and Elisp code to
4760-426: Was raised in successive versions, and 32 bit versions after GNU Emacs 23.2 can edit files up to 512 MB in size. Emacs compiled on a 64-bit machine can handle much larger buffers. While GNU Emacs is largely written in Emacs Lisp, it makes extensive use of natively compiled C code to improve performance. In addition to its own C code, it uses external libraries such as libxml2 for parsing XML . Packages installed by
4830-401: Was released. Version 23.1 removed supported for some platforms deemed obsolete. GNU Emacs runs both on text terminals and in graphical user interface (GUI) environments. On Unix-like operating systems, GNU Emacs can use the X Window System to produce its GUI either directly using Athena widgets or by using a "widget toolkit" such as Motif , LessTif , or GTK+ . GNU Emacs can also use
4900-481: Was written in 1976 by David A. Moon and Guy L. Steele Jr. as a set of macros for the TECO editor, and in 1984, Richard Stallman began work on GNU Emacs, to produce a free software replacement 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
#707292