aboutsummaryrefslogtreecommitdiff
path: root/vim/autoload/ZoomWin.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/autoload/ZoomWin.vim')
-rw-r--r--vim/autoload/ZoomWin.vim380
1 files changed, 0 insertions, 380 deletions
diff --git a/vim/autoload/ZoomWin.vim b/vim/autoload/ZoomWin.vim
deleted file mode 100644
index d2d993f..0000000
--- a/vim/autoload/ZoomWin.vim
+++ /dev/null
@@ -1,380 +0,0 @@
-" ZoomWin: Brief-like ability to zoom into/out-of a window
-" Author: Charles Campbell
-" original version by Ron Aaron
-" Date: Jan 26, 2009
-" Version: 23
-" History: see :help zoomwin-history {{{1
-" GetLatestVimScripts: 508 1 :AutoInstall: ZoomWin.vim
-
-" ---------------------------------------------------------------------
-" Load Once: {{{1
-if &cp || exists("g:loaded_ZoomWin")
- finish
-endif
-if v:version < 702
- echohl WarningMsg
- echo "***warning*** this version of ZoomWin needs vim 7.2"
- echohl Normal
- finish
-endif
-let s:keepcpo = &cpo
-let g:loaded_ZoomWin = "v23"
-set cpo&vim
-"DechoTabOn
-
-" =====================================================================
-" Functions: {{{1
-
-" ---------------------------------------------------------------------
-" ZoomWin#ZoomWin: toggles between a single-window and a multi-window layout {{{2
-" The original version was by Ron Aaron.
-fun! ZoomWin#ZoomWin()
-" let g:decho_hide= 1 "Decho
-" call Dfunc("ZoomWin#ZoomWin() winbufnr(2)=".winbufnr(2))
-
- " if the vim doesn't have +mksession, only a partial zoom is available {{{3
- if !has("mksession")
- if !exists("s:partialzoom")
- echomsg "missing the +mksession feature; only a partial zoom is available"
- let s:partialzoom= 0
- endif
- if v:version < 630
- echoerr "***sorry*** you need an updated vim, preferably with +mksession"
- elseif s:partialzoom
- " partial zoom out
- let s:partialzoom= 0
- exe s:winrestore
- else
- " partial zoom in
- let s:partialzoom= 1
- let s:winrestore = winrestcmd()
- res
- endif
-" call Dret("ZoomWin#ZoomWin : partialzoom=".s:partialzoom)
- return
- endif
-
- " Close certain windows {{{3
- call s:ZoomWinPreserve(0)
-
- " save options. Force window minimum height/width to be >= 1 {{{3
- let keep_hidden = &hidden
- let keep_write = &write
-
- if v:version < 603
- if &wmh == 0 || &wmw == 0
- let keep_wmh = &wmh
- let keep_wmw = &wmw
- silent! set wmh=1 wmw=1
- endif
- endif
- set hidden write
-
- if winbufnr(2) == -1
- " there's only one window - restore to multiple-windows mode {{{3
-" call Decho("there's only one window - restore to multiple windows")
-
- if exists("s:sessionfile") && filereadable(s:sessionfile)
- " save position in current one-window-only
-" call Decho("save position in current one-window-only in sponly")
- let sponly = s:SavePosn(0)
- let s:origline = line(".")
- let s:origcol = virtcol(".")
-
- " source session file to restore window layout
- let ei_keep= &ei
- set ei=all
- exe 'silent! so '.fnameescape(s:sessionfile)
-" Decho("@@<".@@.">")
- let v:this_session= s:sesskeep
-
- if exists("s:savedposn1")
- " restore windows' positioning and buffers
-" call Decho("restore windows, positions, buffers")
- windo call s:RestorePosn(s:savedposn{winnr()})|unlet s:savedposn{winnr()}
- call s:GotoWinNum(s:winkeep)
- unlet s:winkeep
- endif
-
- if line(".") != s:origline || virtcol(".") != s:origcol
- " If the cursor hasn't moved from the original position,
- " then let the position remain what it was in the original
- " multi-window layout.
-" call Decho("restore position using sponly")
- call s:RestorePosn(sponly)
- endif
-
- " delete session file and variable holding its name
-" call Decho("delete session file")
- call delete(s:sessionfile)
- unlet s:sessionfile
- let &ei=ei_keep
- endif
-
- else " there's more than one window - go to only-one-window mode {{{3
-" call Decho("there's multiple windows - goto one-window-only")
-
- let s:winkeep = winnr()
- let s:sesskeep = v:this_session
-
- " doesn't work with the command line window (normal mode q:)
- if &bt == "nofile" && expand("%") == (v:version < 702 ? 'command-line' : '[Command Line]')
- echoerr "***error*** ZoomWin#ZoomWin doesn't work with the ".expand("%")." window"
-" call Dret("ZoomWin#ZoomWin : ".expand('%')." window error")
- return
- endif
-" call Decho("1: @@<".@@.">")
-
- " disable all events (autocmds)
-" call Decho("disable events")
- let ei_keep= &ei
- set ei=all
-" call Decho("2: @@<".@@.">")
-
- " save window positioning commands
-" call Decho("save window positioning commands")
- windo let s:savedposn{winnr()}= s:SavePosn(1)
- call s:GotoWinNum(s:winkeep)
-
- " set up name of session file
-" call Decho("3: @@<".@@.">")
- let s:sessionfile= tempname()
-" call Decho("4: @@<".@@.">")
-
- " save session
-" call Decho("save session")
- let ssop_keep = &ssop
- let &ssop = 'blank,help,winsize,folds,globals,localoptions,options'
-" call Decho("5: @@<".@@.">")
- exe 'mksession! '.fnameescape(s:sessionfile)
-" call Decho("6: @@<".@@.">")
- let keepyy= @@
- let keepy0= @0
- let keepy1= @1
- let keepy2= @2
- let keepy3= @3
- let keepy4= @4
- let keepy5= @5
- let keepy6= @6
- let keepy7= @7
- let keepy8= @8
- let keepy9= @9
- set lz ei=all bh=
- if v:version >= 700
- try
- exe "keepalt keepmarks new! ".fnameescape(s:sessionfile)
- catch /^Vim\%((\a\+)\)\=:E/
- echoerr "Too many windows"
- silent! call delete(s:sessionfile)
- unlet s:sessionfile
-" call Dret("ZoomWin#ZoomWin : too many windows")
- return
- endtry
- silent! keepjumps keepmarks v/wincmd\|split\|resize/d
- keepalt w!
- keepalt bw!
- else
- exe "new! ".fnameescape(s:sessionfile)
- v/wincmd\|split\|resize/d
- w!
- bw!
- endif
- let @@= keepyy
- let @0= keepy0
- let @1= keepy1
- let @2= keepy2
- let @3= keepy3
- let @4= keepy4
- let @5= keepy5
- let @6= keepy6
- let @7= keepy7
- let @8= keepy8
- let @9= keepy9
- call histdel('search', -1)
- let @/ = histget('search', -1)
-" call Decho("7: @@<".@@.">")
-
- " restore user's session options and restore event handling
-" call Decho("restore user session options and event handling")
- set nolz
- let &ssop = ssop_keep
- silent! only!
-" call Decho("8: @@<".@@.">")
- let &ei = ei_keep
- echomsg expand("%")
-" call Decho("9: @@<".@@.">")
- endif
-
- " restore user option settings {{{3
-" call Decho("restore user option settings")
- let &hidden= keep_hidden
- let &write = keep_write
- if v:version < 603
- if exists("keep_wmw")
- let &wmh= keep_wmh
- let &wmw= keep_wmw
- endif
- endif
-
- " Re-open certain windows {{{3
- call s:ZoomWinPreserve(1)
-
-" call Dret("ZoomWin#ZoomWin")
-endfun
-
-" ---------------------------------------------------------------------
-" SavePosn: this function sets up a savedposn variable that {{{2
-" has the commands necessary to restore the view
-" of the current window.
-fun! s:SavePosn(savewinhoriz)
-" call Dfunc("SavePosn(savewinhoriz=".a:savewinhoriz.") file<".expand("%").">")
- let swline = line(".")
- if swline == 1 && getline(1) == ""
- " empty buffer
- let savedposn= "silent b ".winbufnr(0)
-" call Dret("SavePosn savedposn<".savedposn.">")
- return savedposn
- endif
- let swcol = col(".")
- let swwline = winline()-1
- let swwcol = virtcol(".") - wincol()
- let savedposn = "silent b ".winbufnr(0)."|".swline."|silent norm! z\<cr>"
- if swwline > 0
- let savedposn= savedposn.":silent norm! ".swwline."\<c-y>\<cr>:silent norm! zs\<cr>"
- endif
- let savedposn= savedposn.":silent call cursor(".swline.",".swcol.")\<cr>"
-
- if a:savewinhoriz
- if swwcol > 0
- let savedposn= savedposn.":silent norm! ".swwcol."zl\<cr>"
- endif
-
- " handle certain special settings for the multi-window savedposn call
- " bufhidden buftype buflisted
- let settings= ""
- if &bh != ""
- let settings="bh=".&bh
- setlocal bh=hide
- endif
- if !&bl
- let settings= settings." nobl"
- setlocal bl
- endif
- if &bt != ""
- let settings= settings." bt=".&bt
- setlocal bt=
- endif
- if settings != ""
- let savedposn= savedposn.":setlocal ".settings."\<cr>"
- endif
-
- endif
-" call Dret("SavePosn savedposn<".savedposn.">")
- return savedposn
-endfun
-
-" ---------------------------------------------------------------------
-" s:RestorePosn: this function restores noname and scratch windows {{{2
-fun! s:RestorePosn(savedposn)
-" call Dfunc("RestorePosn(savedposn<".a:savedposn.">) file<".expand("%").">")
- if &scb
- setlocal noscb
- exe a:savedposn
- setlocal scb
- else
- exe a:savedposn
- endif
-" call Dret("RestorePosn")
-endfun
-
-" ---------------------------------------------------------------------
-" CleanupSessionFile: if you exit Vim before cleaning up the {{{2
-" supposed-to-be temporary session file
-fun! ZoomWin#CleanupSessionFile()
-" call Dfunc("ZoomWin#CleanupSessionFile()")
- if exists("s:sessionfile") && filereadable(s:sessionfile)
-" call Decho("sessionfile exists and is readable; deleting it")
- silent! call delete(s:sessionfile)
- unlet s:sessionfile
- endif
-" call Dret("ZoomWin#CleanupSessionFile")
-endfun
-
-" ---------------------------------------------------------------------
-" GotoWinNum: this function puts cursor into specified window {{{2
-fun! s:GotoWinNum(winnum)
-" call Dfunc("GotoWinNum(winnum=".a:winnum.") winnr=".winnr())
- if a:winnum != winnr()
- exe a:winnum."wincmd w"
- endif
-" call Dret("GotoWinNum")
-endfun
-
-
-" ---------------------------------------------------------------------
-" ZoomWinPreserve: This function, largely written by David Fishburn, {{{2
-" allows ZoomWin to "preserve" certain windows:
-"
-" TagList, by Yegappan Lakshmanan
-" http://vim.sourceforge.net/scripts/script.php?script_id=273
-"
-" WinManager, by Srinath Avadhanula
-" http://vim.sourceforge.net/scripts/script.php?script_id=95
-"
-" It does so by closing the associated window upon entry to ZoomWin
-" and re-opening it upon exit by using commands provided by the
-" utilities themselves.
-fun! s:ZoomWinPreserve(open)
-" call Dfunc("ZoomWinPreserve(open=".a:open.")")
-
- if a:open == 0
-
- " Close Taglist
- if exists('g:zoomwin_preserve_taglist') && exists('g:loaded_taglist')
- " If taglist window is open then close it.
- let s:taglist_winnum = bufwinnr(g:TagList_title)
- if s:taglist_winnum != -1
- " Close the window
- exec "silent! Tlist"
- endif
- endif
-
- " Close Winmanager
- if exists('g:zoomwin_preserve_winmanager') && exists('g:loaded_winmanager')
- " If the winmanager window is open then close it.
- let s:is_winmgr_vis = IsWinManagerVisible()
- if s:is_winmgr_vis == 1
- exec "WMClose"
- endif
- endif
-
- else
-
- " Re-open Taglist
- if exists('g:zoomwin_preserve_taglist') && exists('g:loaded_taglist')
- " If taglist window was open, open it again
- if s:taglist_winnum != -1
- exec "silent! Tlist"
- endif
- endif
-
- " Re-Open Winmanager
- if exists('g:zoomwin_preserve_winmanager') && exists('g:loaded_winmanager')
- " If the winmanager window is open then close it.
- if s:is_winmgr_vis == 1
- exec "WManager"
- endif
- endif
- endif
-
-" call Dret("ZoomWinPreserve")
-endfun
-
-" =====================================================================
-" Restore: {{{1
-let &cpo= s:keepcpo
-unlet s:keepcpo
-
-" ---------------------------------------------------------------------
-" Modelines: {{{1
-" vim: ts=4 fdm=marker