25 Vim Tutorials, Screencasts, and Resources

25 Vim Tutorials, Screencasts, and Resources

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 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

PeepCode

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!

3. Vimcasts.org

Vimcasts

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

100 Color Schemes

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>
Surround plugin

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

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

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!

Add Comment

Discussion 38 Comments

  1. Staff

    Wow, great collection, Jeffrey! I’ll definitely be checking a lot of these out.

  2. Lenin says:

    Great! was thinking of requesting you to start a series on it :)

    • Jeffrey Way says:
      Author

      You think so? I’m curious as to why? I’d love to learn more.

      • Miron Yanovsky says:

        Vim is more advanced than vi

        – Working with many files simultaneously. Splitting windows editing can be performed repeatedly, both horizontally and vertically.
        – Support Unicode.
        – Support for visual mode, which allows, for example, perform operations on blocks of text.
        – Unlimited undo and redo action.
        – Broad support for file (a file with a certificate and more than 200 files with syntax description).
        – Syntax highlighting, automatic determination of the indentation for each line depending on the programming language (natively supports over 200 languages and configuration file format).
        – Integration with the operating system that provides opportunities close to the integrated development environments, such as searching for bugs reported by the compiler, code completion IDs, etc.
        – Support for a scripting language, the ability to write extension modules – plugins.
        – Automatic extension commands, words, lines and file names entirely.
        – Automatic invocation of external commands (for example, automatically decompress the file before editing).
        – Recognition and conversion of various file formats.
        – Convenient mechanism for command history, search terms, etc.
        – Write and execute macros.
        – Ability to save settings and session.
        – Can be integrated with programming languages Perl, Tcl, Python and Ruby.
        – Language support right-to-left (Arabic and others).
        – Folding (folding) of the text for better viewing.
        – Possible to use graphical user interface in a special version (GTK, Motif, …).
        – Well-configured and customized for the needs of the user.
        – For fans of the vi: almost one hundred percent compatibility with vi.

        Sorry for my English

    • Joe says:

      Trolls will troll, and I will bite.

      There’s absolutely no reason to use vi anymore.

  3. Very complete set of tutorials. Congrats :-D

  4. eric says:

    Guys,

    you are like a bunch of kids who found their dad’s Playboy from 30 years ago.

    I have been using vi for the last 20 years and I can assure that I only use vi if I am making a small update and I am already in a shell or if I am on a TTY terminal remotely to a system.

    I applaude you all for picking up this oldy but goody…. however you are wasting my time. I am a paying customer and NETTUTS was the reason I came to envato but I find myself going to Vector, PSD, AE, and Active more than here.

    • Fortunately, this place isn’t about you and there are others that want to learn different things they haven’t tried or been exposed to.

      • eric says:

        You are correct sir. Definitely not about me.

        Again I am glad you are all interested and by all means learn it because it is valuable. However notepad is a pretty good editor too.

        Doesn’t mean we need more than one tutorial on it.

    • Jeffrey Way says:

      Umm..Vim is widely considered to be the best code editor on the planet — and we’ve never covered it on Nettuts+ until a couple weeks ago.

      I apologize if you’re not interested in this, but others are.

      • eric says:

        Not trying to be a punk. Love the work you guys do and if you can supplement this with another tut that day I am satisfied. I think perhaps you guys may need to spawn another site geared towards shell scripting that jives with snipplr where you could showcase stuff like this.

  5. piyansitll says:

    bu ne kardeşim karma karışık

  6. adrusi says:

    thank you sooooo much!!!

  7. Catalin Codreanu says:

    hey jeff! what is the colorscheme in this img http://nettuts.s3.amazonaws.com/801_vimResources/vim_resources.jpg? thanks.

  8. Brian Egan says:

    Hey Jeffrey,

    Great stuff! As another paying premium member, I’d like to say thanks for these Tuts! Perhaps other stuff could be covered as well, but the editors we use play such an important role in our workflow I think it’s really useful to explore new tools.

    And one quick editorial note (Sorry, not trying to be too anal, but my dad’s an English Prof =P):

    The heading “Still Undecided: Here from your Peers” should read: “Still Undecided: Hear from your Peers”.

    Also, for JavaScript debugging, I’ve found that this is my favorite JSlint plugin so far: http://www.vim.org/scripts/script.php?script_id=2578

    All the best!
    Brian

  9. Rung Wee says:

    Oh wow, you really did pick some good ones. Well done.

    http://www.web-anonymity.tk

  10. Jonathon says:

    I use vi(m) daily and while maybe not a true power user, I am fairly proficient. I knew about most but not all of these plugins, but I still very much appreciate the article. If anything, I think sharing how you (and others) use tools, like vi(m), is very beneficial.

    I’m going to play around with snipMate as I think it has the potential to increase my productivity, however I did have to do some tweaking to get it configured correctly (going to work with them to resolve the issue).

  11. Diego Machado says:

    Hey Jeffrey ! I strongly suggest you to take a look at Command-T plug-in, to make the life of TextMate’s fans easier on the switch.

    https://wincent.com/products/command-t

    VIM is the most-powerfull and clever editor ever, great collection !

    Next article should be about tweaking VIM with the .vimrc file.
    I’ve had a lot of work with it as a VIM noob, and a article to clarify this would be awesome. The default config. of VIM has a great power to discourage the begginers.

  12. Thomas Bennett says:

    VIM is awesome. I was a Mate user as well until a buddy of mine start punching me everytime he saw me touch the mouse. I had to learn the hard way. Needless to say, Yehuda Katz is right in his article that it should be painless and shouldn’t slow down productivity. Once you start manipulating your .vimrc and by downloading MacVim to maximize the folder structure, plugins, and color options now I use it straight out of the terminal and my productivity has more than doubled in the past year.

    • Thomas Bennett says:

      Great article!

      One thing I will say Jeffrey, the “Surround” plugin is actually pretty awful in my opinion, however.

      Reasons:
      -If you “fold” several lines the color-scheme goes away for those lines.
      -When you open the “fold” it gets really buggy with the inner color-scheme of the fold and also can disappear.
      -When you go one line below an opened fold, the fold closes (which can be really annoying if you have 300+ lines of tables or some graphs folded.
      -The tags close with
      -Completely unreliable on when it actually surrounds. When writing code from scratch it works but I’ve found sporadically during editing produces no .

      I’ve written my own auto-close in my .vimrc but instead of this popular (over-rated) plugin, I would recommend trying AutoCompleteTags or another one you find!

      Thanks!
      thomas

  13. Tomas says:

    More free learning.
    Swaroop C H book: http://www.swaroopch.com/notes/Vim

  14. Gary says:

    Nice collection, its going to take me awhile to work my way through these.

    Thanks!

  15. Lou says:

    I didn’t see the vim wiki mentioned, so here it goes: http://vim.wikia.com/wiki/Best_Vim_Tips . It’s a must if you’re new to vim IMHO.

  16. Jason says:

    Great resources. Would love to have Emacs tutorials.

    • adrian says:

      I agree, I definitely like vim, but I would like to try emacs, since it’s so popular, but I can’t find many decent tutorials

  17. Rick Harding says:

    I’ve definitely got a while to go before I make the video list, but want to plug my own screencasts. I try to cover stuff beyond the new user material. http://lococast.net/archives/category/screencast

    And of course I think my own Vim config it close to ultimate, but mine is definitely more Python orientated these days. http://github.com/mitechie/pyvim/blob/master/.vimrc

    Thanks for the links to the other screencasts though. I already see a couple I need to check out.

  18. Tim Shortt says:

    It’s a little long, but dont’ forget about this informative and entertaining video from the creator of Vim (Bram):

    http://video.google.de/videoplay?docid=2538831956647446078#

  19. vaff says:

    I’d love to get to use VIM but setting up a great config seams hard compared to just using a GUI editor. I can see that its great its really customize able … but as a beginner it just seams really hard.

  20. I’m going to play around with snipMate as I think it has the potential to increase my productivity, however I did have to do some tweaking to get it configured correctly (going to work with them to resolve the issue).

  21. nXqd says:

    you should include on ultimate vimrc configuration from a great python developer: amix : http://amix.dk/vim/vimrc.html

  22. Kris says:

    If your doing Ruby/Rails development you might want to take a look at: https://github.com/krisleech/vimfiles

    I’ve been using Vim for around 9 months now and this is the accumulation of my findings all wrapped up as a README, vimrc and a bunch of plugins.

Add a Comment

To add a code snippet to your comment, please wrap your code like so: <pre name="code" class="html">YOUR CODE</pre>. You can replace the class name with "js," "css," "sql," or "php." If there are any "<" or ">" within your code, please search and replace them with: &lt; and &gt; respectively.