Я хочу використовувати 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's less.exe, як пейджер git, так що він працює, коли я роблю git diff
, але я стикаюся з проблемами.
Я намагався використовувати VIM less.bat
пакетний файл
Якщо я встановлюю %GIT_PAGER%
до %VIMDIR%\macros\less.bat
і виконайте a 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, тобто він не може працювати з Windows-стилем C:\whatever
доріжки.
Я також спробував викликати менше макросу 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! Але проблема все ще існує: кольори не працюють, і на екрані є засмічені символи. Зверніть увагу, що зазвичай підсвічування синтаксису працює просто чудово. Якщо я запускаю ці команди, він відображатиме файл diff, який я створив за допомогою кольору:
git diff > test.diff
less.bat test.diff
Втім, якщо я просто подзвоню git diff
і використовувати його %GIT_PAGER%
щоб відобразити diff для мене в консолі, він показує мені це:
Що ще можна спробувати?
Я не впевнений, що ще спробувати. Хто-небудь, хто використовує vim для перегляду git diffs у Windows? Як ви це робите?
Дякуємо за будь-яку допомогу.
git difftool
, але я хочу використовувати його з git diff
. git difftool
корисна, але коли я її використовую, я, як правило, використовую kdiff3. Те, що я хочу зробити зараз, це замінити використовуваним пейджером git diff
.
git diff --no-color
або шукайте vimpager, але я не знаю, якщо це працює на вікнах.