比较Sublime Text中两个文件的内容


397

我有两个非常相似的开源项目的两个克隆存储库,我一直在Sublime Text 2中的不同实例中进行工作,以达到所需的结果。使用了这两个项目的代码。我一直在使用Git作为项目的版本控制,但没有包括原始项目。因此,我希望能够快速比较原始项目的两个文件的内容,并比较它们与我的项目之间的差异。

我希望Sublime Text 2可以具有“比较文件”功能,但是我似乎在设置或在线中都找不到与其相关的任何内容。第三方ST2程序包也可以很好地完成此任务。这样的任务可以在ST2文本编辑器中完成吗?

Answers:


705

实际上,您可以直接在Sublime Text中比较文件。

  1. 浏览到Open Folder...项目中或项目中包含它们的文件夹
  2. 在边栏中选择要比较的两个文件(即,按住CtrlWindows或macOS)
  3. 右键单击并选择Diff files...选项。


19
@Derek:使用select可以选择但不能在右键单击上找到差异文件选项,只有在右键单击时获得关闭选项。
穆罕默德·侯赛因

65
@MohamedHussain实际上有两个不同的侧边栏,您需要在正确的侧边栏中才能工作。如果转到“文件”>“打开文件夹...”,选择文件所在的文件夹,然后选择“视图”>“侧边栏”>“显示侧边栏”,您将获得所需的那个。您可以通过选择“视图”>“侧栏”>“显示打开的文件”来获得另一个文件,但是该文件不允许您使用“差异文件...”选项。
杰拉米2015年

25
不幸的是,这在Mac的Sublime版本3103中似乎不再起作用。我右键单击后,第二个文件被取消选择,
merlin

8
在OSX的Build 3144中对我不起作用。我可以在文件界面中选择两个文件,但是当我按住Ctrl键单击时,只有一个被选中,而diff选项不存在。
James J

4
在3114-Windows中也对我不起作用。右键单击文件时没有diff选项。
dangsonbk

216

比较Side-By-Side似乎对我来说最方便,尽管它并不是最受欢迎:

UPD:我需要补充一点,这个插件可以在比较大文件时冻结ST。如果您要比较大文本,那当然不是最好的决定。


11
这是IMO最简单,最方便的解决方案。在ST3上运作良好
mihai 2015年

5
效果很好,可以比较来自本地比较的文件(我无法设法比较)。
狮子座

3
这也适用于在新的未保存的选项卡中复制粘贴的内容,这非常方便。
mtone

1
我希望我能早些看到,能为我节省一天的时间。
0_o

1
比较Side-By-Side只是对我有所帮助。
noob

61

通过Package Control 有许多可用的diff插件。我使用了Sublimerge Pro,它运行良好,但是它是商业产品(具有无限的试用期)并且是封闭源代码,因此如果您要更改某些内容或仅查看其内部结构,就无法对其进行调整。从安装数量来看,FileDiffs非常受欢迎,因此您可能需要尝试安装一次。


2
我现在正在使用FileDiffs,它的工作原理很吸引人。谢谢,回答被接受。
LanceLafontaine 2014年

1
好吧,我无法弄清楚如何使用FileDiffs。您能否简短描述一下我如何将两个文件进行比较。
贾米尔·艾哈迈德

4
@LanceLafontaine我通常不会这样做,但是您介意更改下面对Derek朕会功夫的答案的可接受答案吗?我们每个人都不真正需要这些点,但是我不知道当时有一个内置的差异。现在,在Sublime中,我一直都在使用它。我唯一不需要的时候就是需要外部工具的扩展功能。
MattDMo '16

这些插件中的哪一个能够检测整个文本块的运动?不仅告诉有些线在这里丢失并在那里出现,而且还用箭头显示它们如何移动?
skan,

多亏了这个答案,我安装FileDiffs并添加commad使用TortoiseMerge.exe进行比较。对于我每天使用崇高代码比较而言,这是一个巨大的进步。谢谢!
lyubeto

48

更新
(考虑到投票,我认为需要完整的分步说明...)

  1. 在菜单栏中单击File->Open Folder...
  2. 选择一个文件夹(实际的文件夹并不重要,此步骤只是使FOLDERS侧栏可用)
  3. 如果尚未显示侧边栏,请通过View-> Side Bar-> 使其显示Show Side Bar
  4. 使用FOLDERS标题为“边栏”的标题导航到要比较的第一个文件。
  5. 选择它(单击它),按住ctrl并选择第二个文件。
  6. 选择两个文件后,右键单击两个文件之一,然后选择 Diff Files...

现在应该有一个新的选项卡显示比较。


原始简短答案:
请注意:

“差异文件”仅与“文件夹”侧栏一起显示(以打开文件夹:File-> Open Folder),而不与“打开文件”侧栏一起显示。


有没有办法选择这些不同的线?一个显示为红色,另一个显示为绿色
zeristor

1
选择是什么意思?突出显示它们,例如复制它们?还是提取它们?感谢您的澄清!
langlauf.io

由于缺少的行以'-'为前缀,因此我选择了其中的一个,然后将其全部匹配,选择了完整的行并进行了复制。内置的方式将使您更容易忘记。
zeristor '16

