Команда містить символи труби - чому vim говорить "не команда редактора"?


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 його повним шляхом, це теж не допомагає. Що дає?


3
Вам слід скористатися режимом vimdiff як плагіни, такі як CVSmenu. Інакше ви пробували \|замість цього?
Люк Ермітт

D'oh! \|зробив це. Я подумав, що це щось дурне. Я перевірю CVSmenu, але ви можете залишити свій коментар як відповідь, тож я можу дати вам кредит. :)
Елісон Р.

Відповіді:


9

(Гаразд, ось це - я не був у цьому впевнений \|)

Спробуйте \|замість |.

Але замість цього вам слід ознайомитися з режимом vimdiff та способом роботи плагінів, таких як CVSmenu. BTW, IIRC там уже існує (можливо, кілька) плагін, який інтегрує git у vim.


6

Щоб додати відповідь Люка, це тому, що |це роздільник команд у vim, подібний до ;bash

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.