Почему не работает команда "Diff with Vim"? - PullRequest
3 голосов
/ 06 апреля 2011

Я запускаю gVim на WinXP.

Я открываю папку, выбираю два файла и нажимаю «Различаться с Vim».Снимок экрана:

Vimdiff issue

Запускается графический интерфейс gVim с каждым из файлов на отдельной вкладке.Я заметил, что каждая вкладка находится в режиме DIFF.Тем не менее, нет сравнения между двумя вкладками.Оба файла совершенно разные, но нет выделения, ничего - только серая линия слева, которую я интерпретирую как режим 'DIFF':

Result of 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 ]

2 голосов
/ 06 апреля 2011

Если я не ошибаюсь, gvim определяет пользовательскую функцию VimDiff () на своем складе _vimrc (:e +/Diff $MYVIMRC)

Возможно, вы захотите проверить, работает ли it , выполнив

 :call VimDiff()

Вам необходимо проверить фактическое имя функции и параметры (если таковые имеются), поскольку у меня нет удобной машины для Windows в.

2 голосов
/ 06 апреля 2011

Это в лучшем случае подсказка, так как я не запускаю windows и даже не использую gvim под linux. Если опция -p указана для vimdiff, она откроет свои аргументы в отдельных вкладках. Поскольку диффузия выполняется только через окна на одной вкладке, это эффективно отключает диффузию. -p все еще доступен, потому что vimdiff просто звонит vim -d .... -p говорит vim поместить каждый аргумент в отдельную вкладку; это довольно полезно при обычном вызове vim. Так что может быть, вы как-то настроили vim, чтобы всегда делать это.

Я бы проверил, что на самом деле делает эта опция Diff with Vim, и проследил бы за ней, чтобы увидеть, добавляет ли пакетный файл (или как они называются в эти дни ...) по цепочке вызовов параметр -p к вашему. нормальный вызов vim. IIRC вы можете сделать это из Windows Explorer; Я думаю, что есть опция в меню Вид, которая показывает все типы файлов. Вы можете просматривать и редактировать приложения, настроенные для «открытия» этих типов файлов.

...