views:

458

answers:

10

I'm starting a new job next month. I've practically lived inside Visual Studio professionally for 10 years give or take, but for this job I'll be working full time on the linux platform for the first time in my life.

During one of the interview meatings I was seated in the middle of the developer room to socialize with the crowd. We had some light conversation for ten minutes and then one of the guys said: "ok, now for the truly important question - Vim or Emacs?".

I informed them that I'm not very experienced working on Linux, so I had no real opinion. But the question has rendered a dilemma for me since I would like to get comfortable with my potential working environment before I start.

I'm guessing I won't be able to unravel the full potential of both these editors before I start, so in order to pick the one which is likely to work best for me, the question goes - which of Vim and Emacs will make me most comfortable and efficient (working with C++) if I'm all about Visual Studio at the moment?

+2  A: 

whichever you choose; just become proficient at that one (and consider learning the other too)

John Weldon
A: 

Oi :-) You'll quickly find out that there are two camps. http://en.wikipedia.org/wiki/Editor%5Fwar

Use what feels right to you :-)

jskaggz
A: 

I'd pick vi/vim, but that's just me. There's also gvim which works like vim, but offers menus and nice graphical interactions.

But I'd think there has to be a more featured-filled IDE for C++ than either vi or emacs, and it would be odd if they just used the basic editors. Unless there's some fancy way to refactor and suggest in vi/emacs that I don't know about.

Kaleb Brasee
There's a whole *world* of things in vi/emacs that you don't know about I'm guessing. :-)
Jason Baker
Anything that comes close to the functionality provided in VS, Eclipse, Netbeans or IDEA?
Kaleb Brasee
"comes close"? all those IDEs combined couldn't provide all the features of vim or emacs..
vedang
+2  A: 

Go with Emacs. It's more friendly, and will make the transition from Visual Studio easier.

McWafflestix
I'm sorry, neither vim nor emacs can in any way be considered 'friendly'. Both of them require large amounts of memorization of arbitrary key sequences in order to get anything even mildly complex done. No sir, not friendly. Useful? Oh yea. But not friendly.
Michael Kohne
Well, I didn't say it's friendly; I just said it's MORE friendly. As an example, IE4 is more functional than IE3; it's still a gigantic sack of horse hockey, but it's more functional. :-)
McWafflestix
+3  A: 

Both vim and emacs have pretty steep learning curves, but the power you get is totally worth it.

I am a vim guy so I would recommend it naturally, you can get to basic editing pretty easily and a one-postcard cheat sheet can help you a lot. Emacs needs a little more remembering of its C-x C-... commands but I guess emacs users will say that it is nothing.

In case you wondered about IDE options:

  • Try eclipse IDE on linux.
  • If you get to work on a Mac, try xcode.
Joy Dutta
+1 For mentioning Eclipse: it'll be one of the easiest to pick up for a Visual Studio user (although I'm a Vim user).
Al
+3  A: 

This will sound stupid, but I use vim because the keyboard shortcuts are mostly one finger at a time (if not, you can shift with one hand and key with the other), and I map esc to something easier. Emacs requires more contortions and hurts my hands.

paul
+24  A: 

If you're ambivalent, the only correct answer is: Use what the people around you use.

Greg Hewgill
I agree, it helps to be able to learn neat tricks from other team members and to share config and settings files that make our job easier.
Dr. Watson
That's a really good answer.
Rob K
+3  A: 

If there is a consensus in the office, go with what they are using. Using the same editor as everyone else will just make your life easier.

If there is no consensus, then you'll need basic knowledge of both editors. (open a file, do basic edits, save a file).

Neither one is going to feel anything like Visual studio. They are both very powerful, and they are both quite capable of doing most anything you want.

That said, over the years I've tended toward vim because I find that it's harder for me to get lost in it's user interface when I can't remember what I'm doing.

I have also noticed over time that emacs is a little more touchy when it comes to tty settings. On today's machines that's a non-issue, but if you ever find yourself dealing with older gear, it's my experience that vim is far more likely to work on a wonky terminal than emacs is.

Michael Kohne
+1  A: 

This is a "religious topic on which editor is the best". The best advice would be to work with what you feel comfortable with and refuse to get drawn into it as it has been going on for years! For starters, why not download a Linux distro (a small distro such as Puppy Linux, DSL or Slitaz) and burn them to a cd and reboot, in that way you can find out what it is like to work in linux and navigate around. Even better, use virtualbox, boot up into a full blown linux distro (Debian, Slackware, FreeBSD, Ubuntu, Fedora you name it) and use both editors to get a feel of it and you will know which you get comfortable with and stick to it! I may risk getting this downvoted...but it's the only way you will know. Hope this helps, Best regards, Tom.

tommieb75
+9  A: 

find two cheatsheets, print them out. stare at them for a while.

or perhaps if you're a piano/keyboard/zylophone/ player choose emacs as its more chordey. choose vim if you play guitar as its more arpeggioey.

michael
The musical metaphor is great :)
Adam Byrtek