Latest Posts

A List of Vim's Lists 

The more features of Vim you’re familiar with, the easier it is to pick up new ones by making analogies to what you already know. To that end, it can be useful to examine similarly organized features together. Here, we take a look at Vim’s lists, which exhibit a certain amount of symmetry in their design. Read more

Vim and Progressive Enhancement 

Many of my favorite Vim plug-ins build on and improve existing Vim functionality rather than entirely reinventing it. In this article, we take a look at enhancing built-in commands with custom functionality along with several techniques for specifying fallbacks. Read more

The 'wildcharm' Setting 

Vim's 'wildcharm' setting allows you to invoke command-line completion from macros (including mappings). We take a look at a practical example involving a convenient mapping for switching among open buffers. Read more

Vim's Buffers, Windows, and Tabs 

Tabs are a popular UI paradigm for GUI text editors, browsers, and more. The fact that Vim also has a feature called “tab pages” that looks a lot like tabs from other programs can be a common source of frustration for newcomers. In a typical GUI editor, each tab represents a single document. Vim’s tab pages are not tied to documents at all, but rather contain window layouts. First, some definitions: Read more

Vim's : (Colon) Register 

In addition to the named registers a-z and the numbered registers 0-9, Vim has quite a few others including the read-only command register :. Executing a command in command-line mode, such as :write, populates the colon register. You can verify this with the :reg[isters] command. Read more