Hi Bram!
On Mi, 04 Jan 2012, Bram Moolenaar wrote:
>
> Christian Brabandt wrote:
>
> > I noticed a strange behaviour today when using the d command.
> > I was deleting several lines with a motion that selected the last non
> > blank on a line. Surprisingly, this deleted the whole line. After
> > searching the help, I found it explained by this paragraph in the help:
> >
> > An exception for the d{motion} command: If the motion is not
> > linewise, the start and end of the motion are not in the same line,
> > and there are only blanks before the start and after the end of the
> > motion, the delete becomes linewise. This means that the delete
> > also removes the line of blanks that you might expect to remain.
> >
> > So I tried the suggestion, made at :h o_v
> >
> > When used after an operator, before the motion command: Force
> > the operator to work characterwise, also when the motion is
> > linewise. If the motion was linewise, it will become
> > |exclusive|.
> > If the motion already was characterwise, toggle
> > inclusive/exclusive. This can be used to make an exclusive
> > motion inclusive and an inclusive motion exclusive.
> >
> > But surprisingly did not work. So I propose the following fix:
> >
> > diff --git a/src/ops.c b/src/ops.c
> > --- a/src/ops.c
> > +++ b/src/ops.c
> > @@ -1648,6 +1648,7 @@
> > && !oap->block_mode
> > #endif
> > && oap->line_count > 1
> > + && !oap->motion_force
> > && oap->op_type == OP_DELETE)
> > {
> > ptr = ml_get(oap->end.lnum) + oap->end.col;
>
> Yes, this makes sense. Thanks for the patch.
>
> Would there be other places where motion_force needs to be checked?
Possibly ;)
(I don't know how to check)
regards,
Christian
--
Ob denn die Glücklichen glauben, dass der Unglückliche wie ein
Gladiator mit Anstand vor ihnen umkommen solle, wie der römische
Pöbel zu fordern pflegte?
-- Goethe, Maximen und Reflektionen, Nr. 379
--
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