diff --git a/Customization.md b/Customization.md index e6bd47d..23ab200 100644 --- a/Customization.md +++ b/Customization.md @@ -24,6 +24,30 @@ endfunction let g:goyo_callbacks = [function('Goyo_before'), function('Goyo_after')] ``` +## Quit Vim on `:q` if it's the only remaining buffer + +```vim +function! GoyoBefore() + let b:quitting = 0 + let b:quitting_bang = 0 + autocmd QuitPre let b:quitting = 1 + cabbrev q! let b:quitting_bang = 1 q! +endfunction + +function! GoyoAfter() + " Quit Vim if this is the only remaining buffer + if b:quitting && len(filter(range(1, bufnr('$')), 'buflisted(v:val)')) == 1 + if b:quitting_bang + qa! + else + qa + endif + endif +endfunction + +let g:goyo_callbacks = [function('GoyoBefore'), function('GoyoAfter')] +``` + ## Disabling plugins ### MiniBufExpl with `g:miniBufExplBuffersNeeded` set