Vim is one of the most popular text editors among programmers, web developers, and power users of GNU/Linux. This is not surprising, because Vim offers high-speed editing, has extensibility, and is pre-installed on most Linux-based distributions.

In addition, Vim offers great benefits to writers, regardless of whether they are technically minded or not. I personally use it not only for editing configuration files and web pages, but for writing blogs, software documentation, notes, and presentation slides. In my opinion, the only potential issue it has might be its relatively steep learning curve. I remember that it took me about two weeks to become comfortable working in it, but since then, editing any kind of text has felt noticeably more fluent compared to other editors I used before.

In this article, I will share a collection of plugins that help me create my documents more efficiently and with fewer grammatical, stylistic, and typographical mistakes.

Note: I use Neovim with a Qt-based GUI, however all of the plugins should all work with any stable versions of Vim as well.

Grammar and word usage

Even though the best way to make sure a text contains no grammatical mistakes is for a human to review it, a grammar checker is still valuable when no one has the time to proofread your work. The plugins vim-languagetool and vim-grammarous provide integration with LanguageTool, which checks for errors not covered by Vim's spell checker. It currently supports 31 languages.

LanguageTool plugin

If you're interested in a more lightweight solution (for English only), vim-wordy is a good choice. This plugin doesn't depend on anything other than Vim, and it looks for mistakes in the current file based on weak wording, jargon, weasel phrases, and so on.

Thesaurus

A thesaurus can give you access to a wider range of vocabulary by listing synonyms of a particular word or phrase. The Multi-Language Thesaurus Query/Replacement Plugin checks for the available synonyms for the word currently under the cursor (or multiple words highlighted in visual mode) and enables you to replace them with any suggestion easily. The currently supported languages are English, Chinese, Russian, and German.

Some backends work with specific online services (for example, Thesaurus.com). Others require a local database, such as the one that you can download from Gutenberg.org or the English thesaurus for OpenOffice.

Thesaurus plugin

Typography rules

On a typical keyboard, only straight quotation marks can be found (the characters ' and "), and many decide this based on their own style guide. However, if you'd like to follow typography rules, use curly quotation marks and apostrophes. Similarly, use en dashes and em dashes instead of single hyphens (-), and three dots instead of an ellipsis.

Since I'm the type of person who generally pays attention to these rules, I have both UniCycle and vim-textobj-quote installed. When active, UniCycle turns all straight quotation marks into curly ones, three dots into ellipsis, and two or three hyphens into en dashes and em dashes, respectively. In addition to doing the same with quotation marks, vim-textobj-quote also provides navigation between opening and closing quotation marks, surrounding words with quotes, and so on.

Note: Digraphs and Compose keys are decent solutions, too, if you want to insert a character that is outside the scope of the above two plugins.

Distraction-free writing

As claimed by Cal Newport in his book "Deep Work," the more distractions we encounter during our work, the less productive we become. Coming from my own experience, I can confirm this to be true. Fortunately, you can easily reduce (and restore) the editor's potentially distracting visual elements whenever you'd like.

Having read the article on the blog titled, "The Darnedest Thing," I've come across Goyo and LimeLight. Goyo disables or hides everything except the file content and the status bar, and centers the text using borderless splits (or, using Vim terminology, "windows"). The status bar is also stripped of everything but the most important parts, such as showing whether you are in insert or visual mode, messages of successful saving, etc. On the other hand, LimeLight dims all the paragraphs (specifically, the non-empty lines preceded and followed by empty lines) besides the active one, so that you can focus on the passage you're currently editing.

LimeLight plugin

Focusing on craftsmanship

I believe writing can be thought of as craftsmanship, because it takes time and careful concentration to convey your message effectively to the widest range of your audience as possible. For this, choosing the right tools is essential. I've chosen Vim and the plugins I've mentioned because I can focus on my work and deliver it faster.

Do you use any plugins for Vim that help you with your writing? I'd love to hear your suggestions.