如何将Vim函数参数传递给命令?

如何将Vim函数参数传递给命令?,vim,Vim,我正在使用以下function+命令调用Vim中的调试器: function! TermDebugArm(executable) packadd termdebug let g:termdebugger="arm-none-eabi-gdb" Termdebug a:executable endfunction command! -complete=file -nargs=1 TermDebugArm :call TermDebugArm(<f

我正在使用以下function+命令调用Vim中的调试器:

function! TermDebugArm(executable)
    packadd termdebug
    let g:termdebugger="arm-none-eabi-gdb"
    Termdebug a:executable
endfunction

command! -complete=file -nargs=1 TermDebugArm :call TermDebugArm(<f-args>)
函数!TermDebugArm(可执行)
PackagedTermDebug
设g:termdebugger=“arm none eabi gdb”
TERMA:可执行文件
端功能
命令-complete=file-nargs=1 TermDebugArm:调用TermDebugArm()
不幸的是,
Termdebug
命令得到的是文字参数“a:executable”,而不是它应该表示的实际值(即传递给调用函数的命令的文件名)


我做错了什么?

您需要使用
:execute
命令从字符串生成命令,这将允许您使用
a:executable
的值作为文本:

execute "Termdebug ".a:executable
或者,您可以使用
:execute
的功能,该功能将用一个空格连接多个参数,因此不需要显式连接:

execute "Termdebug" a:executable
请参见
:帮助:执行