Русское сообщество Sublime Text

Основной раздел => Вопросы и ответы => Тема начата: k1ker2 от Апреля 24, 2014, 16:06:05

Название: Макросы с заменой
Отправлено: k1ker2 от Апреля 24, 2014, 16:06:05
А можно ли как-то сделать макросы с заменой? А то у меня почему-то не получается.

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

Можно ли как-то под это написать макрос или дополнение, чтобы его потом можно было редактировать?
Название: Re: Макросы с заменой
Отправлено: Loac от Апреля 24, 2014, 18:46:08
Операции поиска или замены ST не записывает в макрос (что странно).

Для автоматизации этого процесса можно, например, написать небольшой плагин либо поставить готовый RegReplace (https://sublime.wbond.net/packages/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.