What's in a Name? Emacs, XEmacs, Scheemacs...

The EmacsWiki is for info and discussion about Emacs and XEmacs. Some people use the terminology of the ChurchOfEmacs to refer to these critters collectively – they call both Emacs and XEmacs “Emacsen”.

Some people used to make a point of calling Emacs GNU Emacs to differentiate it from Lucid Emacs which has since been renamed XEmacs. While this is less offensive and incorrect than the term FSF Emacs (the scope of developers and users far transcends the FSF, the main copyright holder), RichardStallman, Emacs’s original author, insists that Emacs is, after all, the proper term for the version he is still actively maintaining. Nowadays, most people are speaking about Emacs and XEmacs, but pretty much nobody is bothered by seeing GNU Emacs as a way to offset it from XEmacs.

“Emacs” is used in the names of a larger class of programmable editors, with a similar look-and-feel (mostly conspicuous in the keybindings) and a history going back to the original TecoEmacs (mid-1970s) and offshoots such as EINE and ZWEI. Emacs, which was created in 1985 and was closely modelled on the earlier Gosling Emacs editor (modeled after TecoEmacs), is simply one of many. XEmacs, which originated in 1991 as an offshoot of Emacs called LucidEmacs, is another. Both of these projects have a venerable history and an active developer base.

RMS refers to his creation as Emacs, as do most maintainers, I think. It’s likely to cause confusion to use the term generally for Emacs-like editors. E.g., Gosling Emacs didn’t have a full extension language and so is dubious as “an EMACS” (the term rms used in his memo on TECO EMACS) in contrast to Jed, for instance. – Dave Love

Sometimes XEmacs has been incorrectly referred to as “GNU XEmacs”. However, XEmacs is not part of the GnuProject, and the XEmacs developers object to this term, so it should not be used. RMS’ has stated once that XEmacs is not less GNU than Emacs, but this sounds contrived at best. Leaving off the GNU as a distinguishing feature is probably the variant likely to annoy the fewest people. [1]

Note: The X in XEmacs does not mean “X Windows”. As a matter of fact, LucidEmacs was renamed XEmacs not when it got support for X11 but when it got support for ttys. Both Emacs and XEmacs run on TTY’s, under X Windows, and natively under Microsoft Windows.

Usage on Emacs Wiki

If you want to link to the Emacs page, use GnuEmacs; to link to the XEmacs page, use [[XEmacs]].


“innumerable tiny differences. too many to list.”
kensanata, on #emacs

From a user perspective, Emacs and XEmacs are very, very similar, except for a big number of small differences that annoy long time users of the other flavor. If you are a newbie, chances are that there is no real reason to choose one over the other. The following decision making process is suggested for helping you choose:

If efficiency is important, use Emacs (– Anon) unless you happen to use PSGML, in which case it’s the reverse! That’s because XEmacs uses C implementations of some speed-critical data structures (e.g. syntax tables) whereas GNU Emacs has them in lisp. BTW this is the only reason I’m keeping both editors installed. (– DominiqueQuatravaux).

No, Emacs doesn’t implement syntax tables in Lisp, in particular. The released PSGML is slow setting Faces while parsing under Emacs because Emacs-specific code needs fixing; there is a patch at http://www.loveshack.ukfsn.org/emacs/psgml-1.3.1-debian.diff – Dave Love
Is there any support for this claim [efficiency generally better under Emacs]? – AlexSchroeder
Yes, that’s why I wrote it. XEmacs maintainers have said so, for instance, but you might not believe them, and want experimental results like I once posted. You can run XEmacs’ bench.el in Emacs (with minor changes) as one example. If you do, ensure you’re comparing like with like, e.g. by turning off line-number-mode in Emacs. Either ignore the hanoi result or run the (old) version from XEmacs in Emacs. All but a couple of the tests are faster for me in “emacs21” than in “xemacs21-mule” in Debian Sarge x86. – Dave Love
I’m not actually going to make any claims. However, I was a long time XEmacs user that switched to Emacs. I’ll discuss my switching elsewhere. The point is that I think XEmacs does have some problems with updating the display. There were some threads about this on the xemacs-beta list started by JWZ. Since running Emacs, I do think it’s a bit faster or at least more interactive. – DougAlcorn
I’m going to claim that xemacs21-gnome is significantly faster at executing elisp. I don’t have any hard numbers, but I’ll see if I can make some – ShaeErisson

