pycharm对比工具加入右键菜单

Pycharm的文本对比功能强大,比VS Code好用的多。

  • 在工程里的文件树上,选中两个文件,然后Ctrl+D(或者右键->Compare)即可。
  • 但是要比较工程以外的文件,或者没打开Pycharm的时候想对比文件时,比较麻烦。毕竟Pycharm又不能秒开。

这里尝试下更方便的用法。

预期功能: 选中两个文件,然后右键“diff with pycharm”。

0. Pycharm CLI

在官网查到Pycharm支持命令行了,支持打开、对比、合并等一些命令。
https://www.jetbrains.com/help/pycharm/working-with-the-ide-features-from-command-line.html

基本用法如下:

1
2
3
4
5
pycharm.bat <file / folder>       # 打开文件或目录
pycharm.bat diff <file> <file> # 对比两个文件
...
...

我们这里只用到 diff 命令。

方法1. 改注册表添加到右键菜单(失败)

先尝试修改注册表,把diff命令添加到右键菜单。

但是注册表里好像不支持把两个或多个文件作为参数传入。

下面的设置,只能分别打开两个pycharm程序,实现不了打开一个pycharm,传入两个文件名

1
2
3
4
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\*\shell\diff with pycharm\command]
@="C:\\Users\\xxxx\\scoop\\apps\\PyCharm-Professional\\current\\IDE\\bin\\pycharm.bat diff \"%1\""

试了把 %1 改成 %*, %V, 都不行。。。

方法2. 添加到右键菜单的send to

  • 2.1 找到pycharm安装目录的下的bin\pycharm.bat,创建一个快捷方式。
  • 2.2 打开 send to 的目录,文件管理器地址里输入 shell:sendto(或者win+R运行shell:sendto)即可打开。
  • 2.3 把快捷方式拖进来,重命名diff with pycharm
  • 2.4 右键打开属性,修改目标选项,前面的路径不要动,在后面加上 diff即可(diff前面有一个空格)。

试下选中选中两个文件,然后右键->发送到->diff with pycharm,就能成功用pycharm对比了。

注意必须是选中2个(或3个)文件,不然会出错的。

简单测试了一下:

  • 选中一个文件是会出错的;
  • 选中三个试了也可以,分三栏;
  • 选中再多的话,就只对比其中两个。

-Enjoy!-