Я работаю Подвижный из командной строки на Windows XP. У меня есть extdiff плагин. Я хотел
hg vimdiff
использовать команду DirDiff Vim. Я попытался поместить
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]))
Но если кто-либо знает, что секретное колдовство заставляет его работать из сообщенной мне командной строки, и я, возможно, попытаюсь обновить документацию.
Проблема вызывается своего рода ошибкой энергии при вызывании функции с f-args, и args являются строками, заканчивающимися '\'. Решение состоит в том, чтобы удалить запаздывание '\' для каждого аргумента.
У меня есть более компактное решение здесь: