Vimscript:在函数调用之前将变量解析为值

  • 本文关键字:变量 函数调用 Vimscript vim
  • 更新时间 :
  • 英文 :


对于看似如此简单的问题,我提前道歉。

我有一个示例命令定义如下:

command! -nargs=+ Exmpl call Example(<f-args>)
function! Example(name)
    echo a:name
endfunc

按如下方式调用:

Exmpl 'hello'

但它似乎从字面上解释了没有解析的给定参数。所以:

let hello = 'world'
Exmpl hello

不打印world,如预期的那样。

这显然是我在文献中找不到的明显的东西。我尝试添加各种转义字符,例如 & ,但随后的参数始终被视为空词。

如何在自定义 Vim 命令中使用变量?

使用 <args> 而不是 <f-args> 可以满足您的要求。

此命令定义在调用时扩展任何提供的参数

command! -nargs=+ Example call Example(<args>)
function! Example(name)
      echo a:name
endfunc
let hello = 'world'
Exmpl hello

输出

world

参考

:help command

然后在帮助文本中搜索:"/"选项卡<args>

最新更新