diff --git a/README.md b/README.md index 027af42..2b5ee98 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,10 @@ Use your favorite plugin manager. Usage ----- -`:Goyo [width]` +- `:Goyo [width]` + - Toggle Goyo +- `:Goyo!` + - Turn Goyo off You might map this to a key combo in your `.vimrc` like so: ```vim diff --git a/plugin/goyo.vim b/plugin/goyo.vim index 187735d..0a492c1 100644 --- a/plugin/goyo.vim +++ b/plugin/goyo.vim @@ -301,20 +301,26 @@ function! s:goyo_off() endif endfunction -function! s:goyo(...) +function! s:goyo(bang, ...) let width = a:0 > 0 ? a:1 : get(g:, 'goyo_width', 80) - if exists('#goyo') == 0 - call s:goyo_on(width) - elseif a:0 > 0 - let t:goyo_width = width - call s:resize_pads() + if a:bang + if exists('#goyo') + call s:goyo_off() + endif else - call s:goyo_off() + if exists('#goyo') == 0 + call s:goyo_on(width) + elseif a:0 > 0 + let t:goyo_width = width + call s:resize_pads() + else + call s:goyo_off() + end end endfunction -command! -nargs=? Goyo call s:goyo() +command! -nargs=? -bar -bang Goyo call s:goyo('' == '!', ) let &cpo = s:cpo_save unlet s:cpo_save