Beyond Compare 规则设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Beyond Compare 规则设置相关的知识,希望对你有一定的参考价值。

我这边经常会有txt文件,每行即使只差几个空白(不是空格或TAB)也是重要差异的红色
有时候就是整屏的红色,一眼根本看不见真正重要的差异
然后我试着用16进制比较了下,发现每行开头会多4个A1

我想问下如何设置才能让这种情况下不会满屏的红色

① 你先确认一下,是否是编码不对造成的(上面的[文件信息]栏是否有个红叉)?
如果是,请切换到正确的编码。

② 如果你对比的是中文文本,你应该分析一下这种异常字符的产生原因,并且最好还是把异常字符整理干净以后再对比。

因为要做这样的忽略,过程相当烦琐(但愿你有耐心看完):

[工具]菜单 >> 文件格式:

▼打开了[文件格式]对话框:
在下面的[编辑文件格式默认设置]中,点击[文本格式]:
(或者,在上面点击一个已有的格式,以此格式为基础进行修改:)
再点击右边的[语法]选项卡:
点击[新建]按钮:

▼打开了[语法项]对话框:
[类别]选[基本]。
[文本匹配]填入:
^\xa1+
勾选[正则表达式]。
(这个正则表达式表示:位于行首的任意多个16进制编码为A1的字符。)
起个名(假设就叫 ^\xa1+ )。
确定。

▼回到了[文件格式]对话框:
为不影响原格式设置,点击[另存为]按钮,起个名(假设叫 YMQMY ),确定。
建议去掉 YMQMY 前的勾,表示:平常不用,只在需要时手动选用。
关闭对话框。

现在,载入你要对比的文本。
手动选择 YMQMY 格式。
再点击[规则]按钮。

▼打开了[文本对比 - 会话设置]对话框:
在[重要性]选项卡中:
在[语法条目]中:
看到刚才建的 ^\xa1+ 语法项了吧?
去掉它前面的勾,表示:此语法项在此会话中被设为“不重要”。
注意:最底下的选项“只用于本视图”(而不要选择“同时更新会话默认设置”)。
确定。

保存这个会话,以便日后使用。

你现在可能要说,设置了半天,根本无效!
这其实是编码问题造成的两难:

\xA1这个字符(Inverted Exclamation Mark)正常显示是¡(上下颠倒的!)。
它只有在西文编码(如 Western European )或Unicode下才能正常显示。
而我发现,在Beyond Compare中,只有正常显示,语法项才能正常匹配。
所以,你只有切换编码使这个字符正常显示,上述设置才会起效。
但是,切换编码,很可能造成其他字符不能正常显示了。
所以这是两难。
所以,你最好还是按我开头②说的做吧。

你看完了?
那就考虑多加点分吧,也希望我不是明珠暗投。

若仍有疑问,请“补充说明”或“追问”,我继续帮你。
参考技术A ① 你先确认一下,是否是编码不对造成的(上面的[文件信息]栏是否有个红叉)?
如果是,请切换到正确的编码。

② 如果你对比的是中文文本,你应该分析一下这种异常字符的产生原因,并且最好还是把异常字符整理干净以后再对比。

因为要做这样的忽略,过程相当烦琐(但愿你有耐心看完):

[工具]菜单 >> 文件格式:

▼打开了[文件格式]对话框:
在下面的[编辑文件格式默认设置]中,点击[文本格式]:
(或者,在上面点击一个已有的格式,以此格式为基础进行修改:)
再点击右边的[语法]选项卡:
点击[新建]按钮:

▼打开了[语法项]对话框:
[类别]选[基本]。
[文本匹配]填入:
^\xa1+
勾选[正则表达式]。
(这个正则表达式表示:位于行首的任意多个16进制编码为A1的字符。)
起个名(假设就叫 ^\xa1+ )。
确定。

▼回到了[文件格式]对话框:
为不影响原格式设置,点击[另存为]按钮,起个名(假设叫 YMQMY ),确定。
建议去掉 YMQMY 前的勾,表示:平常不用,只在需要时手动选用。
关闭对话框。

