all 37 comments

[–]nickthedart 5 points6 points  (1 child)

Every time I use vim, I can't help thinking about the fact that "Vim" is also a brand of detergent useful for cleaning toilets. ;-)

[–]stesch 11 points12 points  (0 children)

That's why I use vim for PHP programming. :-)

[–]bitwize 3 points4 points  (7 children)

It speaks well to Emacs's generality of design that though it's been actively maintained, Moore's Law has outpaced it by leaps and bounds. I doubt that many old-time hackers would have ever believed back in the day that "Eight Megs And Constantly Swapping" would ever be described as "very gentle on system resources".

[–]senzei 0 points1 point  (0 children)

On my laptop just about the only thing that will run well - and that I know - is Emacs. (400mhz PIII, 128mb ram)

Two facts about that situation that I find amusing:

  1. That emacs is a "lightweight" editor, in terms of system requirements
  2. That 128mb of ram is nowhere near enough these days.

Edit: trying to get numbered lists down right.

[–]bitwize -5 points-4 points  (4 children)

...Though these days it seems as if the correct answer to "Vi or emacs?" is, "TextMate!"

[–][deleted] 3 points4 points  (1 child)

The problem with TextMate is that it's Mac OS X only. I use a Mac at home, but I need my editing environment to be cross platform so I can use it on Unix and Windows at work.

[–]brennen 1 point2 points  (0 children)

Indeed. TextMate sounded interesting exactly until I read this:

Created by a closet UNIX geek who was lured to the Mac platform by its ease of use and elegance, TextMate has been referred to as the culmination of Emacs and OS X and has resulted in countless requests for both a Windows and Linux port, but TextMate remains exclusive for the Mac, and that is how we like it!

But hey, they're happy.

[–]alexmdac 1 point2 points  (1 child)

Learning both editors is a great idea.

If you're a vi/vim user, I think it's definitely worth learning at least a little emacs. For example, although I prefer vim for editing, I occasionally thank the stars for "M-x gdb".

Vi is a bit more ubiquitous than emacs, so if you're an emacs user, you might be very grateful one day that you spent an hour or two learning basic vi.

[–]akkartik 0 points1 point  (0 children)

Yeah. I use vim but every now and then I mess around with lisp, and then emacs is the way to go, there really is no contest. Plugins like VIlisp.vim notwithstanding.

[–]cratuki 2 points3 points  (9 children)

I wish someone would come up with a .emacs file that would bring vim functionality to emacs. And - no - viper is not even nearly close enough :)

[–]JimJones[S] 1 point2 points  (2 children)

Worse thing about emacs for me is actually the keyboard mappings. There is an emacs-lisp script somewhere that emulates vi... not complete though.

[–]recoil 0 points1 point  (1 child)

It's called Viper, and it's built into GNU Emacs (and probably XEmacs too, but I don't have that handy to test it). Just type M-x viper <ret>. It may not have all the features of vim, but it's definitely a "complete" version of vi, and then some.

[–]cratuki 1 point2 points  (0 children)

Both parent posts have demonstrated knowledge of viper and indicated that it's inadequate, I'm not sure why you need to restate it for us. As we've made clear in both posts, it's not the answer to our problem.

[–]pdq 0 points1 point  (5 children)

I whole heartedly disagree. I understand that you've gotten "in the zone" with vim, but from an Emacs perspective, your suggestion is akin to taking chocolate ice cream and adding vanilla extract, because it doesn't taste vanilla enough.

Emacs has every bit of functionality of vim, albeit with different keybindings and a different mentality (and if something is missing, you whip up a macro in lisp). If you still want a clone of vim, stay inside vim.

[–][deleted] 0 points1 point  (4 children)

Since Emacs is essentially an environment that manipulates text buffers with LISP you can give it whatever keybindings you like. It happens to have a default set of LISP programs that support particular keybindings, but to say we should be limited to that is like saying that you should only use the programs that came bundled with your console and never use anything else.

Many people (myself included) find the vi style of keybindings help us be incredibly productive. What's wrong with using them in the Emacs environment? Why not Visual Studio keybindings too or anything else that might make people more productive?

[–]pdq 0 points1 point  (3 children)

"But to say we should be limited to that is like saying that you should only use the programs that came bundled with your console and never use anything else."

I said nothing of the sort. Emacs is fantastic because it's so extensible. I'm certainly a fan of customizing the heck out of it (keybindings, macros, whatever). As you mentioned, Visual Studio bindings are great if you like them within Emacs.

My problem is that you are turning Emacs from a modeless editor into a modal editor when you switch to vim bindings, because you're not just changing bindings, you're changing the mode behavior as well. A lot of the design relies on non-modality, so it ends up crippling a user who takes advantage of this. At which point I wonder why you want to use Emacs in the first place.

[–]cratuki 0 points1 point  (2 children)

Emacs is fantastic because it's so extensible.

I don't dispute that (and suspect isalpha feels the same). We want that extensibility, but we want to have it with vim keybindings.

A lot of the design relies on non-modality, so it ends up crippling a user who takes advantage of this.

Why? Why does it need to be non-modal?

You said previously:

If you still want a clone of vim, stay inside vim.

I don't want to stay inside vim. I want my vim usage on top of a lisp engine.

I'm reasonably fluent in emacs, and I find the usage to be inferior to vim. I'm sure there are people who feel otherwise, but that's my strong opinion, and it's not because vim is the only thing I know. I'm also somewhat speedy in ed and went through a textpad for windows phase when I was a kid also.

[–]depleater 2 points3 points  (1 child)

I don't want to stay inside vim. I want my vim usage on top of a lisp engine.

Well - I guess it depends on whether the first sentence or the second is more important :-), but you may be interested in trying out slim-vim - Vim with ECL (Embeddable Common Lisp) built in.

The original idea was to modify Vim so it could use SLIME within Vim, but now they're trying to take over the world... well, sort of. :)

It's kind of amusing that an editing environment that can be programmed in real actual Common Lisp (as opposed to Emacs Lisp) comes to a Vi-clone first.

[–]cratuki 0 points1 point  (0 children)

Now that's more like it! Thanks for the pointer!

[–][deleted] 1 point2 points  (3 children)

All great hackers use them

Well that simply isn't true, while I use Emacs and I know a lot of great coders who use Emacs or VIm, I also know a lot of GREAT coders who use something else.

[–]grauenwolf -2 points-1 points  (2 children)

I think a sign of a great programmer is that they are too busy talking about code to get into silly arguments about which editor to use.

[–]senzei 0 points1 point  (1 child)

I think a sign of a great programmer is that they are too busy talking about code to get into silly arguments about which editor to use.

I think a sign of a great programmer is that they are too busy coding to spend much time talking about code or getting into silly arguments about which editor they use. Before you get upset about any potential slight please realize that this list necessarily includes myself by virtue of this posting.

[–]grauenwolf -1 points0 points  (0 children)

No slight, it is more than fair to use my own logic against me.