在Sublime Text 2中查找并替换via宏,从mysql_切换到mysqli_

Jas*_*son 10 sublimetext2 sublimetext3

我有一堆代码需要从PHP转换mysql_*mysqli_*

在Sublime Text 2中,我可以轻松地找到mysql_并替换它mysqli_

我遇到的问题是:

mysql_query($query, $link_identifier)

mysqli_query($link, $query)

更糟糕的是,$ query并不总是查询字符串的变量名.我可能有:

$q_test = "SELECT `lName` FROM `users` ORDER BY `lName`";
$rstest = mysql_query($q_test, $DB) or die(mysql_error($DB));
Run Code Online (Sandbox Code Playgroud)

$q_tester = "SELECT `address` FROM `users_address` ORDER BY `id`";
$rstester = mysql_query($q_tester, $DB) or die(mysql_error($DB));
Run Code Online (Sandbox Code Playgroud)

在同一页上.

有没有办法让我在Sublime Text 2中构建一个宏来将上述两个内容更改为:

$rstest = mysqli_query($DBi, $q_test) or die(mysqli_error($DBi));
$rstester = mysqli_query($DBi, $q_tester) or die(mysqli_error($DBi));
Run Code Online (Sandbox Code Playgroud)

同时?我想我可以使用正则表达式来完成这个我只是不知道如何以及从哪里开始.

UPDATE

所以,经过一点点狩猎,我发现我可以搜索:

mysql_query\(\$(\w+), \$DB\)
Run Code Online (Sandbox Code Playgroud)

并替换为

mysqli_query\(\$DBi\, \$$1)
Run Code Online (Sandbox Code Playgroud)

转换 $rstest = mysql_query($q_test, $DB) or die(mysql_error($DB));

$rstest = mysqli_query($DBi, $q_test) or die(mysql_error($DB)); 对我来说......

原来你不能宏查找和替换.我有什么选择吗?

UPDATE

所以看起来我可以使用插件Reg Replace来完成我想要的东西,即使我有更多的设置要做.

使用Reg替换我可以将多个查找和替换操作链接在一起并将它们绑定到按键,这样我基本上可以执行一系列查找和替换操作以获得我需要的操作:

  1. 查找并替换mysql_mysqli_
  2. 查找并替换$DB$DBi
  3. 查找并替换, $DBi) or die() or die(
  4. 查找并替换mysqli_query($mysqli_query($DBi, $

那些基本上得到

$rstest = mysql_query($q_test, $DB) or die(mysql_error($DB));

转换成

$rstest = mysqli_query($DBi, $q_test) or die(mysqli_error($DBi));

对我来说只需一次按键.它不是最佳的,但它可以解决问题.我仍然在寻找一个简单的,没有插件的解决方案.

更新上面使用Sublime Text 3使用更新的Reg Replace插件

Jas*_*son 7

由于sublime没有能力使用宏中的正则表达式来记录查找和替换现在我将使用Reg Replace和一系列链式查找和替换命令来获取我正在寻找的内容.