views:

631

answers:

5

I use full blown graphical IDEs such as Eclipse CDT (Linux) and Visual Studio (Windows) which have features like auto completion, built in debugging, etc. These are features that I feel I can't live without.

I keep hearing about how many people use emacs/vim on a daily basis. How come people still use console based editors when graphical IDEs appear to be easier to use? I know how to use vim and emacs, but for day-to-day programming I just use an IDE as I find myself being more productive.

This is not a vim vs emacs question so please don't argue one against the other, please instead argue graphical IDE against console IDE.

As I'm already familiar with graphical IDEs, am I likely to gain any productive advantage by using emacs/vim instead?

I expect the answer is "maybe not", simply because of the learning curve, and I'd miss the usual graphical IDE features such as auto complete and the built in debugger; but apparently emacs supports auto complete and debugging. However, to someone who uses a standard GUI text editor, I'd probably say that they should use emacs/vim. What do you think?

Related questions:

+5  A: 

There is an advantage to learning to master a command line editor for those situations where a full IDE is not available. I know people who swear by VIM and people who swear by Emacs. I think the latter is more configurable, but you might not even need that. Since you already know VI, it might be enough for your needs.

I humbly admit that in the few situations where I do need to edit not through an IDE, I just use pico... :(

All that being said, I do have the impression that for some people in certain programmer subcultures and companies, using emacs rather than an IDE is an issue of honor, like using leaves rather than TP on camping trips.

Uri
This is a disturbing comparison of emacs to leaves and IDEs to toilet paper on several levels.
Chris Lutz
I like the comparison of emacs to fecal foliage actually, but I'm a 25-year VI aficionado :-)
paxdiablo
I was honestly waiting to see if I get downvoted to -10 or marked offensive by the emacs cult ;)
Uri
+1  A: 

Using emacs after knowing vim will make that task somewhat annoying. The editor war has been long and there have been many casualties.

In short, you should simply evaluate whether you think the editor(s) you are using currently are not up to your expectations. If you feel hindered, try something new. If you are working just fine, keep working!

Nick Veys
+3  A: 

I would always suggest knowing at least one command-line only editor, be it Vi, emacs, pico, ed, etc., even if you do most of your developing in an IDE. If you're more productive in an IDE than in another editor, then by all means use the IDE.

That said, my reasoning is this: say you're installing a graphics driver on Linux, and the driver is not being co-operative. Your version of X doesn't start correctly using the new configuration, and you need to edit your X configuration. You could copy the backup of the working configuration over the edited configuration, start X, use a GUI editor to edit the X configuration, and then restart X, or you could do the edit very quickly using an editor that doesn't depend on X (typically, command line).

Jeremy CD
+2  A: 

Eclipse has built-in support for Emacs key-bindings. The only support I've seen for Vim is a commercial plugin.

You certainly don't need to learn one or the other, and you don't need arguments extolling the virtues of one editor vs. the other, but if you do learn Emacs, you can customize your Eclipse environment to use the Emacs key-bindings (it's under Windows->Preferences->General->Keys). This (in my mind) can greatly increase your productivity in Eclipse as your hands rarely need to leave the 'home' line of your keyboard.

This feature is one (of many) reasons I use Eclipse for my 90% of my development.

bedwyr
There is VimPlugin, but you may or may not get it to work, http://sourceforge.net/projects/vimplugin
he_the_great
+1  A: 

I have been an emacs user for nearly 10 years. Emacs is an IDE with X support it is not console based. It does have auto completion it does have integrated debugger. The advantages i consider emacs over other IDE's are you said that you use eclipse in linux and visual studio on windows well i use emacs on both OS's. Don't need to change tools when switching OS's. Also on my daily work i work with multiple languages ruby,c/c++,java emacs supports much more languages than any other tool out there. And once you master using your keyboard you are 100 times faster than using an IDE. You can move around a file in blazing speed. i got my terminal , connection to my database server right in the editor no need to change windows and loose my train of thought. Another nice feature is i can edit files on machines half way across the world just like they are sitting on my local file system.

Disadvantages are both emacs and vi have steep learning curves in order to use them properly you need to invest some time on them but the way i see it why not master one tool that works on all languages and works on all OS's. then to learn how to use multiple tools and learn a new one when you wanna learn a new language.

Hamza Yerlikaya
Emacs has support for the console if you run "emacs -nw" This is useful if you're using Emacs through ssh.How do you access files on other machines as if they are sitting on your local file system? Is there a link or tutorial you could share?
vinc456
@vinc456: I believe he's refering to ssh, as I think you can open up a terminal within emacs.
nbolton
@Hamza Yerlikaya: Updated question to indicate that emacs supports code completion and integrated debugging.
nbolton
@vinc456 Yes i was referring to ssh. Emacs has a mode named TRAMP. Which will transparently open files using SSH. Check out http://www.emacswiki.org/emacs/TrampMode
Hamza Yerlikaya
@vinc456 Tramp will log in to the remote machine save copy to your local machine. You edit the file on your local machine but on save tramp scp the local copy to the remote machine. It's all done transparently just like a local file sitting on your machine.
Hamza Yerlikaya