3

Я пытаюсь сопоставить некоторые команды с ярлыком в 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 по его полному пути, это тоже не поможет. Что дает?

2 ответа2

9

(Хорошо, вот оно - я не был уверен насчет \|)

Попробуй \| вместо | ,

Но вместо этого вы должны взглянуть на режим vimdiff и на то, как работают плагины, такие как CVSmenu. Кстати, IIRC уже существует (вероятно, несколько) плагин, который интегрирует git в vim.

6

Чтобы добавить к ответу Люка, это потому, что | это разделитель команд в vim, похожий на ; в баш

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .