On Wednesday, March 12, 2014 6:01:01 PM UTC-4, Bram Moolenaar wrote:
> Christian Brabandt wrote:
> 
> 
> 
> > On Mi, 12 Mär 2014, Liang Li wrote:
> 
> > 
> 
> > > The following happens to me in vim 7.4:
> 
> > > 
> 
> > > :e bufA
> 
> > > (modify bufA)
> 
> > > :vsp        "This works fine
> 
> > > :vsp bufA   "This will throw an E37 error
> 
> > > :vsp! bufA  "This will abandon changes and split the buffer, even though 
> > > the buffer is never hidden
> 
> > > 
> 
> > > A minor thing but it seems unexpected. If I do this from a different 
> > > split, ':vsp bufA' works as expected, eg:
> 
> > > 
> 
> > > :e bufA
> 
> > > (modify bufA)
> 
> > > :vsp bufB
> 
> > > :vsp bufA    "works fine
> 
> > > 
> 
> > > This mostly arises as an issue during scripting.
> 
> > 
> 
> > I think, this patch fixes it:
> 
> > 
> 
> > diff --git a/src/ex_docmd.c b/src/ex_docmd.c
> 
> > --- a/src/ex_docmd.c
> 
> > +++ b/src/ex_docmd.c
> 
> > @@ -7903,7 +7903,7 @@
> 
> >                 && eap->cmdidx != CMD_vsplit
> 
> >  #endif
> 
> >                 )
> 
> > -           || *eap->arg != NUL
> 
> > +           || (*eap->arg != NUL && STRCMP(eap->arg, curbuf->b_fname) != 0)
> 
> >  #ifdef FEAT_BROWSE
> 
> >             || cmdmod.browse
> 
> >  #endif
> 
> 
> 
> This would need a better check for the argument being equal to the
> 
> current file name.  Or perhaps any loaded buffer name.
> 
> 
> 
> This also needs documenting.  Especially that ":sp bufA" does not reload
> 
> while ":sp bufB" does, if bufB is open in another window.
> 
> 
> 
> On the other hand, this behavior change might cause trouble for those
> 
> who depend on the buffer being reloaded.
> 
> 
> 
> -- 
> 
> SIGIRO -- irony detected (iron core dumped)
> 
> 
> 
>  /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
> 
> ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
> 
> \\\  an exciting new programming language -- http://www.Zimbu.org        ///
> 
>  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Hey Bram,

> This also needs documenting.  Especially that ":sp bufA" does not reload
> while ":sp bufB" does, if bufB is open in another window.

The issue isn't that :sp bufb reloads when bufB is open in another window (it 
does not, in that case), it is that it reloads when the buffer from which the 
command :sp bufb is being called is bufb.

Basically, :sp reloads if and only (1) it is called with an argument, and (2) 
that argument matches the name of the current buffer. I would consider this 
unexpected / undocumented behavior, and that a modification to this behavior 
would cause less documentation.

Thanks!

Leon

-- 
-- 
You received this message from the "vim_dev" 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_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui