Vim/Neovim Plugins for Writing

Vim/Neovim plugins for writers.

Distraction-Free Writing

Overview

In my previous article, I talked about Vim/Neovim plugins used to manage notes and to-do lists. Vim/Neovim, being a text editor, can also be a very efficient tool for writing. In this article, let’s explore plugins that writers can use to help them write books, documentation, etc.

Let’s start with some of the popular plugins.

goyo.vim + limelight.vim = Zen Mode

These 2 plugins normally go hand-in-hand. Both are popular options when people talk about distraction-free writing.

Distraction-Free Writing using Goyo and LimeLight

VSCode has a similar feature called Zen mode, and I actually prefer more this name. Nowadays with so many distractions, we all need Zen mode to focus on doing our tasks, whether it is coding or writing.

If you are looking for Neovim plugins only, try these plugins

Writing in Markdown

If you are writing in Markdown, the plugins below should be helpful.

  • vim-markdownfor syntax highlighting, matching rules, and mappings for the original Markdown and extensions.
  • vim-markdown-toc to generate a table of contents for Markdown files.
  • glow.nvim which is a glow plugin for you to preview Markdown directly in Neovim buffer.
  • markdown-preview.nvim to preview Markdown in your modern browser with synchronized scrolling and flexible configuration, including rendering UML diagram, flowchart, sequence diagram, and Text math rendering.
  • vim-livedown is another alternative to preview Markdown using Livedown.

Writing in Latex

If you are writing in Latex,

  • vim-tex is a file type and syntax plugin for LaTeX files.
  • vim-latex-live-preview to preview the output PDF. This plugin works in Unix-like systems only.

Grammar Checking

Vim/Neovim has a built-in spell checker (:h spell), dictionary (:h dictionary) and thesaurus (:h thesaurus). To have a better writing experience especially for grammar checking, you can try using the following plugins which leverage LangugeTool.

See http://www.languagetool.org/languages/ for a complete list of supported languages.

You can also use ALE (Asynchronous Lint Engine) which provides linting (syntax checking and semantic errors) using proselint. You can find the configuration in the ALE repository.

Plugins for Writing

For writers, you may also find the plugins listed below helpful.

vim-table-mode

vim-table-mode is an automatic table creator and formatter which helps you tabular your data easily. E.g. you can create the table shown below on the fly without worrying about the formatting.

|-----------------+--------------------------+------------|
| name | address | phone |
|-----------------+--------------------------+------------|
| John Adams | 1600 Pennsylvania Avenue | 0123456789 |
|-----------------+--------------------------+------------|
| Sherlock Holmes | 221B Baker Street | 0987654321 |
|-----------------+--------------------------+------------|

vim-pandoc

vim-pandoc provides facilities to integrate Vim with the pandoc document converter and work with documents written in its Markdown variant.

With pandoc integrated, you can convert your Markdown file to a wide range of text and binary formats.

vim-pencil

vim-pencil tweaks and optimizes Vim/Neovim settings make it easy for writing, e.g. auto-formatting, options of soft line wrap or hard line break, etc.

vim-abolish

vim-abolish allows you to easily search for, substitute, and abbreviate multiple variants of a word. This plugin is useful for both writers and coders.

Summary

There are many more Vim/Neovim plugins which I may not be able to go through here.

The learning curve and the time you need to invest to learn Vim/Neovim could also be high in the beginning, but once you master it you will find writing and coding in Vim/Neovim a joy.

Do also check out these articles!

Programmer and occasional blogger.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store