From 697c079e13b3cc0f7bf8bee8013e876a6a1b327d Mon Sep 17 00:00:00 2001 From: Iain Patterson Date: Tue, 19 Aug 2008 15:56:10 +0000 Subject: [PATCH] ZoomWin plugin. git-svn-id: https://svn.cambridge.iain.cx/profile/trunk@135 6be0d1a5-5cfe-0310-89b6-964be062b18b --- .vim/doc/ZoomWin.txt | 115 +++++++++++++ .vim/plugin/ZoomWin.vim | 368 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 483 insertions(+) create mode 100644 .vim/doc/ZoomWin.txt create mode 100644 .vim/plugin/ZoomWin.vim diff --git a/.vim/doc/ZoomWin.txt b/.vim/doc/ZoomWin.txt new file mode 100644 index 0000000..aa25db7 --- /dev/null +++ b/.vim/doc/ZoomWin.txt @@ -0,0 +1,115 @@ +*ZoomWin.txt* Zoom into/out-of a window Apr 24, 2008 +Authors: Charles E. Campbell, Jr. *zoomwin* + Ron Aaron +Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. *zoomwin-copyright* + The VIM LICENSE applies to ZoomWin.vim and ZoomWin.txt + (see |copyright|) except use "ZoomWin" instead of "Vim" + No warranty, express or implied. Use At-Your-Own-Risk. + +============================================================================== +1. Usage *zoomwin-usage* + + :call ZoomWin() + :ZoomWin + o + + Either of the two commands or the normal mode o will toggle between + * selecting the current window for display as the only window or + * to restore the original multiple-window view. + +============================================================================== +2. Setup *zoomwin-setup* + + Simply put ZoomWin.vim into your .vim/plugin directory (you may need to + make such a directory first). Under Windows that should be + vimfiles\plugin. ZoomWin now uses the HelpExtractor method to + automatically extract help and to make it known to vim by running helptags + on it. + +============================================================================== +3. History *zoomwin-history* + + v23 Apr 24, 2008 : * when |'scrollbind'| was activated: when ZoomWin + attempted to restore multiple-windows, the cursor + position was incorrect. Fixed. + v22 Apr 10, 2006 : * "only" was occasionally issuing an "Already one + window" message, which is now prevented + * SavePosn() issued error message when handling an + empty buffer + * saves yank registers and restores them on each + zoom/unzoom + v21 Oct 12, 2004 : * v14 fixed a bug when wmw and/or wmv equal to 0; + v21 will invoke the patch only if the version <= 603. + For vim version 6.3 users, this fix allows more files + to be handled by ZoomWin. + May 10, 2005 * When :version shows -mksession, and the vim version + is at least 6.3, ZoomWin will now do a partial zoom + v20 Jul 26, 2004 : * bugfix - ZoomWin didn't always retain the + position in the former zoomed-in window after + the window layout was restored. It was restoring + the position when the zoom-in occurred. + v19 May 26, 2004 : * bugfix - winmanager has events firing that, + amongst other things, reset the bufhidden + option to delete for some windows while + ZoomWin worked. ZoomWin now works + successfully with winmanager. + v18 May 20, 2004 : * bugfix - didn't adversely affect anything, but + ZoomWin was deleting its session file twice. + * bugfix -- a multi-source file + minibufexplorer + + Taglist interaction bug -- minibufexplorer's + autocmd events were firing, generating a new + window while ZoomWin was attempting to restore + the display. ZoomWin didn't have restoration + information for the new window and so reported + an error. Events are now temporarily disabled + while ZoomWin is restoring the layout. + v17 Mar 26, 2004 : * ZoomWin command installed. Works nicely with + taglist: vim +Tlist +ZoomWin filename + v16 Dec 22, 2003 : * handles bufhidden and nobl windows (TagList support). + * Now also works with quickfix window (:copen) but + still not with |cmdline-window| (q:) + v15 Dec 19, 2003 : * SavePosn()/RestorePosn() needed to be preceded + by s: to prevent clashes + v14 Dec 18, 2003 : * works around a restoration-bug with mksession + when either wmw or wmh settings are zero + * Bwipes internal temporary buffers + * Known bugs: will not work with command-line + * Editing window (|cmdline-window|) nor the + quickfix window (|copen|). + v13 Dec 18, 2003 : Uses eventignore to prevent events/autocmds from + firing while changing the mksession results. + v12 Dec 12, 2003 : uses hidden and a minimalist mksession save + v11 Oct 14, 2003 : bug fix: apparently RestorePosn()'s variables, + which were b:, weren't always defined, so s: + ones are now used. + v10 Sep 22, 2003 : Bug fix: when a single window is showing, the user + moves the cursor, then o used to restore + screen, the current cursor position wasn't retained + Restores v:this_session. + Bug fix: change a window, use o, then write. + Was saving file only to temporary file instead of + actual file, but when the actual file was brought back, + the changes were lost. + v9 Aug 15, 2003 : v8 managed to trash syntax highlighting on + reload, this one removes the eventignore + handling. Will need more pondering... + v8 Aug 14, 2003 : now handles not-modified but not filereadable + buffers, nowrite buffers uses eventignore to + bypass autocmd firing + v7 May 23, 2003 : bugfix - GotoWinNum() didn't always get the + cursor into the correct window + v6 Mar 25, 2003 : more cleanup included + v5 Mar 14, 2003 : includes support for handling scratch buffers, + no-name buffer windows, and modified-buffer + windows. All windows' contents will be saved to + temporary buffers + v4 Dec 12, 2002 : Zak Beck contributed code to clean up temporary + session files if one leaves vim while zoomed-in + v3 Dec 11, 2002 : plugin-ized + v2 Nov 08, 2002 : A guaranteed-to-be-unique to this + session file is used for session information. + Modified but not yet saved files are made hidden + during zoom in. + v1 the epoch : Ron Aaron's original + +vim:tw=78:ts=8:ft=help diff --git a/.vim/plugin/ZoomWin.vim b/.vim/plugin/ZoomWin.vim new file mode 100644 index 0000000..0cfea92 --- /dev/null +++ b/.vim/plugin/ZoomWin.vim @@ -0,0 +1,368 @@ +" ZoomWin: Brief-like ability to zoom into/out-of a window +" Author: Charles Campbell +" original version by Ron Aaron +" Date: Apr 24, 2008 +" Version: 23a ASTRO-ONLY +" History: see :help zoomwin-history {{{1 +" GetLatestVimScripts: 508 1 :AutoInstall: ZoomWin.vim + +" --------------------------------------------------------------------- +" Load Once: {{{1 +if &cp || exists("g:loaded_ZoomWin") + finish +endif +let s:keepcpo = &cpo +let g:loaded_ZoomWin = "v23a" +set cpo&vim +"DechoTabOn + +" --------------------------------------------------------------------- +" Public Interface: {{{1 +if !hasmapto("ZoomWin") + nmap o ZoomWin +endif +nnoremap