On Wed, Nov 28, 2012 at 9:09 AM, Marcin Szamotulski <[email protected]>wrote:
> Hello, > > I really like the command CTRL-Wp to jump to the previous window. In > one of me plugins I jump to another window and come back. This > unfortunately destroys the CTRL-Wp. How to make it work (except of > going through the window that CTRL-Wp points to and coming back through > it). There is keepjumps and keepalt modifiers, I haven't seen something > like this for windows. Any ideas? > > Best, > Marcin > > -- > You received this message from the "vim_use" maillist. > Do not top-post! Type your reply below the text you are replying to. > For more information, visit http://www.vim.org/maillist.php > I do this: let t:lastWindow = winnr() " When changing tabs, the WinLeave also gets called, changing the last window to what is actually the current window. So, we store the previous last window in " the WinLeave autocommand and, if the WinLeave was the result of a TabLeave, restore it in the TabLeave. augroup LastTab au! au TabLeave * let t:lastWindow = t:oldLastWindow au WinLeave * let t:oldLastWindow = t:lastWindow | let t:lastWindow = winnr() au TabEnter * if ( !exists( "t:lastWindow" ) ) | let t:lastWindow = winnr() | endif augroup END function! ToggleWindow( ... ) let windowNumber = exists( "a:1" ) ? a:1 : t:lastWindow if ( windowNumber == winnr() ) let windowNumber = windowNumber - 1 endif if ( windowNumber > winnr( '$' ) ) let windowNumber = 1 elseif ( windowNumber < 1 ) let windowNumber = winnr( '$' ) endif execute windowNumber . 'wincmd w' endfunction You could then set a mapping or add a flag to the autocommand to NOT change the t:lastWindow and then set it before you move about. I have a normal mode mapping to :call ToggleWindow()<CR> Hope this helps, Salman -- سلمان حلیم -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php
