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 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.
50-480: (Redirected from BZR ) Bzr may refer to: GNU Bazaar Benzodiazepine receptor (also known as the GABA A receptor) Béziers Cap d'Agde Airport Toyota Levin/Trueno BZ-R Topics referred to by the same term [REDACTED] This disambiguation page lists articles associated with the title Bzr . If an internal link led you here, you may wish to change
100-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
150-438: 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 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,
200-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
250-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
300-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
350-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
400-534: 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
450-593: 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
500-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
550-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
SECTION 10
#1732802539404600-408: 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 a file browser and editor ( Dired ), an advanced calculator (Calc), an email client and news reader ( Gnus ), a Language Server Protocol integration, and
650-457: Is a distributed and client–server revision control system sponsored by Canonical . Bazaar can be used by a single developer working on multiple branches of local content, or by teams collaborating across a network. Bazaar is written in the Python programming language , with packages for major Linux distributions, Mac OS X and Microsoft Windows . Bazaar is free software and part of
700-519: 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
750-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
800-1124: 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
850-420: Is possible to use both methods at the same time with the same project. The websites Launchpad and SourceForge provide free hosting service for projects managed with Bazaar. Bazaar has support for working with some other revision control systems. This allows users to branch from another system (such as Subversion ), make local changes and commit them into a Bazaar branch, and then later merge them back into
900-656: 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
950-571: 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 the intended spirit of the GPL. Richard Stallman described this incident as "a very bad mistake," which
1000-511: The GNU Project . Bazaar commands are similar to those found in CVS or Subversion . A new project can be started and maintained without a remote repository server by invoking bzr init in a directory which a person wishes to version. In contrast to purely distributed version control systems which do not use a central server, Bazaar supports working with or without a central server. It
1050-679: 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
SECTION 20
#17328025394041100-504: 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 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
1150-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
1200-594: 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 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
1250-409: 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 the fork occurred, have the same license. Newer versions of
1300-490: 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 a suitable disclaimer or assignment of their copyright interest to
1350-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
1400-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 ,
1450-637: 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 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
1500-517: 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
1550-448: The first numbered pre-release, 0.0.1, was released on 26 March 2005. Bazaar was conceived from the start as a different piece of software from both GNU arch and Baz. It has a different command set and is a completely different codebase and design. Bazaar was originally intended as a test-bed for features to be later integrated into Baz, but by mid-2005 many of the major Baz developers had begun working primarily on Bazaar directly and Baz
Bzr - Misplaced Pages Continue
1600-438: 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 major version skipped from "1" to "13". A new third version number
1650-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
1700-658: The impression that Bazaar was almost dead: "There are maybe 2-3 commits to trunk every month. The time to fix bugs in Bazaar also seems to be quite long, generally." Version 2.7.0 was released in February 2016. Bazaar was forked as Breezy in 2017 to allow backwards-incompatible changes to be made, such as migrating from Python 2 to Python 3 and dropping support for older versions of Windows. The following websites provide free source code hosting for Bazaar repositories: Prominent projects that have used Bazaar for version control include: GNU Emacs The program's tagline
1750-419: The link to point directly to the intended article. Retrieved from " https://en.wikipedia.org/w/index.php?title=Bzr&oldid=932741679 " Category : Disambiguation pages Hidden categories: Short description is different from Wikidata All article disambiguation pages All disambiguation pages GNU Bazaar GNU Bazaar (formerly Bazaar-NG , command line tool bzr )
1800-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
1850-464: The other system. Read-only access is also available for Git and Mercurial . Bazaar also allows for interoperation with many other systems (including CVS , Darcs , Git , Perforce , Mercurial ) by allowing one to import/export the history. Bazaar supports files with names from the complete Unicode set. It also allows commit messages, committer names, etc. to be in Unicode. The name "Bazaar"
1900-618: 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 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
1950-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,
2000-714: The project. In March 2013 a discussion on the GNU Emacs mailing list started about whether Bazaar is still effectively maintained and if Emacs should move to another version control system. In January 2014 Eric Raymond proposed and coordinated a transition of GNU Emacs from Bazaar to the git version control system. This transition was completed in November 2014. Likewise, the Bugzilla project retired Bazaar in favor of git in March 2014 for multiple reasons, one of them being
2050-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,
Bzr - Misplaced Pages Continue
2100-563: 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
2150-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
2200-549: Was abandoned. Version 1.0 of Bazaar was released in December 2007. In February 2008, Bazaar became a GNU Project. In April 2012 Martin Pool left Canonical and the pace of development of the project slowed. According to Jelmer Vernooij the members of Canonical's Bazaar team were assigned to different tasks in early 2012 and he himself stepped down from contributing to Bazaar at the end of 2012, after 7 years of contributing to
2250-449: 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 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
2300-534: Was originally used by a fork of the GNU arch client tla . This fork is now called Baz to distinguish it from the current Bazaar software. Baz was announced in October 2004 by Canonical employee Robert Collins and maintained until 2005, when the project then called Bazaar-NG (the present Bazaar) was announced as Baz's successor. Baz is now unmaintained and Canonical declared it deprecated. The last release of Baz
2350-431: 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 the control key and/or the meta key , alt key or super keys in conjunction with
2400-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
2450-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
2500-472: Was version 1.4.3, released October 2005. A planned 1.5 release of Baz was abandoned in 2006. In February 2005, Martin Pool, a developer who had previously described and reviewed a number of revision control systems in talks and in his weblog, announced that he had been hired by Canonical and tasked with "build[ing] a distributed version-control system that open-source hackers will love to use." A public website and mailing list were established in March 2005 and
#403596