As I continue my self-imposed thirty days of Vim, I've come across a plethora of excellent tutorials, resources...even screencasts. If you're like me, and are just beginning to dig into this fantastic open source editor, hopefully the following will help to push you along.

Screencasts

Derek Wyatt quite possibly has the best selection of Vim related screencasts on the web. Even better, he covers the spectrum, by offering screencasts for beginners, all the way to advanced topics. I've watched all of them myself, and continue to come back! These are highly recommended.

When I initially asked on Twitter where I could better learn about Vim, once of the most recommended resources was PeepCode's Smashing into Vim two-part series. Though not free ($19), I still learned quite a bit, and recommend it!

Though this site is currently on hiatus, Vimcasts.org provides a new and helpful screencast each week. Focusing on the fundamentals of working with Vim, these videos come highly recommended!

When first getting started with Vim, even installing plugins is a difficult process -- let alone which ones to get! This helpful YouTube video: Top Vim Plugins does the trick in roughly eight minutes.

Another fantastic video series, Justin Lilly created seven or so video tutorials on working with Vim. Definitely watch the ones that interest you!

Don't forget about us! Sometimes it's easier to learn a new platform, framework, or language from the student sitting next to you, rather than the teacher, ironically. As I continue my thirty days of Vim, I'm logging my progress each week. That way, you can work along. We're only on week two (as of today), so now is a great time to become a Premium member if you'd like to participate.

Tutorials

This one is a helpful (and scrollable friendly) tutorial that should quickly get you up and running with the fundamentals.

"This is the Vim cookbook page. It contains short recipes for doing many simple and not so simple things in Vim. You should already know the basics of Vim, however each command is explained in detail. "

Perhaps less tutorial, and more thoughts, I took some time a couple days ago to discuss my first experiences with Vim, and why I'm quickly becoming an advocate.

"This tutorial assumes a basic knowledge of vim -- insert mode, command mode, loading and saving files, etc. It is intended to help vi novices develop their skills so that they can use vi efficiently."

Though not specifically Vim related, a solid understanding of the Terminal is required. This round-up of tips should help you to get started!

Yehuda Katz, who is a core team member of Ruby on Rails, discusses his troubles with switching from TextMate over to Vim. He notes that what worked for him was adopting the platform incrementally with MacVim. This allows for the use of the common commands that we're all used to. It's a good read if you're still on the fence.

7. vimtutor

Let's not forget perhaps the best resource available on Vim, which is 100% free. Simply switch to normal mode, and type: :! vimtutor . Vim provides a thirty minute hands-on training course that you should really try to work through, if you're just getting started.

Resources

When searching for additional color schemes for Vim, I came across a massive bundle of 100 unique skins, which can be downloaded all at once. I'm currently using the dusk theme.

If you're not familiar with Zen Coding yet, learn it...and use it! In fact, I have a tutorial on it. One of my initial gripes with Vim was that it seemed as if I would have to give Zen Coding up -- which I've grown to rely on. Luckily, this isn't so, thanks to the excellent zencoding.vim plugin.

Again, one of the fantastic features of TextMate is its bundle feature. This allows you to, for instance, type <div> + tab , and have a full div element expanded. It's tremendously helpful. Thankfully, this has been adapted, via a plugin, for Vim: snipmate.vim.

The surround plugins kicks major butt. As you might have guessed, it allows you to wrap portions of text with parens, tags, braces, etc. As an example, with the plugin installed, if I wanted to select a line of text and automatically wrap it within <p> tags, I could, in normal mode, type:

If you later decide to change the wrapping tag from a p to an h1 , that's easy too! Simply type:

Plugins can be as intricate or as simple as necessary. TComment's primary purpose is to allow you to easily and quickly comment certain lines of your code. It will automatically determine the file type, and create the comment syntax to match. If I'm working within a JavaScript file and want to comment out a particular line, I can quickly do so by typing in normal mode:

File browsing in Vim can be a bit more difficult than necessary. However, there are a full crop of plugins that hugely simplify the process. My favorite (so far) is called NERDTree.

"The NERD tree allows you to explore your filesystem and to open files and directories. It presents the filesystem to you in the form of a tree which you manipulate with the keyboard and/or mouse. It also allows you to perform simple filesystem operations."

For the visual learners out there, this cheat sheet, though a bit old, still is perfectly relevant. Print it out, and put it on your wall!

What better way to learn Vim than to read the manual for free! Here's a direct link to the pdf.

MacVim is the perfect medium between working hardcore within Terminal, and using an editor that you're more familiar with. This way, you still have access to the common commands, like Command S (to save) that we're all familiar with.

Tim Pope is a widely respected member of the community, and has developed at least a dozen excellent plugins, particularly for Git and Rails users.

If you're still undecided about making the switch to Vim, sometimes it's helpful to hear the thoughts of your peers. This StackOverflow forum thread is definitely worth a read in those cases.

Really, the first thing you need to do, when setting up Vim, is to configure your .vimrc file. This is essential. Steve's "Ultimate .vimrc File" should provide a great base for your own.

Conclusion

From personal experience, Vim is ridiculously daunting, until, one day, it's not. It all comes down to memorizing a few dozen keyboard commands. Once you've done so, you're in for a real treat!