Почему не работает команда "Diff with Vim"?
Я использую gVim на WinXP.
Я открываю папку, выбираю два файла и нажимаю "Diff with Vim". Скриншот:
Графический интерфейс gVim запускается, каждый из файлов находится на отдельной вкладке. Я заметил, что каждая вкладка находится в режиме DIFF. Тем не менее, нет сравнения между двумя вкладками. Оба файла совершенно разные, но нет выделения, ничего - только серая линия слева, которую я интерпретирую как режим "DIFF":
Что здесь происходит? Мой vimdiff не работает или это что-то еще?
Мое решение
Ранее, когда мне нужно было открыть файлы на нескольких вкладках с помощью контекстного меню Windows, я последовал совету автора и добавил следующую строку в мой файл .vimrc: :autocmd BufReadPost * tab ball
Хотя это позволило мне открыть два файла на отдельных вкладках в одном окне Vim, я потерял возможность различать два файла, если бы захотел. Решение включить обе эти функции состоит в том, чтобы включить autocmd
выше только в том случае, если я не хочу, чтобы два файла diff, что происходит, когда &diff==0
, Таким образом, когда я изменил код в моем файле .vimrc, как показано ниже, я восстановил функциональность Diff с Vim:
if (&diff==0)
:autocmd BufReadPost * tab ball
endif
Я также добавил это решение в часть комментариев ссылки Vim Wikia, упомянутой выше.
2 ответа
Это в лучшем случае подсказка, так как я не запускаю windows или даже не использую gvim
под Linux. Если вариант -p
поставляется в vimdiff
, он откроет свои аргументы в отдельных вкладках. Поскольку дифференцирование выполняется только через окна в одной вкладке, это эффективно отключает диффузию. -p
по-прежнему доступны, потому что vimdiff
просто звонки vim -d ...
, -p
говорит vim поместить каждый аргумент в отдельную вкладку; это довольно полезно при обычном вызове vim. Так что может быть, вы как-то настроили vim, чтобы всегда делать это.
Я бы проверил что это Diff with Vim
опция на самом деле делает и отслеживает его, чтобы увидеть, добавляет ли пакетный файл (или как они называются в эти дни..) по цепочке вызовов -p
вариант вашего обычного вызова vim. IIRC вы можете сделать это из Windows Explorer; Я думаю, что есть опция в меню Вид, которая показывает все типы файлов. Вы можете просматривать и редактировать приложения, настроенные для "открытия" этих типов файлов.
Если я не ошибаюсь, gvim определяет пользовательскую функцию VimDiff() на своем складе _vimrc (:e +/Diff $MYVIMRC
)
Вы можете проверить, работает ли он, выполнив
:call VimDiff()
Вам нужно проверить фактическое имя функции и параметры (если таковые имеются), так как у меня нет машины с Windows под рукой на m.m.