Hi,
Yang Luo schrieb am 14.07.2016 um 08:41:
> 
> I write a function like this:
> function InsertNumber(start, end, step)
> 
> let i = a:start
> 
> let curr_line = 0
> 
> while i <= a:end
>         if a:step <= 0
>             echo "Error: step cannot <=0."
>             break
>         endif
> 
> call append(curr_line, i)
> 
> let i += a:step
> 
> let curr_line += 1
> 
> endwhile
> endfunction
> 
> 
> when I call this function, I type this:
> :echo InsertNumber(8,10,1)
> 8
> 9
> 10
> 
> 
> 1) How can I give arguement "step" a default value(eg: 1) when define the function?
> like a C function:
> void C_func(int a, int b_have_default_val = 1)
> {
> 
> ;
> }
you can use optional arguments like this
  function InsertNumber(start, end, ...)
    if a:0 == 0
      let l:step = 1
    else
      let l:step = a:1
    endif
    ...
  endfunction
> 2)
> I want to print number like this, how to do it?
> 08
> 09
> 10
Use the printf() function:
  call appendline(curr_line, printf('%02d', i))
Or if your numbers can have more than two digits:
  let width  = trunc(log10(a:end)) + 1
  let format = '%0' . width . 'd'
  call appendline(curr_line, printf(format, i))
Regards,
Jürgen
-- 
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us.     (Calvin)
-- 
-- 
You received this message from the "vim_use" 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_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment