Awesome,
Your fix works mostly.  The only problem is that the window numbers change after you perform the close.  I simply kept the original buffer name around and checked its window after the close.
Thanks everyone for the help!
I can't believe how inconsistent vimscript can be.
We need a standard library.
Eric
On Tuesday, July 23, 2013 5:20:27 PM UTC-7, Tim Chase wrote:
> On 2013-07-23 17:01, Gary Johnson wrote:
> 
> > On 2013-07-23, Eric Siegel wrote:
> 
> > > Hi everyone,
> 
> > > 
> 
> > > I'm attempting to write a small function that toggles a specific
> 
> > > buffer.  By toggle, I mean quits the window and then splits to
> 
> > > reopen it.  It is important that I quit the window and not delete
> 
> > > the buffer.
> 
> > > 
> 
> > > I can't seem to find a vim function that allows me to quit a
> 
> > > specific window.  I have both the buffer name and the window
> 
> > > number.
> 
> > > 
> 
> > > Do I need to iterate over all windows using "wincmd"?
> 
> > 
> 
> > If you have the window number in 'winnr', you can jump to it with
> 
> > 
> 
> >     exe winnr . "wincmd w"
> 
> > 
> 
> > or maybe
> 
> > 
> 
> >     exe winnr . "wincmd c"
> 
> > 
> 
> > to close it.  I haven't tried the last.
> 
> 
> 
> It does seem a bit anomalous that the last one doesn't work, as most
> 
> of the other wincmd accept a prefixed count to specify the window on
> 
> which it should act (or the number of windows to traverse).
> 
> 
> 
> So you'd have to do a combination of "go there, then close":
> 
> 
> 
>   :exe winnr . "wincmd w" | wincmd c
> 
> 
> 
> This does have the potential to leave you in different window, so you
> 
> might want to preserve your current window, jump to the one you want
> 
> to close, close it, then jump back to the original.  Something like
> 
> this (untested) mess:
> 
> 
> 
>   :let g:oldwinnr=winnr() | exe winnr . "wincmd w" | wincmd c |
> 
>   exe g:oldwinnr . "wincmd w" | unlet g:oldwinnr
> 
> 
> 
> Ugly, but functional.
> 
> 
> 
> -tim
-- 
-- 
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
--- 
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Tuesday, July 23, 2013
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment