vim-iawriter Github repo link Screenshots

This is a minimal plugin that aims to provide an experience similar to iAwriter’s Focus mode. Currently it can only highlight paragraphs. Sentence highlighting is a TODO.

It acts as a wrapper around three other plugins -

For optimal experience, it is recommended to use a GUI or a terminal that supports 24-bit color

Installation

Install the plugins mentioned above, and then install this plugin any way you like :smile:
In case you have never installed plugins before, I recommend you to check out vim-plug

Using vim-plug, the configuration should be -

Plug 'junegunn/goyo.vim'
Plug 'junegunn/limelight.vim'
Plug 'reedes/vim-colors-pencil'
Plug 'subnut/vim-iawriter'

Usage

:Iawriter

Configuration

vim-iawriter does not touch the configurations defined individually for the abovementioned three plugins. If they are defined, vim-iawriter shall respect them.

In addition, vim-iawriter provides a few configuration options -

iawriter_force_defaults

This option shall override ALL other options
It enforces the defaults that ship with vim-iAwriter

i.e. let g:iawriter_force_defaults = 1 implies -

let g:goyo_width = '70%'
let g:goyo_height = '85%'
let g:limelight_paragraph_span = 0
let g:limelight_default_coefficient = 0.7
let g:iawriter_change_underline = 1
let g:iawriter_change_cursorline = 1
let g:iawriter_center_cursor = 0
let g:iawriter_show_signcolumn = 0

iawriter_change_cursorline

vim-iawriter turns off cursorline (if enabled) by default. To keep it on -

let g:iawriter_change_cursorline = 0

iawriter_change_underline

vim-iawriter turns off the underlining of the cursorline (if enabled) by default. To keep it on -

let g:iawriter_change_underline = 0

iawriter_show_signcolumn

vim-iawriter hides the signcolumn by default. To keep it -

let g:iawriter_show_signcolumn = 1

iawriter_center_cursor

This is an experimental feature. If enabled, vim-iawriter shall try to keep the cursor in the vertical center of the screen. To turn it on -

let g:iawriter_center_cursor = 1

Overrides

vim-iawriter provides some overrides. Useful if you use both Iawriter and Goyo/Limelight. It overrides the defaults set in .vimrc

Configuration Option Overrides
g:iawriter_goyo_width g:goyo_width
g:iawriter_goyo_height g:goyo_height
g:iawriter_goyo_linenr g:goyo_linenr
g:iawriter_limelight_default_coefficient g:limelight_default_coefficient
g:iawriter_limelight_paragraph_span g:limelight_paragraph_span

Extras

Screenshots: here

For the preview feature, I personally use markdown-preview.nvim


Advanced configuration

vim-iawriter provides plenty of autocommands -


Autocommand When
IawriterToggleTriggered s:toggle() enter
IawriterToggleFinished s:toggle() exit
IawriterPrePreEnter s:pre_enter() enter
IawriterPostPreEnter s:pre_enter() exit
IawriterPrePostEnter s:post_enter() enter
IawriterPostPostEnter s:post_enter() exit
IawriterPreLeave s:leave() enter
IawriterPostLeave s:leave() exit


s:toggle()
s:pre_enter()
s:post_enter()
s:leave()

See plugin/vim_iawriter.vim for more information on these functions


Screenshots

dark light