いくつかのコマンドをvimのショートカットにマップしようとしています。具体的には、色付きのgitdiffを取得しようとしています。このコマンドを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を呼び出すと、それも役に立ちません。何が得られますか?
(OK、ここにあります-\|
についてはよくわかりませんでした)
\|
の代わりに|
を試してください。
ただし、代わりに、vimdiffモードと、CVSmenuなどのプラグインがどのように進行するかを確認する必要があります。ところで、IIRCには、gitをvimに統合する(おそらくいくつかの)プラグインがすでに存在します。
Lucの答えに追加すると、これは|
がvimのコマンド区切り文字であり、bashの;
と同様であるためです。