This is not a vim plugin. I am not that smart to code a plugin. Rather, I am just writing a note here on how I am using Vim to write stuff, mostly blog entries for Caspershire & Caspershire Meta.
Note that I prefer writing using gvim (Arch linux: sudo pacman -S gvim) rather than using in-terminal vim, mostly because I am trying to retain sanity.
To enter my zen writing mode, here are the plugins I am currently using:
- Goyo. It has the iA Writer feels.
- Limelight, best coupled with Goyo.
- vim-pencil, makes writing a better experience.
- vim-grammarous, a grammar checker.
- vim-wordy to identify word misuse.
- Latest Vim, which is Vim 8. Vim 7 is a thing of the past.
These plugins best be installed with a plugin manager. I always go with Vundle because that’s what I started with at first.
I have this (kind of) config file for my writer mode here ~/.vim/writer.vim. Here’s the content:
SoftPencil
colorscheme pencil
set background=light
Goyo
Limelight
In this current form, my Writer Mode is basically usable. When I am writing and my current buffer is a markdown file, I simply call my writer mode by issuing :source ~/.vim/writer.vim and magic happens. However, ain’t nobody got time to write this long command. Hence, I mapped this in my ~/.vimrc.
nnoremap <space>wr :source ~/.vim/writer.vim<cr>
So to get into my zen writing mode, I simply press <space>, sequentially followed by w and r. The only downside is that I need to quit twice, because the first :q to close Goyo and another :q to exit Vim.
Zen Writer activated!
I treat my <space> key as my leader key for two reasons: I am also using Emacs with Spacemacs distribution where the leader key is <space> and because the <space> key is big I can hit this key with 99.99% accuracy even while I am sleeping.
For proofing, I first use :set spell spelllang=en_us to enable Vim’s built-in spell-checking, in which I mapped this key to <space> followed by s key twice.
nnoremap <space>ss :set spell spelllang=en_us<cr>
As for checking the grammar, I call :GrammarousCheck. For some weird reason, it is better to run this grammar checking when Goyo is off. To turn off Goyo, just issue :Goyo. Sometimes I also use :Wordy to gauge the quality of my writing.
Note 01: I set the font in gvim to use Cousine Regular (10 pt) because I like how it looks.
Note 02: I like to complicate things. I am running gvim on a virtualized Arch linux because we don’t have a gvim for macOS or Windows. Although the setup is time-consuming, but I like the result. There is Oni, a GUI front-end for Vim but it is based on Electron. It beats the purpose of Vim itself. Vim is supposed to be lightweight, and Electron is exactly the opposite of that.