![vim:命令映射到两个命令给出 E488](https://linux22.com/image/155993/vim%EF%BC%9A%E5%91%BD%E4%BB%A4%E6%98%A0%E5%B0%84%E5%88%B0%E4%B8%A4%E4%B8%AA%E5%91%BD%E4%BB%A4%E7%BB%99%E5%87%BA%20E488.png)
我想要一个Build
独立于使用的构建系统启动构建的命令。
command! -nargs=* Build :Makeshift<Bar>MakeshiftBuild <args>
给我
E488: Trailing characters
任何一个都可以映射并工作,但是两者都会产生错误。我-bar
在我的地图上尝试过。我无法更改 Makeshift 来使用它。
以下作品:
function! s:BuildFun(what2build)
execute 'Makeshift'
execute 'MakeshiftBuild '.a:what2build
endfunction
command! -nargs=* Build :call s:BuildFun(<q-args>)
有人可以澄清一下,为什么单行不起作用或如何使其起作用。只是为了获得洞察力。
答案1
答案在评论中:Makeshift
是在没有参数的情况下定义的-bar
。来自维姆help command
:
-bar The command can be followed by a "|" and another command.
A "|" inside the command argument is not allowed then.
Also checks for a " to start a comment.
在这种情况下,无需分叉插件存储库,因为可以使用该函数的解决方法,如上所示。这就是一般的解决方案,如中指出的https://stackoverflow.com/a/3266791/1803897。