This is a minimal distraction-free theme for writing in Vim. There are many like it, but this one is mine.
There's a light mode that's reminicent of IAWriter for use in bright environments and a dark theme similiar to WriteRoom for dark environments.
I built this specifically for use in MacVim and it works best with Tim Pope's Markdown Syntax or my fork of it.
The best way to install is with a plugin manager like Vundle or Pathogen.
" Add to .vimrc
Plugin 'nathanlong/vim-colors-writer'
git clone https://github.com/nathanlong/vim-colors-writer.git ~/.vim/bundle/colors-writer
If you roll your Vim manually clone the repo and split the files into their respective directories (colors/writer.vim -> .vim/colors/writer.vim and so on).
I've built some simple commands into the plugin, all of these can be remapped:
Command | Map | Description |
---|---|---|
:WriterToggle | <leader>wr |
Toggles writer on and off in fullscreen mode. |
:WriterInitQuiet | <leader>wR |
Loads writer into your current buffer with no fullscreen |
:WriterJournal | <leader>wj |
Creates a new dated journal file (format: YYMMDD.md) in your specified journal directory. |
:WriterJournalOff | <leader>wJ |
Creates a new dated journal file (format: YYMMDD.md) but does not launch writer. |
:WriterSwitchThemes | <leader>wq |
Switches between dark and light themes while in fullscreen mode |
:WriterExit | <leader>wc |
Closes writer and reapplies your defaults |
:WriterWrap | <leader>wp |
Toggle between hard and soft text wrapping. |
Example remapping:
nnoremap <D-R> :WriterToggle<CR>
There are a few options you can place in your .vimrc
to control default behavior:
Setting | Description | Default |
---|---|---|
g:writer_journal_dir |
Controls where the journal function saves files. Accepts a path. | $HOME |
g:writer_theme |
Choose which theme to load by default. Accepts 'light' or 'dark' | 'light' |
g:writer_wrap |
Picks hard wrap (forces line breaks) or soft wrap (no breaks) | 'hard' |
g:writer_font |
Allows GUI font and size to be set, same format as guifont |
none |
Example usage:
let g:writer_theme = 'dark'
let g:writer_font = 'Consolas:h18'