On Sun, Jul 09, 2006 at 04:12:49PM +0000, Yakov Lerner wrote:
> On 7/9/06, Matthias-Christian Ott <[EMAIL PROTECTED]> wrote:
> >Yakov Lerner wrote:
> >> This is wrong.
> >> You want "\n", not '\n'.
> >Ok, but the problem still exists.
> 
> >vnoremap <silent> <C-W> :call FormatDeclarationSelection ()<CR>
> >
> >        let lines = split (@", '\n')
> 
> The problem has nothing to do with split().
> 
 The solution is to add keyword "range" to the function header line:
> 
>         function FormatDeclarationSelection () range
> 
> This makes the mapping to invoke the funcion once, not
> once-per-line. See :help function-range-example
> 
> Yakov

     Another option is to remove the range before calling the function:
either

vnoremap <silent> <C-W> <Esc>:call FormatDeclarationSelection ()<CR>

or

vnoremap <silent> <C-W> :<C-U>call FormatDeclarationSelection ()<CR>

Remember that, when vim switches from Visual mode to Command-Line mode,
it automatically inserts the range '<,'> .

HTH                                     --Benji Fisher

Reply via email to