What are the efficiencies afforded by Emacs or Vim vs Eclipse? [closed]

Solution 1:

Vim / Emacs

  • Very fast/efficient code writing
  • Low memory footprint
  • Quick access to command line
  • Infinite possibilities through scripting/plugins
  • Never have to leave the keyboard

Eclipse

  • Full-featured IDE for many languages
  • Great refactoring support

All of them

  • Cross-platform
  • Feature rich
  • Extensible through plugins

I typically find myself writing volumes of code through vim and performing debugging tasks through my IDE. Familiarity with the code base is certainly a factor, as an IDE is a great tool for jumping around and learning unfamiliar source code.

Solution 2:

I got started in IDEs like Eclipse, but switched to Vim about 2 years ago.

Reasons you may want to use a text-mode editor:

  • It can be used as an IDE for just about any language (you learn it once and use it for everything)
  • It can do all those fancy things like auto-completion, refactoring and many more complex operations, which you can extend by adding macros or plug-ins
  • It works just about everywhere (and can be used through an SSH shell)
  • You don't need a GB of ram to run it

If you really persevere, you will find that working in an editor like this will eventually be faster, and in fact becomes ingrained as a sort of 'muscle memory'. This means you can code without slowing down to think about the process.

Solution 3:

The argument "Eclipse for Java" is a different argument than "Eclipse for [something that isn't java]". Eclipse does rock for Java.

I mean, vi is like a screwdriver, or maybe a swiss army knife, and Eclipse is like a big CNC combo mill and asphalt spreader. You don't exactly compare them, you kind of just use both.

Also, are you working inside something giant, which you know little about, but which Eclipse understands? An example would be working on Eclipse itself. Here, Eclipse has perfect visibility, total language support, and you need the toast prompts and the documentation links.

But if you are typing in a 100-line Ruby program to convert an SQL database, Eclipse doesn't add much value, especially considering its baggage.

It's also critical to set up vi right, or you won't grok the appeal. Autoindent, showmatch, tab handling, and various other options should be set. You should have a easy way to generate a tags file. Google can find tag generators, or just write one from scratch, with a few lines of shellcode and sed(1).

I don't consider refactoring to be a criteria. That's not something you do once an hour or even once a day. Sure, fire up the big IDE when you need to refactor. Oh, and don't expect automated refactoring of anything except Java.

Finally, vi can actually do a lot of things that the IDE can't begin to do. The grouped regular expression global substitution is kind of a generalized refactor-anything engine. To appreciate the vi gestalt you need to learn the line (":") mode. Briefly, it's like having sed(1) inside your editor.

Solution 4:

It all depends on what you want/expect and what your usage model is.

If you're looking for a Java IDE, Eclipse is difficult to beat. It's written in Java, for Java, by Java folks.

If you're looking for a tool to edit files from the command line quickly, Emacs or vi both fit the bill.

If you're looking for a tool from which you never have to leave because it can do anything you want (send/read mail, manage projects, todo lists, compile, debug, etc. etc. etc.), then Emacs is more "efficient".

If you're looking for reasons to switch editors, figure out what you want. If you want a better Eclipse, vi and Emacs won't give you that, stick to Eclipse.

If you're looking for a small, nimble editor, vi will fit the bill.

If you're looking for the ultimately extensible editor, Emacs is the way.

Whichever tool you decide to go with, immerse yourself. Learn all of the ins and outs, extend it to meet your needs. Use it to its limits and become efficient in its use.

Solution 5:

Emacs can be a powerful IDE, but having gone from Emacs to Eclipse, I have to say I would never go back. Eclipse just offers so many features that you can't get within Emacs.

Mylyn and scoped views of the data and files I'm using, the debugging UI, CVS UI, are all built in and easy to get and use. I'll use the mouse a little to get'em.