Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions autoload/maximizer.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
fun! maximizer#maximize()
let t:maximizer_sizes = { 'before': winrestcmd() }
vert resize | resize
let t:maximizer_sizes.after = winrestcmd()
normal! ze
endfun

fun! maximizer#restore()
if exists('t:maximizer_sizes')
silent! exe t:maximizer_sizes.before
if t:maximizer_sizes.before != winrestcmd()
wincmd =
endif
unlet t:maximizer_sizes
normal! ze
end
endfun

fun! maximizer#toggle(force)
if exists('t:maximizer_sizes') && (a:force || (t:maximizer_sizes.after == winrestcmd()))
call maximizer#restore()
elseif winnr('$') > 1
call maximizer#maximize()
endif
endfun
30 changes: 2 additions & 28 deletions plugin/maximizer.vim
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ if !exists('g:maximizer_default_mapping_key')
let g:maximizer_default_mapping_key = '<F3>'
endif

command! -bang -nargs=0 -range MaximizerToggle :call s:toggle(<bang>0)
command! -bang -nargs=0 -range MaximizerToggle :call maximizer#toggle(<bang>0)

if g:maximizer_set_default_mapping
let command = ':MaximizerToggle'
Expand All @@ -53,35 +53,9 @@ if g:maximizer_set_default_mapping
silent! exe 'inoremap <silent>' . g:maximizer_default_mapping_key . ' <C-o>' . command . '<CR>'
endif

fun! s:maximize()
let t:maximizer_sizes = { 'before': winrestcmd() }
vert resize | resize
let t:maximizer_sizes.after = winrestcmd()
normal! ze
endfun

fun! s:restore()
if exists('t:maximizer_sizes')
silent! exe t:maximizer_sizes.before
if t:maximizer_sizes.before != winrestcmd()
wincmd =
endif
unlet t:maximizer_sizes
normal! ze
end
endfun

fun! s:toggle(force)
if exists('t:maximizer_sizes') && (a:force || (t:maximizer_sizes.after == winrestcmd()))
call s:restore()
elseif winnr('$') > 1
call s:maximize()
endif
endfun

if g:maximizer_restore_on_winleave
augroup maximizer
au!
au WinLeave * call s:restore()
au WinLeave * call maximizer#restore()
augroup END
endif