Loading ...
Sorry, an error occurred while loading the content.

Re: User command with -nargs=1

Expand Messages
  • Ben Schmidt
    ... I think it just means that it sees the command as having one single argument, and the spaces are considered part of it, rather than breaking it into
    Message 1 of 3 , Apr 30, 2011
    • 0 Attachment
      On 30/04/11 2:42 PM, John Beckett wrote:
      > I thought defining a user command with '-nargs=1' would mean
      > that using more than one argument would give an error, however
      > I can't see a difference between nargs=1 and nargs=*.

      I think it just means that it sees the command as having one single
      argument, and the spaces are considered part of it, rather than breaking
      it into multiple arguments. This possibly only shows up if you use
      <f-args>, as arguments are separated.

      Try the following code:

      command! -nargs=1 TestOne call Test(<f-args>)
      command! -nargs=* TestMany call Test(<f-args>)
      function! Test(...)
      let n = 1
      while n <= a:0
      call append('$', 'arg '.n.': '.eval('a:'.n))
      let n = n+1
      endwhile
      endfunction
      TestOne a b c d
      TestMany a b c d

      Ben.



      --
      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
    Your message has been successfully submitted and would be delivered to recipients shortly.