现在,载入你要对比的文本。
手动选择 YMQMY 格式。
再点击[规则]按钮。

▼打开了[文本对比 - 会话设置]对话框:
在[重要性]选项卡中:
在[语法条目]中:
看到刚才建的 ^\xa1+ 语法项了吧?
去掉它前面的勾,表示:此语法项在此会话中被设为“不重要”。
注意:最底下的选项“只用于本视图”(而不要选择“同时更新会话默认设置”)。
确定。

保存这个会话,以便日后使用。

你现在可能要说,设置了半天,根本无效!
这其实是编码问题造成的两难:

\xA1这个字符(Inverted Exclamation Mark)正常显示是¡(上下颠倒的!)。
它只有在西文编码(如 Western European )或Unicode下才能正常显示。
而我发现,在Beyond Compare中,只有正常显示,语法项才能正常匹配。
所以,你只有切换编码使这个字符正常显示,上述设置才会起效。
但是,切换编码,很可能造成其他字符不能正常显示了。
所以这是两难。
所以,你最好还是按我开头②说的做吧。
参考技术B 只是为了“不对齐”吗?如图,点击红框中的Rules按钮,在打开的对话框中设置。 你或许还可以试试BC3的Data Compare,它可以设置“关键列”,按列对齐。 ...

beyond compare 回车换行符比较规则

一边是Windows提交的代码,另一边是Mac OS提交的代码。两边文件编码不一样,导致回车和换行符不一致。怎么设置比较规则,忽略该差异?

Binary Comparison
Rules-based comparison
这两个都试过了,不管用。

求解答!!

选 Rules-based comparison 是对的。
▲但选了之后,必须[完全刷新]一次。

如果[完全刷新]后也没用,说明有个默认设置被改了。
(既然是 Rules-based comparison,就要看你以怎样的Rules为base。)

在你的这个[文件夹比较]视图中,任选一对文件进行对比;
在打开的[文件比较]视图中:
点击Rules按钮(或从Session菜单)打开 Session Settings 对话框:
Importance 选项卡:
(底部)Miscellaneous:
Compare line endings (PC/Mac/Unix)
▲停用这个选项(默认是停用的)。

然后,把 OK 左边的选项改为:
Use for all files within parent session

然后,回到 parent session(就是那个[文件夹比较]视图),完全刷新。

▲要重复使用这个会话,别忘了保存。

若仍未解决,请“补充说明”或“追问”,我继续帮你。
参考技术A 遇到的一个问题是,开发 Linux 下的应用程序,代码里本不应出现 \r。但是由于 Source Insight
在阅读代码上的便利性,我一直习惯在 Windows 下用 Source Insight 阅读和编辑代码,然后在 Linux 下编译和调试(虽说
Linux 下也可以通过 Wine 安装 Source Insight,但是 Linux 的 UI 实在是惨不忍睹哇)。 尽管在 Source
Insight 的 Options->Preferences->Files->Other->Default
file format 中设置了 Unix(LF),但可能是因为设置晚了,代码每一行的结尾,还是变成了 \r\n。
这个结果无疑是悲剧的,最起码,在 GBD 调试时,会出现代码无法对应的情况,因为 Linux 会把 \r\n 当成 2
行。既然出现了,就要想办法解决。但是 Beyong Compare 比较 Windows 和 Linux 下的文件时,对于 \r\n 和 \n
的区别,默认是不显示的。修改这个默认设置,在
Rules->Importance->Miscellaneous->Compare line
endings(PC/Mac/Unix)。
具体教程请参考官网资料http://www.beyondcompare.cc/support.html

以上是关于Beyond Compare 规则设置的主要内容,如果未能解决你的问题,请参考以下文章

beyond compare如何设置只比较实际内容?(使用关联规则比较)

beyond compare如何设置只比较实际内容?(使用关联规则比较)

beyond compare工具的设置,beyond compare工具比较文本时怎么设置自动换行,不喜欢默认的拉动滚动条来看

beyond compare 比较两个文件,一个文件是UNIX,一个是window的,文本内容一样,怎么比较

Beyond Compare怎么设置对比属性

Beyond Compare比较文件夹内容