Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In an attempt to reach at least beginner status with such a legendary editor, I have been coding in Emacs for the last two months. I try to keep an open heart, but I find myself continally disagreeing with one core design choice: that Emacs allow its users to never have to leave. In a 2010 world, I just think that every side feature of Emacs is hopelessly behind dedicated software:

  • I would never use its built-in browser; Chrome is years ahead.
  • I would never use its dired feature; Path Finder (Mac OS X) suits my needs.
  • I would never use its built-in email; the Gmail web interface has more relevant features like Priority Inbox.
  • Etc.

Sure, I might occasionally dip into Emacs to use regexps, etc. for one of the above tasks, but other than regexps, I really see no reason to ever touch those side features. I'm a completely newbie, yet I have a strong gut feeling that Emacs-as-an-OS is obsolete.

Emacs experts, do you think that Emacs' choice to be a comprehensive environment is the right choice for 2010 and the future? Are there particular peripheral features that are still at or ahead of their time compared to alternatives?

share|improve this question

closed as primarily opinion-based by GlenH7, Thomas Owens Apr 22 '14 at 18:52

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

Is this really a question? It looks like you've already decided. – Larry Coleman Nov 25 '10 at 15:36
@Emacs is really nice for gcc+gdb development in a Unix environment. It is also nice for writing LaTeX. – user1249 Nov 25 '10 at 16:48
This is why Emacs has a built in psychiatrist. – Tim Post Nov 25 '10 at 17:16
@Tim, M-x tetris is much more fun. – user1249 Nov 25 '10 at 19:12
I totally understand you... I've used vi for years, and took some time to learn Emacs... and I've come to the conclusion that both just don't fit my needs... for programming, I prefer a modern IDE (Eclipse) and for simple text editing/scripting, nano is just fine. – Oliver Weiler Nov 29 '10 at 10:53
up vote 14 down vote accepted

I've been using emacs for the last 10 years (from and to), and I can only say that you are absolutely right. Back in the days, I used gnus and the w3 browser, but clearly they are no longer up to it when compared to dedicated programs. But, obviously, you cannot run Chrome in text mode so this is where emacs wins. And even there, I'd rather use lynx/elinks or mutt for that.

Emacs-the-programmers-editor has lost its touch as well. Text editing is just fine, but when I'm writing code, I find myself wishing for functions like: goto definition, auto completion, refactoring, syntax hints, parameter docs etc etc (think Eclipse). I have tried a couple of emacs modes but never got it to work right. And no, I don't want to learn elisp, thank you.

Also, emacs don't really understand the semantics of the code. This is painfully obvious when coding in a file containing multiple languages like html with javascript and php or something. It just breaks down. For that, I much rather use any other editor (notepad++ or whatever) which does the job much better.

share|improve this answer
Of the stuff you list, Emacs actually has "goto definition" (using etags), "auto completion" (autocomplete.el, I think), syntax hints/parameter docs (on a language-by-language basis). The only one you mention it doesn't support AFAIK is automated refactoring, which is neither necessary nor useful for all languages. Multiple modes is atrocious though; it exists and supports PHP and mixed languages, but it's bad (as in excessively slow unless I'm on my desktop). I'll also give you the same advice I give any co-worker: if you don't want to learn Lisp, don't use Emacs, it'll do nothing for you. – Inaimathi Dec 17 '10 at 2:38
Agreed; Emacs is not an OS. My objection is to "Emacs-the-programmers-editor has lost its touch as well". This is a particularly unreasoned argument given that you refuse to learn Elisp, as most of the benefit of Emacs-the-programmers-editor comes from applying customizations. I wouldn't object to "I don't use Emacs because I don't feel like learning Lisp", but you make it sound like your willful ignorance of the tool affects its fitness. This is on par with me saying "Eclipse sucks because it doesn't have PHP support. And I don't feel like learning how to install plugins, thank you." – Inaimathi Dec 17 '10 at 12:27
@Inaimathi You don't have to learn elisp (or any language) be able to use eclipse properly. Installing plug-ins doesn't require it either. – Martin Wickman Dec 17 '10 at 12:42
@Martin - It doesn't have built in PHP support (or didn't when I used it); you need to install a plugin for that. The quoted statement above is equivalent to "[Editor] sucks because it doesn't have [feature it actually has, but that needs to be enabled], but I don't really feel like learning [thing that you need to do in order to enable it]", and my point was that this is an unreasonable argument. – Inaimathi Dec 17 '10 at 12:46
@Inaimathi: As far as refactoring goes, I was looking for a C++ automated refactoring program, and one of the few I found was in elisp. If you say "emacs doesn't support X", you're very likely to be wrong. – David Thornley Feb 4 '11 at 15:21

Choose the right tool for the job.

Try running Chrome or Path Finder through an ssh connection - here you will need alternative toolings and Emacs was designed to run in a terminal.

share|improve this answer
Good point about ssh. – AlcubierreDrive Nov 25 '10 at 15:59
x11 forwarding? – TheLQ Nov 25 '10 at 16:54
How many people actually use a web browser through an ssh connection? – compman Jun 2 '11 at 21:34
@compman, yes. It can be extremely useful for downloading files from websites. – user1249 Jun 2 '11 at 23:44
OS X has VNC, just tunnel the VNC connection through SSH, and you don't need to worry that OS X doesn't uses X11. – Lie Ryan Sep 7 '11 at 22:20

I don't even use the built-in therapist that much, but I do use Emacs and I like it, not because of it's comprehensive nature but because it is endlessly configurable and powerful as a text editor. Also I know a lot of the keystrokes for it. Successful text editing is all about the keystrokes.

If you want to develop your productivity with it, Steve Yegge has some good tips.

