2011-04-05 5 views
3

Я бегу gVim на WinXP.Почему команда «Diff with Vim» не работает?

Открываю папку, выбираю два файла и нажимаю «Diff with Vim». Скриншот:

Vimdiff issue

GVim GUI запускается, с каждым из файлов в отдельной вкладке. Я заметил, что каждая вкладка находится в режиме DIFF. Однако между двумя вкладками не проводится сравнение. Оба файла совершенно различны, но нет подсветки, ничего - просто серая линия на левой стороне, который я расцениваю как режим «DIFF»:

Result of diff

Что происходит? Является ли мой vimdiff не работает или это что-то еще?


Мой РЕШЕНИЕ

Раньше, когда мне нужно было Open files in multiple tabs using the Windows Context Menu, я последовал совету плакатом и добавил следующую строку в моей .vimrc файла: :autocmd BufReadPost * tab ball

Хотя это позволило мне чтобы открыть два файла на отдельных вкладках в одном окне Vim, я потерял способность различать два файла, если захочу. Решение включить обе эти функции состоит в том, чтобы включить autocmd выше только в том случае, если я не хочу diff два файла, которые происходят, когда &diff==0. Таким образом, когда я изменил код в моем файле .vimrc к ниже, я восстановила мой Diff с Vim функциональностью:

if (&diff==0) 
    :autocmd BufReadPost * tab ball 
endif 

Я также добавил это решение комментарии части Vim Wikia link упомянутого выше.

+0

Вы видите, что что-то происходит вообще? Похоже, вы должны переустановить gvim. Это работает для меня на XP с последним vim. Когда я пытаюсь это сделать, я вижу окно команд, а затем вижу окно vim в режиме diff с двумя файлами. – IanNorton

+0

Вы пробовали команду ': diffthis' в каждой вкладке? Хотя это не обязательно. –

+0

@David: файлы уже находятся в режиме DIFF. Но нет, ': diffthis' ничего нового не делает. – drapkin11

ответ

2

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

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

+0

Ваше сообщение (а также @ sehe's) привело меня к решению, которое работает для меня. Я разместил его как обновление к моему вопросу. Благодаря! – drapkin11

2

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

Вы можете проверить, является ли оно работы, делая

:call VimDiff() 

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

+0

Спасибо, я нашел определение функции в _vimrc. Он называется «MyDiff», и он действительно работал, когда я его назвал. – drapkin11

Смежные вопросы