Puis-je remplacer le diff interne dans Total Commander par un outil personnalisé?

28

Comme je n'aime pas vraiment les différences internes de Total Commander, comparer les contenus utilisés dans Comparer par contenu et Synchroniser les répertoiresComparer à gauche et à droite , je veux utiliser autre chose comme WinMerge ou KDiff3.

Est-il possible de lancer un programme externe avec les chemins d'accès aux fichiers marqués dans le volet gauche et droit? Cela résoudrait Compare by content . Une autre façon de le résoudre? Puis-je contrôler Synchronize Dirs pour qu'il fasse de même lorsque je compare le contenu d'un fichier là-bas?

Avez-vous d'autres suggestions pour faire facilement des diffs dans Total Commander avec un programme de diff externe?

Joel
la source

Réponses:

34

Il existe de nombreuses façons de le faire (ici, j'utilise BeyondCompare à titre d'exemple, c'est le meilleur que j'ai trouvé dans cette catégorie, mais la solution fonctionne également bien avec WinMerge ):

A) Modifier wincmd.inisous %USERPROFILE%\AppData\Roaming\GHISLER\par défaut et ajouter quelque chose comme ceci:

[Configuration]
CompareTool = C: \ Program Files \ Shareware \ FileCmp \ BeyondCmp \ BCompare.exe

Maintenant, toutes les comparaisons sont faites en utilisant cette application au lieu de l'outil interne.


B) En utilisant StartMenu de TotalCmd (commande "Changer le menu de démarrage ..."), ajoutez ces commandes:

Titre:

BC (Comparer les répertoires de gauche à droite)

Commander: %YourPath%\BeyondCmp\BCompare.exe

Paramètres: %X%p %X%t


Titre:

BC (comparer le fichier actuel sous le curseur avec le même fichier dans l'autre panneau)

Commander: %YourPath%\BeyondCmp\BCompare.exe

Paramètres: "%X%p%x%n" "%X%t%x%n"


Titre:

BC (comparer le fichier actuel à gauche au fichier actuel à droite)

Commander: %YourPath%\BeyondCmp\BCompare.exe

Paramètres: "%X%p%n" "%X%t%m"

TheNewbie
la source
Quel est l'effet de% X et% x?
Joel
1
% X Interprète les paramètres suivants après ce paramètre comme gauche / droite au lieu de source / cible:% P,% p (chemin de gauche),% T,% t (chemin de droite),% N,% n (nom de gauche),% M,% m (nom de droite),% S,% s (sélectionné à gauche),% R,% r (sélectionné à droite)
TheNewbie
% x Interprète à nouveau les paramètres suivants après ce paramètre comme source / cible Exemple:% X% P% x% P envoie le chemin gauche et le chemin source au programme appelé
TheNewbie
Pour l'option A, cela n'a fonctionné pour moi (v8.51a) que si j'ai ajouté CompareToolquelque part vers le début du fichier wincmd.ini. Je ne connais pas le paramètre exact qui doit être précédé de ceci, donc je dirais que le plus simple est de le mettre au début du fichier.
TLama
1
Depuis TC 9, vous pouvez utiliser% C1% C2 pour mieux émuler le fonctionnement de l'outil de comparaison interne:% C1 Comme le premier paramètre de "Comparer par contenu" -% C2 Comme le deuxième paramètre de "Comparer par contenu"
marlar
1

Je suis tombé sur cette question parce que je voulais utiliser Visual Studio Code comme outil de diff externe.

Puisque VS Code n'est pas principalement un outil de diff, on ne peut pas simplement invoquer le fichier exe avec deux noms de fichiers comme paramètres. À la place, l'option --diffou -ddoit simplement être spécifiée.

Ceci est important lors de l'édition du WINCMD.INI. La ligne Comparetool doit prendre le chemin vers code.exe et l'option diff:

[Configuration]
Comparetool="C:\Program Files\Microsoft VS Code\Code.exe" --diff
...
khlr
la source