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.
