【问题标题】:Using IntelliJ to diff two arbitrary files使用 IntelliJ 区分两个任意文件
【发布时间】:2013-01-01 10:18:17
【问题描述】:

我真的很喜欢 IntelliJ 差异工具。我想知道是否可以使用此工具来区分两个任意文件。 IE。不在 IntelliJ 项目中的文件。只需在文件系统中选择两个文件并进行比较?如果我想区分两个字符串怎么办?在我的文本编辑器中,我只需创建两个新文档,将文本粘贴到其中并进行比较,然后在完成后不保存文件。这可能吗?

谢谢

【问题讨论】:

标签: intellij-idea diff


【解决方案1】:

找到这个命令行:

在 MacOSX 上:(IDEA EAP 11)

/Applications/IntelliJ\ IDEA\ 11.app/Contents/MacOS/idea diff /Users/ben75/file1.txt /Users/ben75/file2.txt

在 MacOSX 上打开 IDEA (11) 时无法运行。

在 Windows 上:(IDEA EAP 12)

"C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.0\bin\idea.exe" diff C:\Users\ben75\file1.txt C:\Users\ben75\file2.txt

即使 IDEA 已经打开,它也会运行。

我在尝试比较没有扩展名(或不匹配的扩展名)的文件时遇到问题

直接来自 IDEA (EAP 12)

不是那么容易,但它确实有效......

  • 文件 > 打开... > 选择“file1.txt”
  • 文件 > 打开... > 选择“file2.txt”
  • 创建一个“收藏夹列表”并将两个文件都添加到此收藏夹列表中。 (为此:ctrl+右键单击编辑器中的文件名选项卡 > 添加 收藏 > 选择刚刚创建的收藏列表 - 见截图)
  • 最后,打开“收藏夹”视图(Alt+2 或单击左侧或您的 IDEA 窗口)。
  • 选择两个文件
  • 右键:“比较两个文件”(或 ctrl+D)

【讨论】:

  • 只需 CRTL + D 选择 2 个文件。无需为最爱而苦恼。
  • 问题是明确地关于两个任意文件,而不是已经在项目视图中。您不能选择任何视图中不存在的两个文件,因此您必须为它们创建收藏夹。
  • 我一直为此苦苦挣扎,并开始将这些文件拖放到我的项目中,只是为了比较它们并在之后删除它们。添加收藏夹是一个不错的解决方法。
  • @TimoTürschmann .bashrc alias idiff='"C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.2.2\bin\idea64.exe" diff '
  • 我已将此功能添加到我的 zsh 配置 idiff() { "/Applications/IntelliJ IDEA.app/Contents/MacOS/idea" diff "$(realpath $1)" "$(realpath $2)" },它也允许在相对路径上执行 idiff
【解决方案2】:

IntelliJ Idea 13 有一个标记为与剪贴板比较的功能。此功能将当前打开的文件与您复制到剪贴板的版本进行比较。这是一种轻松比较和合并两个文件的好方法。它也可以用来比较两个任意的代码块。无法弄清楚为什么一个块有效而另一个块不起作用?使用此功能。

此选项位于查看>与剪贴板比较下。我分配了一个易于记忆的键盘快捷键,让我可以快速访问此功能。

【讨论】:

  • 感谢您的信息。我会调查的!
  • 在将代码从一个 Intellij 项目迁移到另一个项目时,这是一个非常方便的功能。
  • 这真的很酷,我在编辑菜单下寻找类似的东西,当我找不到它时,假设 IntelliJ 没有它! :)
  • 你知道是否可以打开一个空白差异窗口来比较两个不同的复制/粘贴文本?我一直这样做,但现在使用 Mac 似乎所有的差异工具都只想处理文件。它对于从文档中抓取一些文本以查看发生了什么变化、仅区分文件中的一个函数等非常有用。
【解决方案3】:

Project面板中选择2个文件并CTRL + D

【讨论】:

  • 如何选择项目中没有的2个文件?
  • 我通过拖放到项目中的某个专用文件夹中。然后只需选择它们 - 通过键盘上的 CTRL 键 + 在桌子上用鼠标右键单击。 (我使用想法 12 以防万一)。确保选择 2 个文件,而不是 3 个或 1 个。我的意思是 - 无需使用收藏夹。
  • 好的,但问题是关于不在项目中的文件。
  • 他们最终不会出现在项目中(如果你愿意,他们只是临时客人)。否则:对于像我这样的人来说,在命令行中键入路径,指向两个文件(尤其是路径很长时)可能会很昂贵。也许你是对的。这取决于观点“不在项目中”的含义。我想他们是要比较的客人,如果我把他们放在那里没有错。
  • 将它们复制到项目中的任意目录中,比较并删除它们..
