Distraction Free Writing with Vim

I recently configured Vim to switch to a special writing mode upon opening Markdown files. It helps me to keep the focus while writing avoiding distractions. I first saw this concept in iA Writer and immediately fell in love with it. However, my muscle memory was too tied with Vim and I didn't want to switch to a different editing environment solely for this purpose. Hence, I tried to make Vim to behave in a similar manner. Check this screencast to see it in action:

For anyone interested, these are the steps I took to setup it. Please note that I tried this with MacVim on OS X Lion. It may not work as expected in other versions or other OSs. Installed syntax highlighting plugin for Markdown.

Enabled iA Writer color scheme for Vim. I made some customizations to get the current appearance.

Added the following custom function into .vimrc , to run when a Markdown file is created or opened.

" turn-on distraction free writing mode for markdown files au BufNewFile,BufRead *.{md,mdown,mkd,mkdn,markdown,mdwn} call DistractionFreeWriting() function! DistractionFreeWriting() colorscheme iawriter set background=light set gfn=Cousine:h14 " font to use set lines=40 columns=100 " size of the editable area set fuoptions=background:#00f5f6f6 " macvim specific setting for editor's background color set guioptions-=r " remove right scrollbar set laststatus=0 " don't show status line set noruler " don't show ruler set fullscreen " go to fullscreen editing mode set linebreak " break the lines on words endfunction

I also added this setting to .vimrc , to toggle SpellChecking in normal mode.

:map <F5> :setlocal spell! spelllang=en_us<CR>

Installed the Cousine font. It's a free alternative to Nitti Light, the font used by iA Writer.

Turned off Mac OS X's native full-screen mode for MacVim (otherwise the custom background color is not applied).

defaults write org.vim.MacVim MMNativeFullScreen 0