我有这个mvn命令
mvn install:install-file -DgroupId=i.hate.james.blunt -DartifactId=yourartifactid... -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/jarfile
Run Code Online (Sandbox Code Playgroud)
我希望将它转移到vim中的命令,此刻我有这个
command -nargs=* MvnAddToRepositoy :!mvn install:install-file -DgroupId=i.hate.james.blunt -DartifactId=<arg1> -Dversion=1.0 -Dpackaging=jar -Dfile=<arg2>
Run Code Online (Sandbox Code Playgroud)
我无法在vim文档或网上的示例中找到这个.
有人可以帮忙吗?
编辑
上面的错误消息是说它正在尝试的命令
mvn install:install-file -DgroupId=mx.com.root -DartifactId=<arg1> -Dversion=1.0 -Dpackaging=jar -Dfile=<arg2>'
Run Code Online (Sandbox Code Playgroud)
我的理解是,Vim不会做多ARGS与访问<arg1>,<arg2>像你这样的占位符认为它.你是从某个地方的文件那里得到的吗?
你可能想看看帮助<f-args>.这允许您定义自己的函数,您可以将参数传递给函数,并处理函数中的内容以按您希望的方式调用shell命令.
这是来自Vim的帮助:
" Call a user function (example of <f-args>)
:com -nargs=* Mycmd call Myfunc(<f-args>)
When executed as:
:Mycmd arg1 arg2
This will invoke:
:call Myfunc("arg1","arg2")
Run Code Online (Sandbox Code Playgroud)
我假设你可以在Myfunc中写东西来做你想做的事.例如下面的(未经测试的)代码.
function Myfunc(myarg1, myarg2)
execute '!mvn install:install-file -DgroupId=i.hate.james.blunt -DartifactId=' .
\ a:myarg1 . ' -Dversion=1.0 -Dpackaging=jar -Dfile=' . a:myarg2
endfunction
Run Code Online (Sandbox Code Playgroud)