From 7c923dd77f2c81b167b5e0fb2e59aee8da390e12 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Wed, 4 Dec 2013 01:32:57 +0900 Subject: [PATCH] Allow users to define custom before/after callbacks (#3) --- README.md | 25 +++++++++++++++++++++++++ plugin/goyo.vim | 8 ++++++++ 2 files changed, 33 insertions(+) diff --git a/README.md b/README.md index 03db559..d0df1f3 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,31 @@ Configuration - `g:goyo_margin_top` (default: 4) - `g:goyo_margin_bottom` (default: 4) - `g:goyo_linenr` (default: 0) +- `g:goyo_callbacks` ([before_funcref, after_funcref]) + +### Callbacks + +By default, [vim-airline](https://github.com/bling/vim-airline), +[vim-powerline](https://github.com/Lokaltog/vim-powerline), +[powerline](https://github.com/Lokaltog/powerline), and +[vim-gitgutter](https://github.com/airblade/vim-gitgutter) are temporarily +disabled while in Goyo mode. + +If you have other plugins that you want to disable/enable, or if you want to +change the default settings of Goyo window, you can define before and after +callbacks as follows in your .vimrc. + +```vim +function! s:goyo_before() + " +endfunction + +function! s:goyo_after() + " +endfunction + +let g:goyo_callbacks = [function('s:goyo_before'), function('s:goyo_after')] +``` Inspiration ----------- diff --git a/plugin/goyo.vim b/plugin/goyo.vim index bb34b82..a5e82ba 100644 --- a/plugin/goyo.vim +++ b/plugin/goyo.vim @@ -168,6 +168,10 @@ function! s:goyo_on(width) let &statusline = repeat(' ', winwidth(0)) + if exists('g:goyo_callbacks[0]') + call g:goyo_callbacks[0]() + endif + augroup goyo autocmd! autocmd BufWinLeave call s:goyo_off() @@ -231,6 +235,10 @@ function! s:goyo_off() if exists('#Powerline') doautocmd Powerline ColorScheme endif + + if exists('g:goyo_callbacks[1]') + call g:goyo_callbacks[1]() + endif endfunction function! s:goyo(...)