Найдите и замените макрос в Sublime Text 2, чтобы переключиться с mysql_ на mysqli_

У меня есть куча кода, который нужно переходить с PHP mysql_* в mysqli_*

В Sublime Text 2 я легко могу найти find для 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));

и

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

на той же странице.

Есть ли способ для меня построить макрос в 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));

в то же время? Я думаю, что могу использовать регулярное выражение для выполнения этого, я просто не знаю, как и с чего начать.

UPDATE

Итак, после небольшой охоты я обнаружил, что могу найти:

mysql_query\(\$(\w+), \$DB\)

и замените на

mysqli_query\(\$DBi\, \$$1)

который преобразует $rstest = mysql_query($q_test, $DB) or die(mysql_error($DB));

to

$rstest = mysqli_query($DBi, $q_test) or die(mysql_error($DB)); для меня, но...

оказывается, что макрос не может найти и заменить. Есть ли у меня какие-либо опции?

UPDATE

Итак, похоже, что я могу использовать плагин Reg Replace, чтобы выполнить то, что я хочу, даже если у меня больше настроек.

Использование Reg Replace Я могу связать несколько действий поиска и замены и привязать их к нажатию клавиши, чтобы в принципе выполнить серию действий по поиску и замене, чтобы получить то, что мне нужно:

  • Найти и заменить mysql_ на mysqli_
  • Найдите и замените $DB на $DBi
  • Найти и заменить , $DBi) or die( на ) or die(
  • Найти и заменить 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));

для меня одним нажатием клавиши. Это не оптимально, но это делает трюк. Я все еще ищу простой, без плагинов решение.

UPDATE Вышеупомянутое работает с Sublime Text 3 с помощью обновленного плагина Reg Replace

Ответ 1

Поскольку у sublime нет возможности записывать поиск и замену с помощью регулярного выражения в макросе, теперь я собираюсь использовать Reg Replace и ряд прикованных команд поиска и замены, чтобы получить то, что я ищу.