A few of my favorite things (in an editor)
I have a couple things I really look for in a text editor.
1) I need vertical selection, and I need it to not be really awkward to do.
2) I need to be able to open up a folder as a project. I can't stand when an xml or .property file is required to define a project. The files are in a folder. That's it
Making Vim nicer/easier
Textmate does both of these, but obviously only works on Mac, and Vim can be made to do both of these things. I have gone back and forth between using Vim and Textmate over the past few years, but I have been using Vim for a while now. A couple of things have contributed to that:
Janus, a well-maintained Vim configuration
Some people recommend not using anything like Janus when first getting started with Vim. That may be good advice to some, but I think in general, anything that cuts down on everyone having to go through the same painful (and not strictly necessary) configuration learning curve is probably useful. If you use Janus and really like it, you will probably go back and fill in some of the basics you missed. One of the things I really like with Janus is they have it configured so that out of the box if you type
vim .
at the command prompt, it will launch vim with Nerdtree (a file folder plugin) showing the current folder. I've never really looked to see if this is complex or easy to do, but with Janus, I don't have to!
A slight note: while the above is still useful at times, I have recently been using the ctrlp (or Command-T works too) plugin to quickly search and open the file I want instead of navigating around in the Nerdtree file navigator.
Even if you use Janus, you still need to learn how to use Vim as an editor (as opposed to setting up its configuration files) and you will no doubt want to make configuration tweaks. The rest of this post is dedicated to some of my favorite links that explain both Vim configuration and how to actually use it as an editor.
Vim Basics
This is a good introduction to customizing Vim:
http://nvie.com/posts/how-i-boosted-my-vim/ (most of my non-Janus vimrc comes from this one)
This is also a introduction to Vim in general:
http://wiki.memodrive.com/_media/docs/tools/vim_tips1.pdf
Key Concepts
You can use Vim for a while without understanding the concepts introduced in this next post, but this is the only one I have ever seen that does a good job of explaining Vim text objects (as compared to motions). He really breaks down the usage of "<#>
http://blog.carbonfive.com/2011/10/17/vim-text-objects-the-definitive-guide/
Once you understand text objects vs motions, this tutorial is a good review.
http://mislav.uniqpath.com/2011/12/vim-revisited/ (although he hates Janus)
Other enhancements
This is a really great plugin, even if you are not using Janus (which just added it).
Basically it makes it easy to jump to the exact desired spot on the screen without counting lines and words (who can count anymore anyway?).
There are a bunch of settings that I prefer (you can see them here, but I am sure there are better .vimrc files out there), but there is one that I could not do without:
set virtualedit+=block
This enables you to navigate beyond the end of the line and onto blank lines when in visual block mode. Without this I find it very difficult to use Vim at all, especially when trying to do some of the things I could do in Textmate with vertical selections.
Some other great blog posts about Vim
http://stevelosh.com/blog/2010/09/coming-home-to-vim/
http://stackoverflow.com/questions/1497958/how-to-use-vim-registers/1498026#1498026 The second most popular answer is really useful and I have never seen it discussed elsewhere.
Thanks for reading, please leave any comments or corrections.