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
Install the plugins mentioned above, and then install this plugin any way you like 😄
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':Iawriter
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_defaultsiawriter_change_cursorlineiawriter_change_underlineiawriter_show_signcolumniawriter_center_cursor(experimental)
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 = 0vim-iawriter turns off cursorline (if enabled) by default. To keep it on -
let g:iawriter_change_cursorline = 0vim-iawriter turns off the underlining of the cursorline (if enabled) by default. To keep it on -
let g:iawriter_change_underline = 0vim-iawriter hides the signcolumn by default. To keep it -
let g:iawriter_show_signcolumn = 1This 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 = 1vim-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 |
Screenshots: here
For the preview feature, I personally use markdown-preview.nvim
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 |
- Checks if vim-iawriter is already running. If yes, closes it (by closing Goyo). Else starts it.
- Closes Goyo (not vim-iawriter) if running
- Checks if vim-airline is installed & enabled
- Sets up autocmds to call
s:post_enter()on entering Goyo - Loads configs
- Changes colorscheme
- Starts Goyo
- Runs after Goyo starts
- Enables Limelight
- Sets up autocmds to call
s:leave()on closing Goyo - Applies configs
- Runs when Goyo closes
- Restores original configs
See plugin/vim_iawriter.vim for more information on these functions

