Konfigurieren Sie Mercurial für extdiff Directory. Vergleichen Sie mit vim unter Windows

1834
sparklewhiskers

Ich führe Mercurial von der Befehlszeile unter Windows XP aus. Ich habe das Extdiff-Plugin. ich wollte

hg vimdiff 

Verwenden Sie den DirDiff-Befehl von Vim. Ich habe versucht zu setzen

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

In meiner Mercurial.ini. Wenn ich hg vimdiff mache, öffnet sich gvim mit dem Dateinamen '+ next'. Ich denke, das Problem liegt in der Verwendung von Zitaten und Pfadnamen, die für Windows spezifisch sind. Ich habe eine Reihe von Permutationen von Backslashes und einfachen und doppelten Anführungszeichen (nicht völlig zufällig) ausprobiert, aber ohne Glück.

Ich habe mein Problem vorerst gelöst, indem ich ein separates Skript erstellt habe, um gvim aufzurufen

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

und gvimdiff.py sein

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

Aber wenn jemand die geheimen Beschwörungen kennt, damit es direkt von der Kommandozeile aus funktioniert, lass es mich wissen, und ich werde vielleicht versuchen, die Dokumentation auf den neuesten Stand zu bringen.

0
Die akzeptierte Antwort verweist auf ein privates Blogger-Konto, und die Antwort ist nicht mehr sichtbar. Möchten Sie die Lösung veröffentlichen? Ken Smith vor 9 Jahren 0

1 Antwort auf die Frage

2

Das Problem wird durch eine Art vim-Fehler verursacht, wenn eine Funktion mit f-args aufgerufen wird. Die Argumente sind Zeichenfolgen, die mit '\' enden. Die Lösung besteht darin, das nachfolgende '\' für jedes Argument zu entfernen.

Ich habe hier eine kompaktere Lösung:

Vimdiff mit mercurial verwenden