I've been looking at GNU Emacs for a few months now, on and off (mainly off), and I've really only gone as far as testing a few basic things which I especially want in an editor... I'm slowly getting to realize its topography, and it is starting to make (good) sense....

The main thing I've noticed is that it seems to work exactly the same in the X-GUI version as it does in the X-Terminal version (and I suspect it would be pretty much the same in a non-GUI environment...

I originally thought that I would feel very uncomfortable working in a non-GUI editor, and that has been the case, but the more I dabble in the Emacs waters, the less significant that need becomes... so I am now looking at it from the other end of the stick... I'm turning my focus to working primarily in the Terminal version..

My question is: Aside from the obvious GUI-menu (which has turned out to be quite unnecessary), is there any notable difference between the versions (X-GUI, X-Terminal, and no-GUI) ?*


There used to be more restrictions, but since GNU Emacs 23, the text mode interface can do most of what the GUI interface can do. Also, since GNU Emacs 23, you can combine X frames and text mode frames in the same Emacs instance.

Running in a terminal limits the input key combinations Emacs can recognize, because the terminal emulator often doesn't transmit distinct escape sequences for all key combinations. Most terminal emulators don't support all combinations of modifiers with ASCII characters (things like C-S-a or C-; or modifiers other than Ctrl, Shift and Meta/Alt). You can't distinguish tab from C-i or backspace from DEL (or C-h depending on the terminal emulator setup). There is a proposed standard for encoding escape sequences in a systematic way but many popular terminals don't support it.

In a terminal, you get bold, perhaps italics and underline, and however many colors the terminal supports. Under X, Emacs can use multiple fonts, and display images. Whether that's useful or not is mostly a personal preference. Don't knock it until you've tried LaTeX font-locking (in AUCTeX) and rendering of mathematical symbols and diagrams through x-symbol (I tried, and didn't like it). If you use Emacs as a browser, image support is a plus (or not).

In a terminal, you're limited by the terminal's support for encodings (but most at least support basic Unicode features nowadays). The X interface lets Emacs choose its own fonts and mix them in fontsets; this is useful if you edit multilingual documents that aren't covered by a single font. I don't have enough experience with non-latin languages to say whether Emacs is better than your typical terminal emulator at coping with “difficult” languages (combining characters, double-width, left-to-right (which Emacs 23 doesn't support anyway, Emacs 24 should)).

There's obviously mouse support in the GUI interface. In the text interface, you can turn on mouse support if running in a terminal emulator under X with xterm-mouse-mode. You can get X clipboard support as well. The GUI version has a few extra features like tooltips, mouse avoidance, and mouse-activated context menus.

You can use the menu bar with either interface. The X version can put up icons at the top of the frame (the tool bar), not that I've ever seen any use for them. You also don't get dialog boxes or scroll bars in text modes. You don't get multiple-frame convenience such as speedbars or an ediff control frame.

  • Thanks Gilles... nicely explained. That's certainly going to save a lot of head-scratching, especially regarding the input key combinations (ie. that the environment has its say up to a point). – Peter.O May 10 '11 at 14:47

In a word: No.

The GUI is just a convenience layer of menus and such that allow you to see some of the tools you have at your disposal at a glance and click to activate, but it is just an alternate interface to the same program. The only things that could be considered additional "features" are the integration with the environment. Copy/paste, drag and drop files to the window to open, things like that.

The same goes for vim vs gvim. The program is the same, the window is a fancy wrapper on the same horsepower.

  • My understanding is that clipboard cut and paste between emacs and other apps is broken under terminal version. If so that is a showstopper. In addition Gilles points out lesser but still important differences. – javadba Mar 10 '15 at 20:26
  • @javadba copy-paste using both selection and clipboard registers can be configured to work perfectly in vim in a terminal. I imagine properly configured emacs works fine too. – Caleb Mar 11 '15 at 4:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.