GNU Emacs; Does the GUI version offer anything more than the ability to have a GUI menu?

615

Solution 1

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.

Solution 2

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.

Share:
615

Related videos on Youtube

David
Author by

David

Updated on September 18, 2022

Comments

  • David
    David over 1 year

    So I'm trying to find out the best way to swap views for an iPhone game I'm making. I have a "root view controller" that has a reference to all the view controllers I want to swap between. So I add the main menu view to this root view controller - [self.view addSubview:mainMenuController.view]; - Then in the main menu view I have an instructions button. I define an IBAction in the mainMenuController to respond to the instructions button being clicked. From there, I call [self.view removeFromSuperview] which works great. It gets rid of the main menu. So next I want to add the instructions view. I figured that it would be as simple as [super.view addSubview:super.instructionsController.view], but no luck! I've thought of a few ways to get around this, but they all seem very inelegant, as I would like to keep all references to my view controllers in one place, the root view controller. Any thoughts?

  • Peter.O
    Peter.O almost 13 years
    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).
  • WestCoastProjects
    WestCoastProjects about 9 years
    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.
  • tcoolspy
    tcoolspy about 9 years
    @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.