I am a vim user for about 2 years and a feel a little out of place here. :) I've also used emacs and very much fond of it, but I am comfortable with vim and getting to the same level in emacs will be tricky. But I realized that I am using a fair number of vim plugins as I work with different code and tasks for:

  • code completion
  • fuzzy finder (CtrlP)
  • commenter plugin (nerdcommenter)
  • improved syntax highlighting (C, Python, Go)
  • vim-airline for better information about the files
  • go plugins
  • yada-yada for the total of 15

I have them version controlled and in submodules, and I also have a 200+ line vimrc file. However, I am starting to realize that maybe that's not very healthy and requires maintenance.

Does Emacs require as many plugins to use it efficiently as main code text editor? I don't just mean effective navigation, but also things that make your life easier like better syntax highlighting, auto parenthesis surround, tag matching, file outline and all that stuff. If in some near future I were to move to Emacs, would I find myself in the same boat again and it's just the nature of using editors like Emacs and Vim?

Edit: thanks to the comments I wanted to clarify that the actual question is: are these (or some of them) plugins available out of the box in Emacs (they are not in Vim) or does one needs to search and add them like I do in Vim. Hopefully, this helps making this question unop-ed. I don't want to have an vim vs emacs discussion.

  • 1
    Welcome to Emacs! This question is not good for this site, as it is too broad or primarily opinion-based (IMO). Maybe try to ask a smaller, specific Emacs question. – Drew Jan 6 '16 at 18:33
  • 1
    Please have a look at the site tour to see what kinds of questions work well on this site. First, it's best to ask a single, discrete question per post, and right now, this is a very broad post. Second, we try to avoid questions that will yield primarily opinion-based answers. Please see if you can edit your post to make it more discrete and less likely to elicit opinion-oriented answers. – Dan Jan 6 '16 at 18:34
  • 1
    Sorry, I think the question was: "Are these features available "out of the box", but I did not write that explicitly. I will add that and I hope that clarifies it. I definitely did not mean to start any kind of discussion in vim vs emacs style. – Serge Poele Jan 6 '16 at 18:46
  • If I'm reading your question correctly, you're worried about the amount of configuration required. 200 lines would be an extraordinarily short .emacs file (mostly since emacs configuration is written in elisp, and can contain quite a bit of code.) Just learn to organize your configuration (in any editor or program) and customize to your hearts content. – user2699 Jan 7 '16 at 0:16

To do all the things you mentioned in Emacs should not be very tricky, and all should be possible. However, if you are asking if Emacs will do all/most of the things you want out of the box without configuration, the answer is no.

As you say, if you moved to Emacs you would likely be:

in the same boat again and it's just the nature of using editors like Emacs and Vim

That being said, I don't think that is unhealthy to configure your editor (to a point). In fact, this is one of many things I (and I assume many on this site) love about Emacs. It is a tool that I use all day every day for a living, and so sharpening that tool is necessary and usually improves my productivity (as long as I don't get too sucked in with the tweaking).

If you don't want to do all the configuration yourself, you can use a pre-configured "kit" (I won't say "starter kit", because they are not necessarily for beginners) like spacemacs or prelude. If you are used to working in VIM, you might give spacemacs a try. These kits or "distributions" (and there are others out there) should give you more of the functionality out of the box that you are looking for than vanilla Emacs would. However, I can't imagine you will go to long using any version of Emacs without wanting/needing to do a little bit of tweaking.

Also, I have never used VIM, so I don't know what goes into maintaing a VIM configuration, but if you use an Emacs package manager like MELPA, getting and maintaining plugins/packages should be pretty painless more or less automatic.

In addition, if you use something like use-package to organize packages and package-specific configuration, this will improve your experience and remove some headaches as well.

Finally, you can do the literate programming thing and keep your configuration in an org file like this, or this. This makes it much easier (in my opinion) to keep your configuration organized and maintainable.

  • Thanks @elethan. "Out of the box" part was exactly my question. Thank you for the answer. I absolutely agree about customization - same reason I am using vim. But I've never been on the emacs side and thought maybe things are different in that respect. MELPA is amazing - I used it to install auto-complete plugin and was very impressed. I've never heard of spacemacs or prelude, but I take it it is similar to vim-sense - a "distribution" of configured vim. It seems like the two worlds are very similar and it might be better to learn one or the other, but maybe not both. Thank you for the input. – Serge Poele Jan 6 '16 at 18:40

If in some near future I were to move to Emacs, would I find myself in the same boat again?

Probably, but on a different planet.

...the nature of using editors like Emacs and Vim?

Why not try evil mode during the transition? There's also a screencast before you take the trip.

  • Evil mode sounds pretty cool, but I am not sure I want to "fake" learn Emacs. Vim's modal "logic" is what makes vim, well, vim. I would assume that Emacs has a similar approach with how it does things (I mean some underlying logic of things, like general meaning of M-x or C-x), so I feel like one needs to learn that. However, just the fact that those exist is incredible. :) – Serge Poele Jan 6 '16 at 18:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.