Я хочу использовать vim для просмотра выходных данных git diff .
Я использую Windows 8 и у меня установлен vim 7.4. Для удобства я создал переменную среды VIMDIR, установленную в каталог установки Vim (set VIMDIR=C:\Program Files (x86)\Vim\vim74), и добавил этот каталог в% PATH%.
Vim поставляется со %VIMDIR%\macros\less.bat , который можно использовать как пейджер, так что less.bat file.txt или dir | less.bat отобразит вывод в пейджере на основе vim. Я пользуюсь этим регулярно, и он отлично работает. Я также хотел бы использовать vim, а не Git less.exe в качестве пейджера git, чтобы он работал, когда я выполняю git diff , но у меня возникают проблемы. 
Я пытался использовать командный файл less.bat vim
Если я устанавливаю %GIT_PAGER% в %VIMDIR%\macros\less.bat и выполняю git diff , я получаю сообщение об ошибке: 
C:\Program Files (x86)\Vim\vim74\macros\less.bat: -c: line 0: syntax error near unexpected token `('
C:\Program Files (x86)\Vim\vim74\macros\less.bat: -c: line 0: `C:\Program Files (x86)\Vim\vim74\macros\less.bat'
Я считаю, что это потому, что git - это программа MSYS, то есть она не может обрабатывать C:\whatever стиле Windows, какими бы ни были пути. 
Я также пытался напрямую вызывать меньше макросов vim
Так что это не работает. Следующее, что я попробовал, было изучить less.bat и установить %GIT_PAGER% на что-то на основе этого файла. В этом файле я вижу эту строку, которая инструктирует vim читать из stdin: 
vim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" -
Я установил %GIT_PAGER% для модифицированной версии, которая использует пути в стиле MSYS: 
set GIT_PAGER="/c/Program Files (x86)/Vim/vim74/vim.exe" --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" -
Это успешно запустить Vim! Но есть еще проблема: цвета не работают, и по всему экрану разбросаны escape-символы. Обратите внимание, что обычно подсветка синтаксиса работает просто отлично. Если я выполню эти команды, он отобразит файл diff, сгенерированный мной, с цветом:
git diff > test.diff
less.bat test.diff
Однако, если я просто вызываю git diff и использую %GIT_PAGER% чтобы отобразить diff для меня в консоли, это показывает мне это: 

Что еще я могу попробовать?
Я не уверен, что еще попробовать. Кто-нибудь еще использует vim для просмотра git diff на Windows? Как дела?
Спасибо за любую помощь.
