Я запускаю 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]))
Но если кто-нибудь знает секретное заклинание, заставляющее его работать прямо из командной строки, дайте мне знать, и я, возможно, постараюсь обновить документацию.