Loving Vim

I love Vim. I've been using it for a long time
for bascially everything. I'm writing code locally in it, use it in ssh
sessions remotely and yes, I'm writing this post in it.

The power of Vim and beginner friendliness

The thing I like the most about it is its grammar.
For me that's the most powerful part of Vim.
No modern editors have figured this out yet, but the fact that
you can combine verbs and nouns into commands is what makes
the difference.

I don't suggest Vim to beginners. The reason behind this is
the fact that Vim operates in modes, which makes it
unintuitive to open the file and edit it. Not to mention
exiting Vim. If you're just getting started with programming
and are searching for a solid editor, I'd recommend Atom.
It's free, really intuitive, configurable, comes with syntax highlighting and
has a large community providing an endless number of plugins.

Dotfiles

The really cool part of Vim is seeing how other people use it,
which is made possible by the configuration file Vim uses, which
people can share online, in their dotfiles. Github search for that term
will give you a lot of repositories to look into for inspiration.
Dotfiles are not just for Vim, they are a powerful tool for saving
entire environment. From zsh/bash configuration to git configuration
to Vim configuration, it's all saved there. You can test someone else's
environment configuration by making a new user locally and cloning the
dotfiles repo, symlinking those configuration files. If you still don't have
it you should consider making a dotfiles repo and storing your settings
there. By doing that you'll no longer have to worry about losing
your settings if something happens to them locally.

Three plugins I use the most frequently

" Set CTRL-P to ignore anything matching this regexletg:ctrlp_custom_ignore ='DS_Store\|tmp\|node_modules'" Set CTRL-P to lookup files based on regex, instead of basename onlyletg:ctrlp_regexp =1" Set CTRL-P working directory to the first ancestor directory that contains .git/letg:ctrlp_working_path_mode =2

And that's it, those are the most essential plugins I would recommend.
Other than those plugins, I use <C-o> and <C-i> to navigate between files a lot.

I use Bower as a package manager for my Vim plugins,
since it's the package manager that allows Github repos as package locations
and I've found that most of Vim plugins are hosted on Github. No changes are
required on the repo for it to be acceptable by Bower. It's great because
it lets you keep a JSON file of the list of plugins you use in your dotfiles
repo.

As an example of how a vimrc file looks after a couple of years of use
you can take a look at my vimrc. For plugin suggestions take look at all the plugins I use.