在vim中使用变量作为shell命令的参数

33

我该如何在vim脚本中使用变量来执行vim shell命令(通过!实现)?例如,类似于以下示例的内容:(只是示例,并非我真正想要做的事情)

function Ls(dir)
    !ls a:dir
endfunction
1个回答

47
使用 execute 命令。其后的所有内容都是一个表达式,它会被求值为一个字符串,并像你自己输入的命令一样执行。
function Ls(dir)
    execute '!ls ' . a:dir
endfunction

这段话的意思是"计算表达式'!ls ' . a:dir并执行它。" 变量a:dir被展开,点号连接两个字符串成为'!ls whatever',然后像你自己键入一样执行它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接