I am a die hard vim user who has been learning Clojure recently and I have learned a little Emacs along the way because everyone in the Lisp community bangs on about it.
The funny thing is, every time I go to write some Clojure code - I want to open a Vim session, but I am always strangely drawn to Emacs for some reason.
Recently, I decided to figure out what it was about Emacs that made me want to use it so much over Vim. I soon realised it was all about being able to load a REPL process in a window and interact with it on the fly.
I can run Emacs, open a Clojure source file, write a function then hit C-M-x to send the function to the REPL to be evaluated. Also relevant is that Clojure support in Emacs was available shortly after Clojure's release to the public late in 200.
This is a very specific case (lisp-style interactive development) but it's why I personally think Emacs is great and for me it has nothing to do with Emacs text editing features! I will always prefer Vim for pure text editing power.
I installed Emacs to install SLIME so I could play around with Lisp. The REPL-in-a-buffer is so phenomenally powerful that I immediately missed it in TextMate when coding in Ruby. Thus began my descent into Emacs madness, and my new favorite function, ruby-send-region-and-go
I was a vi guy for a very long time, and I mocked the Emacs guys for "eight megs and constantly swapping" and "Emacs claw" ... until I switched to TextMate on the Mac, and realized how Emacs-inspired it is. It was actually very easy to go from TextMate to Emacs.
Along the way, I got more productive in my shell. Did you know that M-left moves back a word on the command line? I didn't, and I've been using bash for 10 years. Oh, and it works in all readline-enabled apps.
I get frustrated when running a shell in a regular terminal. They all implement some subset of emacs editing keystrokes, but never all of them, and the subsets are different. It's wonderful having all editing, searching, etc. functionality of emacs available when typing in your shell.
I wrote some Emacs Lisp to jump to the line of a javac syntax error, or stack trace line with a single keystroke. Combining that with the ability to run a shell and browse log files comes in very handy. I also have a macro that searches for the Java symbol under the cursor. It misses a bunch of edge cases, but still very useful. All of this in just 55 lines of elisp. How many lines does it take to write "Hello, World!" as an Eclipse plug in?
Hm, so the functionality you describe is not possible with vim? I was planning to switch to vim in the future. I have used Emacs before, but I never became really good at it. However, the functionality you describe really seems quite important.
I know of various attempts to get this sort of functionality in Vim but I've never been able to get it to work very well. The bottom line IMO is that Vim is not designed for this sort of thing while Emacs is.
The funny thing is, every time I go to write some Clojure code - I want to open a Vim session, but I am always strangely drawn to Emacs for some reason.
Recently, I decided to figure out what it was about Emacs that made me want to use it so much over Vim. I soon realised it was all about being able to load a REPL process in a window and interact with it on the fly.
I can run Emacs, open a Clojure source file, write a function then hit C-M-x to send the function to the REPL to be evaluated. Also relevant is that Clojure support in Emacs was available shortly after Clojure's release to the public late in 200.
This is a very specific case (lisp-style interactive development) but it's why I personally think Emacs is great and for me it has nothing to do with Emacs text editing features! I will always prefer Vim for pure text editing power.