On 2012-11-28 Wednesday at 23:26 -0800 So8res wrote:
> On Monday, November 19, 2012 1:52:44 PM UTC-8, So8res wrote:
> > I think functions with [range] should preserve the cursor line. Assume you 
> > have:
> > 
> > function RangeTest() range
> >   echo line('.')
> > endfunction
> > 
> > And you put the cursor on line 2 and :%call RangeTest()
> > 
> > This function will echo 1, because the cursor is moved to the beginning of 
> > the range *before* entering the function.
> > 
> > I was attempting to create a function which does a search-replace (:s) 
> > without moving the cursor (using winsaveview() and winrestview()). It turns 
> > out this is not possible, because the cursor is moved before winsaveview() 
> > can be called.
> > 
> > Is this the intended behavior, or is it a bug? If it's intended, is there a 
> > way to save the winview before entering a function with [range]?
> 
> Bump. Should I add tests? What's the process for adding tests? (I couldn't 
> find a test testing function [range] and didn't think that adding a new test 
> file was the right decision.
> 
> Are there any objections to adding this functionality?


:h cmdline-ranges
> 4. Ex command-line ranges       *cmdline-ranges* *[range]* *E16*
>
> Some Ex commands accept a line range in front of them.  This is noted as
> [range].  It consists of one or more line specifiers, separated with ',' or
> ';'.
>
> The basics are explained in section |10.3| of the user manual.
>
>                                                 *:,* *:;*
> When separated with ';' the cursor position will be set to that line
> before interpreting the next line specifier.  This doesn't happen for ','.


Why not reusing or enhancing already established commandline syntax?
If “,” and “;” are not sufficient for all desired features of range 
specifications, why not just introducing a new separator between line 
specifications?  E.g. two adjacent commas “,,”, or a caret character “^” would 
not clash with current commandline syntax AFAICS.  This would be easier to 
learn 
from a user POV.  Implementation might require more effort, though.

-- 
Roland

Attachment: pgppi3UjMdd80.pgp
Description: PGP signature

Raspunde prin e-mail lui