5
我认为值得解释的是,这两个文件都不能硬打开。如果双击这两个文件都将其打开,则无法使用ctrl按钮在边栏中突出显示这两个文件。您必须确保关闭其中一个文件,然后才能选择两个文件。我发现这是因为我已经打开了两个文件,并想使用差异文件...
Battousai

1
@NaveenDA我修改了我的答案以能够删除断开的链接。感谢您的提示!
langlauf.io

25

UPDATE JAN 2018-特别是对于Sublime / Mac

(这与Marty F的回复非常相似,但是解决了先前回复中的一些问题,结合了一些不同的建议,并讨论了起初给我带来麻烦的关键区别。)

我在Mac上使用Sublime Text 3(内部版本3143),并且已经尝试了30分钟才能找到此文件比较功能。我以前在Sublime / Mac上使用它时没有任何问题,但是这次比较棘手。但是,我终于想通了。

  1. 文件格式不必为UTF-8。我已经成功比较了UTF-8,ISO-8559-1和Windows-1252的文件。

  2. Sublime / Mac上没有文件>打开文件夹。上面的许多说明都以“选择文件>打开文件夹”开头,但Sublime / Mac上不存在。

  3. 文件比较是在项目基础上完成的。如果要比较两个文件,则必须将它们保存到磁盘中并作为当前项目的一部分。

  4. 打开项目的方式

    • 如果Sublime / Mac没有运行,或者正在运行但没有打开任何窗口,请将文件夹拖到Sublime应用程序上。
    • 如果Sublime / Mac正在运行,请选择“文件>打开”,导航到所需的文件夹,不要选择文件或文件夹,然后单击“打开”。
  5. 将文件夹添加到项目。如果要比较的文件不是同一层次结构的一部分,请首先打开包含其中一个文件的文件夹。然后,选择“项目>将文件夹添加到项目”,导航到所需的文件夹,然后单击“打开”。现在,您会在侧边栏中看到两个根目录文件夹。

  6. 边栏必须可见。您可以“查看>侧栏>显示侧栏”,也可以使用快捷键Command-K,Command-B。

  7. 必须关闭(即保存)文件才能进行比较。单击侧边栏中的文件不会打开该文件,但会显示该文件。如果在侧边栏顶部的“打开文件”部分列出了文件,则可以判断该文件是否处于打开状态。双击文件或对文件进行修改将自动将文件状态更改为“打开”。在这种情况下,请确保在尝试进行比较之前将其关闭。

  8. 从文件夹层次结构中选择文件。标准Mac快捷方式在这里,(单个)单击第一个文件,然后按住Command并单击第二个文件。选择第一个文件时,您将看到其内容,但未打开。然后,当您用Command键单击第二个文件时,您将看到内容,但同样,两个文件均未打开。您只会在编辑面板中注意到一个标签。

  9. 按住Control键单击与单击鼠标右键不同。这就是吸引我的那个。我使用触控板,通常将Control-click用作右键单击或第二单击。对我不起作用。但是,由于我在“系统偏好设置”中将触控板配置为将触控板的右下角用作右键单击,因此可以正常工作,并显示上下文菜单,并带有“删除”,“在Finder中显示”和...。 “差异文件...”

瞧!我希望这可以帮助别人。


2
是否可以进行文件夹比较而不是文件比较?
DCBoy

1
哎呀!您刚刚保存了mac用户!
analytics045 '19

10

2017年10月更新 我不知道此功能在Sublime Text中存在,但与先前的答案相比,该界面似乎已稍有改变-至少在OS X上是这样。我遵循的详细步骤如下:

  1. 在菜单栏中,单击文件->打开...。
  2. 导航到包含要比较的文件的文件夹,并选择“文件夹”,然后单击“打开”按钮,这将使“文件夹”侧边栏出现
  3. 在“文件夹”侧边栏中,单击要比较的第一个文件
  4. 在Windows上按住Ctrl,在OS X上按住⌘,然后单击第二个文件
  5. 选择两个文件后,右键单击其中一个,然后选择“比较文件...”。

这将打开一个显示比较的新选项卡。第一个文件为红色,第二个文件为绿色。


8

视图-布局和视图-组将在最新的Sublime 3中使用

例如:

Shift+ Alt+ 2- >创建2列

Ctrl+ 2->将所选文件移至第2列

这是用于并排比较。对于实际的差异,还有其他已经提到的差异函数。不幸的是,我找不到使列同时滚动的方法,这将是一个不错的功能。


1
要结束小组,您可以使用Ctrl+ K Ctrl+down
Alex Raj Kaliamoorthy

2

没有人在谈论Linux,但是以上所有答案都行得通。只需使用Ctrl选择多个文件即可。如果您想并排比较,Meld很可爱。


2

仅当文件位于项目一部分的文件夹中时,才会显示“差异选项”。

实际上,您可以直接在Sublime Text中比较文件。

通过打开文件夹...或在项目中导航到包含它们的文件夹。在侧边栏中选择要比较的两个文件(即,在Windows上按住Ctrl或在macOS上按住⌘),右键单击并选择Diff文件...选项。


0

还有一个BeyondCompare插件。它将在其中打开2个文件BeyondCompare窗口中。从崇高窗口打开文件非常方便。

您将需要系统中存在BC3安装。安装插件之后,您将必须提供安装路径。

例:

{
    //Define a custom path to beyond compare
    "beyond_compare_path": "G:/Softwares/Beyond Compare 3/BCompare.exe"
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.