Why Choose One over the Other?

If you’ve actually chosen one of the Emacsen (as opposed to just blindly started using one because it happened to be available), list your reasoning here.

I switched from XEmacs to Emacs for these reasons:


My reasons for switch were rather subjective (easier-to-do-in-gnu-emacs), and only half of technical nature. Besides, I used XEmacs for not more than 1.5 month, so it was rather choice than switch:


I have been using Emacs and XEmacs for some time now and I finally selected Emacs for my editor of choice because of the following reasons:

I’m sure that all issues I had with XEmacs are solvable, but I prefer the simplicity of Emacs. And for some reason, I was able to find answers for my questions easier under Emacs than XEmacs with apropos (C-h a).

– Matti Kärki

I use Emacs:

I use XEmacs:

In general, I find XEmacs more feature-rich, but more unstable and incoherent. Let us see when Emacs will be able to run Guile Scheme Lisp…

– Enrik’ Artime

I use XEmacs:


I still use XEmacs (but I have already put some work into a decent .emacs to benefit from planner, emacs-wiki etc.):


I used to use XEmacs, but switched to GnuEmacs. This is entirely down to the availability of NxmlMode, the best XML environment ever.


I switched from XEmacs to Emacs some time ago and have never looked back. My reasons are mostly philosophical:


I started with Emacs and switched to XEmacs because

But it had not IMO. I switched back from XEmacs to Emacs because


I used XEmacs for many years because at the time I started using it, graphical support was either slow and/or non-functioning in the GNU rendition. With the purchase of my first OS X machine, I found this (rather ironically) to be the exact opposite. These days I can barely tell the difference unless I start getting into hairy macros, and I’ve rebound most of the default Emacs keys to emulate XEmacs anyways (M-g, etc).

I imagine if I spent more time tinkering with the guts, it would matter more.


I have spent a substantial period of time using each of XEmacs or Emacs, and have wound up using, and strongly preferring, Emacs.


I use GnuEmacs because I started using Emacs before there was even an XEmacs. And I’ve never bothered to really investigate the differences and/or claimed improvements made by XEmacs. I wouldn’t be surprised if plenty of my crufty ol’ JonathanArnoldDotEmacs file doesn’t even work with XEmacs, in fact. And I just believe in the rock solid history of GnuEmacs, that it will continue to follow me from platform to platform, working consistently and without problems, as it has during the last 20+ years.


I switched from GnuEmacs to XEmacs about 5 years ago because XEmacs was less ugly and had a better out-of-the-box experience. At the time it seemed that XEmacs had the technical lead.

I switched from XEmacs back to GnuEmacs about 2 years ago because CPerlMode works better in GnuEmacs and since I’m stuck using MS Windows at work anyway there’s no difference in ugliness. Lately it seems that GnuEmacs has the technical lead.


I started with Zemacs on a Symbolics LispMachine around 1986. Switched back and forth between GnuEmacs abd Xemacs between 1988 and 1995. I finally switched to XEmacs in 1995 and have been using it ever since. I have too much idiosyncratic customization and code (customized menubuffers, toolbars, subprocesses, inserting pngs in buffers, calls to shell-comand) to warrant the trouble to switch back. If I had to start over I might choose Gnu Emacs now, but Xemacs is perfectly adequate, Almost any shortcoming I can fix with a workaround in elisp.


CategoryHistory ElispCompatibility