share|improve this answer
I strongly disagree with Steves approach rebinding tons of keys to get Emacs to behave. Learn the standard key bindings and use your .emacs to tweak their behavioru. – user1249 Sep 8 '11 at 8:54
His point is mainly an ergonomic one- he isn't saying there is a problem with the standard bindings as bindings, he is saying there is a problem with where the keys are on the keyboard and that if you want to make them easy to use, you need to find keys for that purpose that don't need you to tangle your little fingers up in the furthest corners of the keyboard. I can see the sense in that, but it does restrict you if you frequently change machine as you then need another set of muscle memories or to spend ages reconfiguring every machine you use. – glenatron Sep 8 '11 at 10:12

Emacs was never intended for the mass market. It is designed for efficient use by people who have taken the time to learn how it works. That said, one size does not fit all, so you may not like emacs even after you learn more about it.

EDIT: My two favorite features of emacs besides editing text are the shell mode, and gnus. After getting frustrated with Google Groups because of all the spam, I signed up with Eternal September and learned how to use gnus. It's much faster to navigate through messages, and only the occasional spam posting gets through, and getting rid of it is a matter of one key press. Shell mode is especially useful to me at work because copy/paste is more efficient than it is in a DOS prompt.

share|improve this answer
I'm not dismissing the text editor as obsolete; I agree, it's very efficient once you get used to it. My question is about the merit of the design choice that you should be able to do anything and everything without leaving Emacs. Are there specific peripheral features that are still great, or do you have insight into the history of once-great peripheral features that have now been surpassed? – AlcubierreDrive Nov 25 '10 at 15:57
I edited out the dismissing as obsolete section after reading your comments. I don't use emacs for everything, but I really like the shell mode and gnus. – Larry Coleman Nov 25 '10 at 15:59
Sweet! I added a new second half to my question, in response to your feedback. Your comment answers it so +1 – AlcubierreDrive Nov 25 '10 at 16:05
Also being able to do everything in emacs made a lot more sense in say 1994, when computers where much slower then they are now. I use dired from time to time, if I am already in emacs and I use the shell a lot. Being able to do a lot of things in my editor or at least without having to move to the mouse is a win for me. You may have different taste (this is really a matter of taste at some level) – Zachary K Mar 27 '11 at 13:50

I've always approached Emacs as a platform rather than an out of the box solution. There are many packages that duplicate functionality or purpose and it's up to you to decide whether they meet your needs or not.

That's also the reason why many things are out of date. Most people (that I've met anyway) that use Emacs don't use it to read email or browse the web. However, I'm hard pressed to find another editor that has

  • as sophisticated remote editing capabilities
  • free form inline macro creation and editing
  • depth and breadth of available extensions/packages

It has been my editor of choice for over a decade for software development and word processing.

Best of all I don't have to touch my mouse when using Emacs.

share|improve this answer

Emacs could be an OS for you if you are willing to learn Lisp and write your own features that suits your needs.

But nowadays you can find everything you need in other tools made by other great people. Those people made those tools because they felt they needed them, just like you who will use them. Since many of them are open-source, there is a community which will make them better and better, with all the functionalities you need.

Trying to enhance Emacs is hard because you have to learn Lisp. Even existing plugins are getting older and older. Take language-modes for example, common languages like JS and PHP are hardly supported even for syntax highlighting. The best mode you could find for them is simply not enough.

Emacs is a great tool in the right hands, and for the right tasks. But there are better tools for specified tasks, and you should definitely use these instead.

share|improve this answer

I don't wish to start a holy war, actually, there was a time when I've used emacs each second day (one day vim, one day emacs). There's nothing wrong with emacs, it is indeed great tool. Great, great tool.

But as a true vim'er, I was always a bit frustrated with the fact that many emacsers are trying to use emacs literally everywhere, for literally all tasks.

Reading mail, querying database, reading pdf's - those are the most innocent of tasks I've seen to be "emacsificated".

So, as for me, there are tree main areas of using emacs:

  1. Text-editing. And it's mind-blowing, super tool. Believe me, after using vim or emacs for long time, you will totally miss its features in most advanced of IDEs.

  2. IDE. Well, it could be done. Moreover, it could somehow compete with modes IDE's. But the fact is that to make it really competitive, you should invest hard. You should try to assemble many different scripts. You should even write your own snippets of code. I wouldn't, to be honest.

  3. Other tasks, most of them exotic or even esoteric. Playing tetris and so on. Better not.

share|improve this answer
As a long-time user of both emacs and vi (more than 20 years' experience of both, also about 1 year of using ed as my primary editor), I find emacs close to supreme for the occasional "I have repetetive code coming up, let the editor auto-generate it" (rather than, say, write another piece of code, then compile and run it, to generate the code). – Vatine Sep 8 '11 at 11:54

Somewhere in my collection of stuff I'm sure my wife wishes I'd just throw away, I have a copy of Emacs on QIC-40 Tape. I paid $50 to get it.

I couldn't #@%#$#$%@^#%# stand it then, I can't stand it now. I'm not saying it isn't a great editor for some, but for me .. it just gets in the way more than anything. It's original inception was to work around coke bottle keys, and it did that very well.

If you run a program, any program, you do it in the hopes that it increases (or at least, doesn't hinder) your productivity. If it doesn't work for you, don't use it.

Trust me, you aren't the problem.

share|improve this answer
"This is an important artifact, and it belongs in a museum!" – user1249 Feb 15 '11 at 15:11
“If it doesn't work for you, don't use it” is an appeal to subjectivity, therefore “you aren't the problem” is a contradiction. – Jon Purdy Sep 8 '11 at 0:36

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