我正在尝试将一些命令映射到 vim 中的快捷方式。具体来说,我正在尝试获取彩色的 git diff。如果我在 Ex 模式下输入此命令,它会按预期工作:
:! git diff --staged % | colordiff | less -R
但如果我尝试将其映射到我的 .vmirc 中,
map ,gds :! git diff --staged % | colordiff | less -R<CR>
我收到错误:
E492: Not an editor command: colordiff | less -R<CR>
我使用管道映射了其他命令,效果很好,所以这似乎不会引起问题。如果我通过其完整路径调用 colordiff,也无济于事。这是怎么回事?
答案1
(好的,就是这个——我不确定\|
)
尝试\|
代替|
。
但是你应该看看 vimdiff 模式,以及 CVSmenu 等插件是如何运行的。顺便说一句,如果我没记错的话,已经有一个(可能还有好几个)插件将 git 集成到 vim 中。
答案2
补充一下 Luc 的回答,这是因为|
是 vim 中的命令分隔符,类似于;
bash