Автор Тема: Макросы с заменой  (Прочитано 5059 раз)

k1ker2

  • Newbie
  • *
  • Сообщений: 6
Макросы с заменой
« : Апреля 24, 2014, 16:06:05 »
А можно ли как-то сделать макросы с заменой? А то у меня почему-то не получается.

В общем, приходиться убирать постоянно BB коды, через регулярки и поиск-замену.
К примеру: \[font=.*?] заменить на *Пусто*. Вот список всех замен:


Можно ли как-то под это написать макрос или дополнение, чтобы его потом можно было редактировать?

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: Макросы с заменой
« Ответ #1 : Апреля 24, 2014, 18:46:08 »
Операции поиска или замены ST не записывает в макрос (что странно).

Для автоматизации этого процесса можно, например, написать небольшой плагин либо поставить готовый RegReplace.

После установки открой настройки: Preferences > Package Settings > Reg Replace > Settings - User и добавь туда параметры нового поиска:

{
    "replacements": {
        "remove_bb": {
            "find": "\\[(\\w+)(=.+?)?\\](.+?)\\[\\/(\\w+)\\]",
            "replace": "\\3",
            "greedy": true,
            "case": false
        }
    }
}

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

Потом создай макрос и добавь в него команду для замены:

[
  {
    "command": "reg_replace",
    "args": { "replacements": ["remove_bb"] }
  }
]

На всякий случай, как создать макрос. Макрос это текстовый файл с набором команд. Открой список команд Tools > Command Palette, набери browse и выбери команду Preferences: Browse Packages. Откроется проводник в папке Packages редактора. Макрос необходимо сохранить в папке User с расширением .sublime-macro . Например: Remove bb.sublime-macro

После сохранения макрос сразу будет доступен из меню Tools > Macros > User > Remove bb.
« Последнее редактирование: Апреля 24, 2014, 19:05:08 от Loac »