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
1. Derek Wyatt’s Blog
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.
2. Smashing into Vim
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 ($9), I still learned quite a bit, and recommend it!
3. Vimcasts.org
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!
4. Top Vim Plugins
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.
5. An Introduction to Vim Macros
Another fantastic video series, Justin Lilly created seven or so video tutorials on working with Vim. Definitely watch the ones that interest you!
6. Venturing into Vim: Premium Video Series
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
1. Vim Introduction and Tutorial
This one is a helpful (and scrollable friendly) tutorial that should quickly get you up and running with the fundamentals.
2. Vim Cookbook
“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. “
3. Vim: An Amuse-Bouche
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.
4. Efficient Editing with Vim
“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.”
5. 10 Terminal Commands that will Boost your Productivity
Though not specifically Vim related, a solid understanding of the Terminal is required. This round-up of tips should help you to get started!
6. Everyone Who Tried to Convince Me to use Vim was Wrong
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
1. 100 Color Themes
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.
2. ZenCoding
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.
3. SnipMate
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.
4. Surround
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:
VS<p>
If you later decide to change the wrapping tag from a p
to an h1
, that’s easy too! Simply type:
// Change Surround Tags with an H1. cst<h1>
5. TComment
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:
<c-_><c-_> // Control _ Control _
6. NERDTree
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.”
7. Graphical Cheat Sheet
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!
8. The Vim Book (Links to PDF)
What better way to learn Vim than to read the manual for free! Here’s a direct link to the pdf.
9. MacVim Editor
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.
10. Tim Pope’s Plugins
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.
11. Still Undecided: Hear from your Peers
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.
12. Ultimate Vim Config
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!