Vim is not a Black Box

TL;DR: Curate your own vim configuration file(s).

As programmers, the majority of our time is spent in an editor, be it something as minimal as gedit or a fully fledged IDE such as Visual Studio. Like painters have brushes and musicians have instruments, it is the tool of our craft and as such shouldn't be treated as a black box that you punch symbols into and have shiny binaries pop out. It only makes sense that you know it back to front or you are only limiting your productivity.

I'm surprised that I haven't seen this addressed much in the Vim community (probably didn't look hard enough) and is encouraged in some places. Your vimrc file should be a personally curated and commented list, not some 200 line obfuscated blob that a site generated or you cloned from github with no idea what is happenning under the hood.

There are several offerings strung together with scripts and unecessary dependencies that promise minimalistic setups or configs similar to your previous editor. If you want to learn Vim, do it as you would anything else, start from the bottom. You want line numbers, check the wiki, you like emacs narrowing region feature and want to know if there's something similar, google it, hey there's a plugin that does that. A few searches and +lines later you are happily editing as opposed to cloning a blob, installing Ruby then finding our your version vim wasn't compiled to support it. You have to crawl before you can walk and the quick and easy way will only hurt you in the long run. Vim isn't an opaque box so don't treat or use it as one.

It's also a bit ironic for something as open as Vim, it's not some closed binary you have to download to extend the application, just a simple text file you add commands to. God help if you break it attempting to tweak a function or change a keymap. What tends to happen is later on you might wonder why a default keybinding isn't working only to find after wasting time on the wiki that it should and your glorious productive config generator had remapped it to some obscure command that only works in Visual Mode. If you want the quick and dirty way, Vim is probably not for you or rather you are wasting your time.

So enough ranting, intermediate vim users can skip this of course as it's mostly intended as a warning to beginners. The only time I recommend using someone elses dotfiles is when it is documented and even then, pick bits from it as you need, don't just plop the thing in your home folder. Here are two great examples of perfect config files to pinch from until you understand or need a certain feature. For an even simpler start /u/princker on reddit also suggests idiomatic vimrc.