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