Visual Studio Code - 使用跨多个页面的一行中的数学运算更改特定整数的值

Kha*_*led 2 replace find visual-studio-code

不确定这是否可以通过 Visual Studio Code 完成,但我想在继续手动修改项目中的数千行之前我应该​​先检查一下。

请参阅下面的示例以帮助解释我面临的问题。

我有多个文件分布在多个文件夹中,其中包含一个标识文本(在本例中为 Bolts),以及另一个标识符(在本例中为质量)值,该值等于每个页面上不同的整数。我想知道是否可以通过基本数学方程用更新的整数替换这些整数。

页A:

{
   "key": "storage01/bolts",
   "quality": 53.12,
   "weight": 30
},
{
   "key": "storage01/cogs",
   "quality": 39.17,
   "weight": 29
}
Run Code Online (Sandbox Code Playgroud)

B页:

{
   "key": "storage02/bolts",
   "quality": 18.9,
   "weight": 30
},
{
   "key": "storage02/cogs",
   "quality": 76.2,
   "weight": 29
}
Run Code Online (Sandbox Code Playgroud)

我想通过乘以 0.29 来更改质量的两个数字,这样结果就会像这样..

页A:

{
   "key": "storage01/bolts",
   "quality": 15.4048,
   "weight": 30
},
{
   "key": "storage01/cogs",
   "quality": 39.17,
   "weight": 29
}
Run Code Online (Sandbox Code Playgroud)

B页:

{
   "key": "storage02/bolts",
   "quality": 5.481,
   "weight": 30
},
{
   "key": "storage02/cogs",
   "quality": 76.2,
   "weight": 29
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ark 5

借助map-replace.js和另一个扩展搜索编辑器:应用更改您可以非常轻松地完成此操作。感谢@rioV8 的第一个扩展、它的替换代码和第二个正则表达式。

这个想法是在搜索编辑器中跨文件进行搜索,在该编辑器中映射替换这些值,然后将这些更改保存到所有基础文件中。

(1) 打开一个新的搜索编辑器(从命令选项板或对命令进行键绑定)或在面板中进行搜索,然后选择Open in Editor

(2) 进行正则表达式搜索\{\s*.*bolts[\w\W]*?\}

(3) 现在在“搜索编辑器”选项卡中执行“查找”(?<="quality":\s*)[\d.]+

(3) Alt+Enter选择所有匹配项(您可能需要先在编辑器中单击)。

(4) 运行Map and Replace Selection with JavaScript Function(v, i) => `${(Number(v)*0.29).toFixed(2)}进行所需的更改。设置toFixed()为您想要的。

(5)Apply Search Editor changes to worksapceSearch Editor: Apply Changes扩展运行

您的更改将保存在所有文件中。将这些扩展和搜索编辑器功能一起使用非常巧妙 - 您的用例是一个很好的用例(只要跨文件的初始正则表达式不是很难正确执行)。

(6) Save all



演示(使用简化的替换,因为我似乎无法粘贴到输入框中):

地图替换与应用所有更改演示