Настройте Mercurial для extdiff Directory Compare с помощью vim в Windows

1504
sparklewhiskers

Я запускаю Mercurial из командной строки на Windows XP. У меня есть плагин extdiff. я хотел

hg vimdiff 

использовать команду Vim's DirDiff. Я пытался положить

cmd.vimdiff = gvim opts.vimdiff = -f '+next' '+execute "DirDiff" argv(0) argv(1)' 

В моем Mercurial.ini. Если я сделаю hg vimdiff, откроется gvim с именем файла «+ next». Я думаю, что проблема заключается в цитировании и путевых именах, специфичных для окон. Я пробовал несколько перестановок обратной косой черты и одинарных и двойных кавычек (не совсем случайно), но безуспешно.

Сейчас я решил свою проблему, создав отдельный скрипт для вызова gvim, т.е.

[extdiff] cmd.vimdiff = c:\python25\python.exe opts.vimdiff = c:\test\gvimdiff.py 

и gvimdiff.py существо

import sys import os  os.system('gvim -c "DirDiff %s %s"' % (sys.argv[1],sys.argv[2])) 

Но если кто-нибудь знает секретное заклинание, заставляющее его работать напрямую из командной строки, дайте мне знать, и я, возможно, постараюсь обновить документацию.

0
Принятый ответ ссылается на личный аккаунт блоггера, и ответ больше не виден. Не могли бы вы опубликовать решение? Ken Smith 9 лет назад 0

1 ответ на вопрос

2

Проблема вызвана своего рода ошибкой vim при вызове функции с f-args, а аргументы - это строки, заканчивающиеся на '\'. Решение состоит в том, чтобы убрать завершающий '\' для каждого аргумента.

У меня есть более компактное решение здесь:

Использование vimdiff с Mercurial