【解决方案4】:

IntelliJ从2018.2开始正式支持

对于窗口: Ctrl + Shift + A,然后键入“打开空白差异窗口”

对于 Mac: Cmd + Shift + A 然后输入“Open Blank Diff Window”

【讨论】:

  • 我喜欢这种方法。该 Diff 窗口甚至支持从文件系统拖放!
  • 或者,对于那些对记忆组合键过敏的人来说,选择帮助/查找操作...菜单项,然后输入“打开”(不幸的是,不是“差异”)。
  • 您也可以在“设置”中添加自己的快捷键。打开空白差异窗口后,我从文件资源管理器或任何位置拖放文件
【解决方案5】:

在 IntelliJ IDEA 2018.2 中,您可以打开一个空白的差异查看器,然后在其左右面板中粘贴您想要比较的任何文本。新的 Open Blank Diff Viewer 操作可以在 Find Action 对话框中找到。

【讨论】:

    【解决方案6】:

    在终端,你可以像这样直接使用idea启动器:

    # Windows
    idea.exe diff path1 path2
    
    # MacOS/Linux
    idea diff path1 path2
    

    至少对于 MacOS(我不确定 Windows),如果您通过“工具 -> 创建命令行启动器...”创建了命令行启动器,它就像以下一样简单:

    # Create some files to diff
    echo "This is line 1" > file1.txt
    echo "This is line 2" > file2.txt
    
    # Diff with IntelliJ
    idea diff file1.txt file2.txt
    

    请注意,这也适用于其他 JetBrains 应用程序;例如,使用 WebStorm 或 PyCharm:

    # Diff with WebStorm
    webstorm diff file1.txt file2.txt
    # Diff with PyCharm
    charm diff file1.txt file2.txt
    

    Reference

    【讨论】:

      【解决方案7】:

      如果您需要将打开的文件与文件系统上的任意文件进行比较,我找到了更好的方法:

      • 在第一个文件的编辑器中,比如说 A.java。
      • Ctrl+Shift+A,你会看到:
      • 选择第二个“比较...”选项,您将看到“选择路径”对话框:
      • 选择你硬盘上的任何文件并确认,你会得到差异窗口:

      【讨论】:

        【解决方案8】:

        是的,你可以(当然,如果我们谈论的是text 文件)。但可能您需要创建一些项目(仅用于打开那里的文件)。

        那么你的步骤将是:

        1) 添加到创建的项目文件#1 和文件#2。

        2) 在编辑器中打开文件#1

        3) 在文件#2 的左侧菜单(项目文件浏览器)中右键单击鼠标,找到菜单项Compare File with Editor

        就是这样。在 p.3) 之后将打开一个比较窗口。

        【讨论】:

        • 谢谢。我知道我可以那样做差异。我试图弄清楚我是否可以跳过一个项目而只做差异。我想我可以问另一个问题,以推荐具有诸如 intelliJ 之类的差异工具的文本编辑器。
        【解决方案9】:

        为了比较两个都不在项目中的文件,以下适用于我在 Windows 上的 IntelliJ IDEA Ultimate 14.1.7 中:

        1. 在 IDE 中打开第一个文件(通过从 Windows 资源管理器拖动到窗口中,或通过文件/打开)。
        2. 在视图菜单中,选择“比较...”
        3. 在出现的“选择路径”对话框中,选择第二个文件(直接选择,或者从 Windows 资源管理器中拖动到对话框中)。

        然后它会在传统的文件比较窗格中打开。如果您尝试编辑其中一个文件,它会显示通常的“您确定要编辑不在您的项目中的文件”对话框,如果您正在尝试这样做,则可以接受该对话框。

        【讨论】:

        • 这实际上比使用收藏列表创建项目要容易得多!
        【解决方案10】:

        只需选择项目结构中的两个文件并点击:

        Windows: ctrl+D

        苹果机: 命令+D

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-02-12
          • 1970-01-01
          • 1970-01-01
          • 2019-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多