> I've seen that people accustomed to one editor are usually averse to using the other.
I think this is more a meme than necessarily a reality - you'll tend to see a lot more comments online from people who think the old joke is funny or who want to validate their own choice than from people who don't care or have tried both without such strong feelings.
In reality, there's really no barrier to 'manage' to use both emacs and vim. If anything, since they're both powerful and configurable programs whose best configuration is personal and some way from the default, it probably is harder to construct your own perfect config in both than for simpler alternatives like web browsers - I guess this may lead to a practical aversion.
Personally, I think vim's modal editing is superb but generally prefer the behaviour of emacs' modes and client model, so I use emacs with evil-mode but have no problem using vim if necessary.
Hehe because I don't subscribe to monotheism? ;) I prefer vim's modal editing mode and have been using it as my primary for as long as I can remember. For clojure/lisp, I found that the vim tooling was just not as elegant/efficient as emacs (fireside et al arent as nice as cider/swank), and decided to learn how to use it. It's not that much of an "antipattern" because the keymaps are very different. I don't like using vim mode within emacs either - for some reason I find myself thinking in emacs mode when editing lisps. I do think that I could be more productive in emacs if I invested more time in the tutorials, but so far it hasn't been an issue. To me, it's more like needing to know how to use Eclipse or IntelliJ to program in Java since their tooling is so great.
Can you tell me more about why cider > fireplace? I'm a clojure developer working in vim, I've considered moving over to emacs a few times, and I'd love to hear what you see as the advantages.
@MBlume - first and foremost, the installation process for me for fireplace was fraught with issues. I installed lein.vim, fireplace, and a bunch of other stuff from all the allied projects : as much as I love vim, it was too much overheard for me to just go through all that! Once I did get it working (and after having worked with emacs/swank/lisp before) - it was just very unintuitive to me. It also feels much slower than cider, and doesn't offer things like the inspector for stack traces and things that cider can. Most importantly, I think the inferior mode in emacs is just a pleasure to use in terms of functionality - I've used it with R, lisp, clojure, and ipython. It's a very neat/clean interface.
There's also the fact that all of these modes are a simple M-x-package-install <package-name> away and they just work. It's kind of like choosing OS X for me after using Linux as my main OS for years and years - I didn't have to worry about the wifi card not being detected or my dual screen display needing a lot of kernel modules : things just work :)
Not really. There are lots of people who get off on imaginary rivalries and enjoy exaggerating the virtues of what they like and the flaws of what they don't like. Some of the more self-aware people know what they're doing and consider it all in good fun, but the dumb ones just go along with it because they actively enjoy engaging in tribalism.
See also casual sports fans who don't understand the game they watch, but understand and enjoy pretending to love one team unconditionally for no particular reason, and hating another team for no reason other than it's fun for them to hate somebody. Ditto for operating system fanboys of all stripes.
I typically use Vim for quick edits on my Mac, and especially on remote boxes.
But for Haskell and Clojure development, it's hard to beat the tight integration features that Emacs provides (e.g. quickly piping your code or a single function to the REPL for testing). Vim is not designed for this; there are plugins available to approximate it, but it’s a bit hacky and nowhere close to Emacs).
Honestly, it's not hard to learn the basics of both. If you're accustomed to Vim commands, Emacs has `evil-mode`. There's also the slick `god-mode`, which is like Vim's Normal mode for Emacs.
Both tools are great in their own ways. Personally, I regularly use and love them both.
I hope some day an editor, written in Haskell, allowing to emulate Vi and and Emacs behaviour will become more appropriate for Haskell programming than any other editor and offer you to either the Vi or Emacs style.
Personally, I started out using Emacs because I wasn't a big fan of the "modal" style of vi (insert/command mode). Later on, I started pair programming in shared GNU Screen sessions, in which we ran vim; a pile of "how did you make that change so quickly" questions later, and I ended up switching to vim for the speed of basic text editing tasks, which save more time than I lose by not having as many high-level mode-specific commands.
However, I still use Emacs for LaTeX documents via AUCTeX, because I find it far more powerful for basic editing, with commands to insert directives, environments, \item, etc.
If you are a Unix user, you almost need to know enough vi to edit a simple file. crontab -e is considered a minor sin in the Church of Emacs, but only a minor one.
and set up Emacs to run (server-start) on startup.
This way, crontab -e should open a new Emacs frame (or start Emacs, if it isn't already running). It will speed things up and make the experience better, while giving you access to all the things you're working on in an already running Emacs.
If emacs is installed. It often isn't. vi almost always is.
I know enough vi to open a file, move up, down, left, and right, search, delete and insert text. And I often run afoul of my emacs muscle memory just doing that. But you really need to know the vi basics if you admin unix machines.
I’ve learnt enough ed to use that instead of vi. If that isn’t installed, I’ve had to resort to nano, and, in rare cases, sed --in-place. But I never need to know vi.
Of course I realize that this is mostly me being silly, but it’s also rather educational.
You are absolutely right. Especially if we are talking about BSD or Unix proper. But, there is a cognitive load to remembering what machine you are on, or if certain variables have been set and so on.
I have been on machines that fire up nano with crontab -e, in the name of user friendliness. These same machines will not respect EDITOR or VISUAL anyway, so I have no idea what to do about them. I usually just get up and creep away making sure not to turn my back on them.
I used both back in college. I usually used XEmacs for coding and reading mail/usenet and vi for sysadmin stuff. These days I've moved on to IDEs for coding and only break out emacs for editing binaries or large files.
It worked out pretty well as long as I used Emacs in an X window and vi on the command line. But if I ran emacs in a terminal, I automatically started typing vi commands into it.