Skip to content

subnut/vim-iawriter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

cf3d543 Â· Jul 10, 2022

History

56 Commits
Aug 18, 2020
Aug 22, 2020
Oct 13, 2020
Aug 17, 2020
Aug 16, 2020
Jul 10, 2022

Repository files navigation

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 😄
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()
  • Checks if vim-iawriter is already running. If yes, closes it (by closing Goyo). Else starts it.
s:pre_enter()
  • 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
s:post_enter()
  • Runs after Goyo starts
  • Enables Limelight
  • Sets up autocmds to call s:leave() on closing Goyo
  • Applies configs
s:leave()
  • Runs when Goyo closes
  • Restores original configs

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


Screenshots

dark light