Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.


Working with windows

Added Working with windows

This episode demonstrates all the essentials of working with windows: opening, closing, resizing, moving between and rearranging them.


Beginning with Vim

Added Beginning with Vim

This is a long screencast for beginners and intermediates learn about Vim.


Tabs and spaces

Added Tabs and spaces

This episode explains the purpose of tabstop, softtabstop, shiftwidth and expandtab settings, and illustrates how Vim behaves using various combinations of these.


Whitespace preferences and filetypes

Added Whitespace preferences and filetypes

Different file types may require particular whitespace settings. These preferences can be specified by hooking into the FileType event with an autocommand.


Tidying whitespaces

Added Tidying whitespaces

This episode demonstrates a few techniques for tidying up whitespace. First, it looks at how to convert between tabs and spaces. Then it shows how to strip trailing whitespace, and finally, how to remove blank lines from a file.


Indentation commands

Added Indentation commands

This episode covers the commands for shifting text left and right (< and >), and also goes over the auto indent command (=).


Working with buffers

Added Working with buffers

Introducing the buffer list, and commands for switching between buffers. This episode also covers the concept of ‘hidden’ buffers, and shows how to deal with them.


Show invisibles

Added Show invisibles

In this episode, I demonstrate how to customise the appearance of these characters by tweaking the listchars setting. I go on to show how to make these invisible characters blend in with your colortheme.


Working with tabs

Added Working with tabs

This episode covers the essential commands for working with Vim’s tab pages: opening and closing, switching, and moving them.


Meet UltiSnips

Added Meet UltiSnips

Snippets allow you to quickly insert predefined chunks of text into your document. The feature as I know it was first introduced in TextMate, but it has since been emulated by many other editors. For Vim users who want this functionality, the UltiSnips plugin is a great choice. Let’s start by looking at the basics.


Operating on search matches using gn

Added Operating on search matches using gn

The gn command (introduced in Vim 7.4) makes it easy to operate on regions of text that match the current search pattern. It’s especially useful when used with a regex that matches text regions of variable length.


Using Vim's paste mode with the system paste command

Added Using Vim's paste mode with the system paste command

When Vim is compiled without the +clipboard feature, we can still insert text from the clipboard using the system paste command (ctrl-v or cmd-v). This can produce strange effects, but we can avoid them by toggling the paste option each time we use the system paste command.


Search multiple files with :vimgrep

Added Search multiple files with :vimgrep

vimgrep is Vim’s built-in command for searching across multiple files. It’s not so fast as external tools like ack and git-grep, but it has its uses. vimgrep uses Vim’s built-in regex engine, so you can reuse the patterns that work with Vim’s standard search command.


Profiling Vimscript performance

Added Profiling Vimscript performance

Vim users are unforgiving of plugins that impair performance. Luckily, Vim provides built-in profiling tools that make it easy to diagnose performance issues. We’ll start by looking at how to profile the vimrc file, then move on to a real world scenario where profiling helped to identify and aleviate a performance bottleneck.