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

Raspunde prin e-mail lui