如何在 Notepad++ 或类似软件中使用高级编辑

如何在 Notepad++ 或类似软件中使用高级编辑

我希望能够按照以下方式编辑文本部分。

我可能有一个如下所示的部分。

例子。

Instance=wall

{

    VisGroups=(32)
    MeshFile=wall.gmt CollTarget=False HATTarget=False 
}

我需要根据“实例”名称(本例中为“墙”)找到我想要的部分,然后更改第 4 行中的脚本

我想将 CollTarget 和 HatTarget 更改为 True,

如果只剪切/粘贴一次或两次,则为简单的剪切/粘贴,但最多可剪切/粘贴 500 次,并且各部分将分散在整个文本中,某些区域将具有相同的脚本,即 CollTarget=False HATTarget=False,无需编辑。文件长度最多可达 5000 行,类似于下面的示例

Instance=object350

{

    MeshFile=object350.gmt CollTarget=False HATTarget=False 

}

Instance=box056

{

    VisGroups=(32)
    MeshFile=box056.gmt CollTarget=False HATTarget=False 

}

Instance=wall01

{

    VisGroups=(32)
    MeshFile=wall.gmt CollTarget=True HATTarget=False 

}

Instance=track01

{

    MeshFile=track01.gmt CollTarget=True HATTarget=True
}

还要注意,括号内的线条数量并不完全相同


但在下一部分中我可能不想这样做。

Instance=20road007

{

    VisGroups=(32)
    MeshFile=20road007.gmt CollTarget=False HATTarget=True Response=VEHICLE,TERRAIN 

}

例如添加/粘贴一段额外的脚本,甚至完全删除一段脚本


使用宏可以实现吗?我可以在 Notepad++ 中执行某些操作吗?它有很多命令?我需要编写“BASIC”程序吗?我不懂宏,而且我的编程能力有限。

我该怎么做呢?这样可以节省很多时间。希望我已经表达清楚了。

任何帮助都将不胜感激。谢谢

答案1

我做了一些假设,但看起来你想找到所有包含

MeshFile=<someValue>.gmt

然后将 CollTarget 和 HATTarget 的参数更新为 TRUE,而不触及该行上的任何其他参数。

假设 CollTarget 和 HATTarget 始终是前两个参数,并且按照相同的顺序,您可以在文件上运行“全部替换”命令(CTRL + H)并使用以下内容:

Find what =    (.*)(wall.gmt) CollTarget=(\w+) HATTarget=(\w+)(.*)
Replace with = $1$2 CollTarget=True HATTarget=True$5

解释:

  • 请参阅 Notepad++ Regex 文档以了解一般语法(http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Regular_Expressions
  • 括号内的模式找到的任何值都将在“$N”语法中可用。数字对应于查找表达式中的括号对计数。
  • 更改第二对括号中的值以更改要替换/更新的实例名称。在我的示例中,我使用了 wall.gmt
  • 替换表达式可以翻译为:
    • 插入在实例名称之前的行首找到的任何内容 - 通过“(.*)”找到的内容
    • 插入搜索的实例名称(这样您就不必在搜索和替换表达式中输入它)
    • 将新值赋予 CollTarget 和 HATTarget
    • 将找到的所有内容附加到 HATTarget 之后

如果我假设 CollTarget 和 HATTarget 并非总是第一个或以相同的顺序排列,那么您将需要将搜索表达式修改为两个单独的搜索和替换调用,其中第一个仅搜索 CollTarget 并更新该参数的值,然后第二个查找 HATTarget 并更新它。

相关内容