vim:命令映射到两个命令给出 E488

vim:命令映射到两个命令给出 E488

我想要一个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

相关内容