在Beyond Compare中,根据文本在两侧设置一条不重要的线

时间:2018-01-28 09:43:34

标签: beyondcompare beyondcompare4

在Beyond Compare中,你如何根据右侧的文字忽略双方的一条线?

e.g。

档案1

if (a==b)
{
    c++;
    d--;
    //e--;
    f--;
}

文件2

if (a==b)
{
    c++;
    //d--; /* GG2018 */
    e--;
    //f--;  
}

我想要比较显示d--的线条有微小的差异。 e--和f--的界限应该显示为主要的差异。这是基于 GG2018

这个词

我尝试过语法和重要性,但仅限于d--行,一方显示为不重要。左侧显示为红色,没有细微差别。

编辑: 文件在C中,语法规则是

GG2018=Text matching ^.*GG2018.*

GG2018 set as unimportant.

此外,Unimportant文本的规则也创建为 -

^.*GG2018.*

Edit2:在上面的示例中添加了行e--和f--。

此外,如果规则可以更容易,可以修改标识符GG2018评论位置。

**方法2 **

//d--; /* GG2018 */  changed to         /* GG2018 */ //d--; 

预期结果与以前相同。

2 个答案:

答案 0 :(得分:1)

您没有显示您的语法和重要性设置,因此难以获得答案。但代码看起来像Java或C.所以我的答案是基于您使用默认Java File Format of BC4的假设。

我认为您忽略了第二个文件中的//。使用此评论标志它没有细微差别,这是一个非常重要的区别: enter image description here

如果您删除文件二中的注释标记,则只会进行少量更改(如果您设置规则Java)。 enter image description here

答案 1 :(得分:0)

即使文本相同,如果语法元素类型不同,那么Beyond Compare会将其显示为差异。

“文本比较”显示窗口底部状态栏中当前光标位置的语法元素类型。如果您光标左侧的d行中的d--;,则会显示左侧语法元素为标识符,右侧语法元素为注释。这总是有区别的,因为元素类型不同。

使用不重要的语法无法忽略示例中的差异。如果您拥有Beyond Compare Pro许可证,则可以使用文本替换来忽略差异。

在文本比较中加载文件,左侧为d--;,右侧为//d--; /* GG2018 */

  1. 单击“规则”工具栏按钮(裁判图标)。
  2. 转到“替换”标签。
  3. 点击+添加替换。
  4. 要查找的文字:(\ s +)//(。*)/ * GG2018 * /
  5. 替换为:$ 1 $ 2
  6. 检查正则表达式。
  7. 设置边:向右。
  8. ()中的表达式被分组并保存在变量$ 1到$ 9中。