Can I replace internal diff in Total Commander with a custom tool?

28

15

Since I don't really like Total Commander's internal diff Compare Contents used in Compare by content and Synchronize DirsCompare left & right, I want to use something else like WinMerge or KDiff3.

Is this possible to launch an external program with the paths to the marked files in the left & right pane? That would solve Compare by content. Any other way to solve it? Can I control Synchronize Dirs so it does the same when I compare file content there?

Any other suggestions to easily make diffs in Total Commander with external diff program?

Joel

Posted 2011-01-26T13:44:27.700

Reputation: 383

Answers

34

There are many ways to do this (here I'm using BeyondCompare as an example, it's the best I've found in this category, but the solution also works well with WinMerge):

A) Edit wincmd.ini under %USERPROFILE%\AppData\Roaming\GHISLER\ by default, and add something like this:

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

Now all comparisons are made using this app instead of the internal tool.


B) Using TotalCmd's StartMenu (command "Change start menu..."), add these commands:

Title:

BC (Compare left-vs-right directories)

Command: %YourPath%\BeyondCmp\BCompare.exe

Parameters: %X%p %X%t


Title:

BC (Compare current file under cursor vs same file in the other panel)

Command: %YourPath%\BeyondCmp\BCompare.exe

Parameters: "%X%p%x%n" "%X%t%x%n"


Title:

BC (Compare current file in left vs current file in right)

Command: %YourPath%\BeyondCmp\BCompare.exe

Parameters: "%X%p%n" "%X%t%m"

TheNewbie

Posted 2011-01-26T13:44:27.700

Reputation: 561

To the option A, it worked for me (v8.51a) only if I added the CompareTool somewhere near the beginning of the wincmd.ini file. I don't know the exact setting which must be preceded by this, so I'd say the simplest is to put it to the beginning of the file. – TLama – 2015-06-30T08:30:25.680

1As of TC 9 you can use %C1 %C2 for better emulating the way the internal compare tool works: %C1 Like the first parameter of "Compare by content" - %C2 Like the second parameter of "Compare by content" – marlar – 2017-02-19T20:30:42.930

Thank you very much. Does anyone know what would be the Parameters if I select two different files in the same panel (p.e. 2 files in the right panel)? – Reman – 2018-03-25T21:34:18.727

What is the effect of %X and %x? – Joel – 2011-02-16T08:25:55.540

1%X Interprets the following parameters after this parameter as left/right instead of source/target: %P, %p (left path), %T, %t (right path), %N, %n (left name), %M, %m (right name), %S, %s (left selected), %R, %r (right selected) – TheNewbie – 2011-02-16T09:56:12.130

%x Interprets the following parameters after this parameter again as source/target Example: %X%P %x%P sends left and source path to the called program – TheNewbie – 2011-02-16T09:57:49.100

1

I came accross this question because I wanted to use Visual Studio Code as external diff tool.

Since VS Code isn't primarly a diff tool one can't just invoke the exe-file with two filenames as parameters. Instead the option --diff or just -d has to be specified.

This is important when editing the WINCMD.INI. The line Comparetool has to take the path to code.exe and the diff-option:

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

khlr

Posted 2011-01-26T13:44:27.700

Reputation: 111