11

我正在尝试编写一个函数,该函数调用setlocal以将一些变量设置为我传入的参数。但我收到了错误Number required after =: tabstop=...

function! MyFunction(param)
    setlocal tabstop=param
    setlocal tabstop=a:param
endfunction

两条线都会失败。我缺少某种变量插值吗?

4

1 回答 1

19

您需要将选项定义为&option变量。例如:

fun! MyFun(param)
   let &l:tabstop = a:param
endfun

:help let-&。列&l:在该标记下方一点,表明它相当于setlocal. 基本上,当您想为表达式设置选项而不是定义的值时,您需要使用let &option=而不是set option=. 使用let &l:option=而不是setlocal option=. 还&g:option可以全局设置选项。

于 2012-08-29T04:08:42.010 回答