如何将Vim函数参数传递给命令?
我正在使用以下function+命令调用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! 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
请参见:帮助:执行