【问题标题】:How do I get Beyond Compare to Ignore non text characters如何超越比较以忽略非文本字符
【发布时间】:2016-04-28 02:49:10
【问题描述】:

我的问题是双重的。我正在使用与 Visual Studio 2015 集成的 Beyond Compare 作为我的比较/合并工具。在查看我的“待更改”列表时,我看到一个文件,如果我“右键单击 -> 源代码管理 -> 与最新版本比较”,我可以看到文本比较没有差异,如下所示:

但是,如果我进行相同的十六进制比较,我会得到以下结果:

我可以看到它在开始时以某种方式获得了 EF BB BF,Beyond Compare 用左侧窗口中的红色条记录了这种差异。

在其他情况下,我在“Pending Changes”中看到文件末尾带有 0d0a,这显然是换行符,但 Beyond Compare 并没有将其显示为文本比较中的差异(我见过 Git GUI 将其显示为过去的差异)。

当我将特定文件视为“待定更改”时,如何让 Beyond Compare 忽略文本比较中未显示的此类更改,因此我在“待定更改”窗口中看不到它首先?

或者,如果这根本不可能,

如何让 Beyond Compare 在默认文本比较中显示这些更改,以便轻松撤消它们?

【问题讨论】:

  • 文件开头的 EF-BB-BF 表示带有 BOM 的 UTF-8。在顶部图像的右侧,文件内容上方,您可以看到带有红色下划线的“BOM”。
  • 谢谢阿德里安。遗漏了带下划线的 BOM 文本;我可以将它与下面 Chris Kennedy 的回答一起使用来(某种程度上)解决这个问题。

标签: visual-studio visual-studio-2015 beyondcompare beyondcompare4


【解决方案1】:

要使额外的换行符在文本比较中显示为差异:

  1. 点击规则工具栏按钮(裁判图标)。
  2. 重要性标签中,勾选Compare line endings (PC/Mac/Unix)
  3. 要将其设为新文本比较会话的默认设置,请在单击确定之前将下拉列表从仅用于此视图更改为同时更新会话默认设置

如果您打开查看>可见空白,额外的换行符将显示为红色差异。当此设置打开时,它还会在一侧显示 Windows 样式换行符和在另一侧显示 Unix 样式换行符作为区别。

正如 AdrianHHH 所说,EF BB BF 是一个 UTF-8 字节顺序标记。无法在文本比较中添加或删除 BOM。在 Hex Compare 中,可以从文件中删除 BOM。

【讨论】:

  • 谢谢克里斯。这看起来像我需要的。
猜你喜欢
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多