Редактировать скрипт RouterOS в обычном блокноте без подсветки — значит почти гарантированно пропустить незакрытую скобку или опечатку в имени команды, а ошибку вы заметите только при импорте на роутер. Поиск по запросу «notepad mikrotik syntax» обычно приводит сюда именно поэтому: встроенный редактор Winbox и терминал не дают удобной работы с длинными скриптами, и администраторы переносят код в Notepad++, где подсветка синтаксиса MikroTik подключается через механизм пользовательских языков.
Штатного языка «MikroTik» в Notepad++ нет — его нужно добавить вручную через User Defined Language (UDL) или импортировать готовый XML-файл с описанием синтаксиса RouterOS. Ниже разберём оба способа, настройку автодополнения и типовые проблемы, с которыми сталкиваются при этом.
Почему стандартные языки Notepad++ не подходят
Синтаксис RouterOS не похож ни на один мейнстримовый язык программирования. Команды начинаются со слэша (/ip firewall filter add), параметры пишутся через знак равенства без пробела, а переменные объявляются через :local и :global. Если открыть скрипт как обычный текст или выбрать ближайший по виду язык вроде Bash, подсветка будет бессмысленной: Notepad++ раскрасит то, что не нужно, и проигнорирует ключевые конструкции.
Именно поэтому сообщество создаёт отдельные UDL-описания, где явно перечислены:
- 🔹 ключевые слова —
:local,:global,:set,:if,:foreach,:while,:do,:put; - 🔹 корневые ветки меню —
/ip,/interface,/system,/tool,/routing; - 🔹 комментарии, начинающиеся с символа
#; - 🔹 строки в кавычках и числовые значения;
- 🔹 операторы сравнения и скобочные блоки.
Собственный UDL можно собрать и самостоятельно, но проще взять готовый файл и при необходимости доработать под свои задачи.
Установка готового UDL-файла с подсветкой RouterOS
Готовые XML-файлы с описанием синтаксиса MikroTik для Notepad++ публикуются энтузиастами на GitHub и в тематических форумах по запросам вроде «MikroTik RouterOS UDL Notepad++». Перед импортом имеет смысл открыть файл в текстовом виде и убедиться, что это действительно XML с описанием языка, а не что-то иное.
Порядок импорта в актуальных версиях Notepad++ выглядит так:
- 📥 откройте меню
Язык → Определить свой язык → Импорт(в английской версии —Language → User Defined Language → Define your language → Import); - 📥 укажите скачанный XML-файл с описанием RouterOS;
- 📥 перезапустите Notepad++, чтобы язык появился в списке;
- 📥 выберите новый язык в меню
Языквнизу списка либо сохраняйте скрипты с расширением, привязанным к UDL (часто используют.rsc).
☑️ Проверка после установки UDL
После импорта откройте любой экспортированный с роутера файл (/export file=config создаёт именно .rsc) и проверьте, как раскрашиваются ветки меню, строки и комментарии. Если часть конструкций осталась серой — их можно добавить вручную в редакторе UDL.
Ручная настройка User Defined Language
Если готовый файл не найден или хочется полного контроля, язык собирается вручную. Откройте Язык → Определить свой язык → Создать новый, задайте имя (например, MikroTik) и заполните вкладки.
На вкладке Keywords Lists в первую группу добавьте управляющие слова: :local :global :set :if :else :foreach :while :do :put :beep :delay :return :error. Во вторую — команды меню без начального слэша либо с ним, в зависимости от того, как вам удобнее читать код. На вкладке Comment & Number укажите символ # как начало однострочного комментария, а на вкладке Operators & Delimiters — скобки { } [ ] ( ) и операторы сравнения.
⚠️ Внимание: в RouterOS комментарий действует от символа#до конца строки, многострочных комментариев вида/ /язык не поддерживает. Если добавить их в UDL по привычке, подсветка будет вводить в заблуждение — текст после «закрывающего» маркера на самом деле останется комментарием для роутера.
Цвета для каждой группы настраиваются кнопкой Styler рядом с соответствующим полем. Для тёмной темы Notepad++ проверяйте контрастность сразу на ней — цвет, читаемый на белом фоне, на тёмном может сливаться.
Какие конструкции RouterOS стоит добавить в UDL
Помимо базовых слов, полезно подсветить логические значения true/false и yes/no, префиксы переменных ($), escape-последовательности в строках (\n, \t, \"), а также часто используемые ветки меню: /ip address, /ip firewall, /ip route, /interface bridge, /system scheduler, /tool netwatch. Список зависит от того, какие скрипты вы пишете чаще всего.
Автодополнение и привязка расширения .rsc
Чтобы Notepad++ сам подхватывал подсветку, привяжите расширение файла к языку. В редакторе UDL есть поле Ext. — впишите туда rsc без точки. Теперь любой файл config.rsc, выгруженный с роутера, откроется сразу с подсветкой MikroTik.
Автодополнение настраивается отдельным XML-файлом в каталоге autoCompletion внутри папки установки Notepad++ (для пользовательских языков имя файла должно совпадать с именем UDL). Туда можно внести длинные команды вроде /ip firewall filter add chain=forward, чтобы не набирать их целиком. Структура файла описана в официальной документации Notepad++; если что-то не срабатывает, первым делом сверьте имя файла с именем языка — они должны совпадать посимвольно.
Типичные проблемы и их решения
Чаще всего после настройки встречаются четыре ситуации. Сводка по ним — в таблице ниже.
| Проблема | Вероятная причина | Что проверить |
|---|---|---|
| Подсветка не включается | Язык не выбран или не привязано расширение | Меню «Язык», поле Ext. в UDL |
| Часть слов не подсвечивается | Слова записаны слитно без пробела-разделителя в списке | Разделитель в Keywords Lists — пробел |
| Файл с роутера «ломает» подсветку | Кодировка или переносы строк отличаются | Кодировку (меню «Кодировки») и CRLF/LF |
| Автодополнение не работает | Имя XML-файла не совпадает с именем UDL | Папку autoCompletion и регистр букв |
| После обновления Notepad++ язык пропал | Пользовательские языки хранятся в userDefineLangs | Резервную копию папки конфигурации |
Отдельно стоит упомянуть кодировку. Экспорт из RouterOS обычно приходит в UTF-8, и проблем с ним не бывает, но если скрипт собирался в разных редакторах, внутри могут встретиться символы в другой кодировке. Перед заливкой на роутер приведите файл к UTF-8 через меню Кодировки → Преобразовать в UTF-8.
⚠️ Внимание: подсветка в Notepad++ — это только визуальный помощник. Она не проверяет корректность команд для конкретной версии RouterOS: набор параметров и веток меню различается между версиями и пакетами (например, часть функций доступна только при установленных дополнительных пакетах). Перед применением скрипта на боевом роутере проверяйте его на тестовом устройстве или в CHR.
Альтернативы: VS Code и другие редакторы
Notepad++ — не единственный вариант. Для VS Code существуют расширения с подсветкой RouterOS, которые также добавляют сниппеты и базовую проверку скобок. Выбор между редакторами — дело привычки: Notepad++ легче и быстрее запускается, VS Code удобнее при работе с целыми репозиториями конфигураций и Git.
Какой бы редактор вы ни выбрали, главный выигрыш даёт не цвет текста, а дисциплина: храните скрипты в файлах с версионированием, а не внутри роутера — тогда откат после неудачного изменения займёт минуты.
Часто задаваемые вопросы
Есть ли встроенная подсветка MikroTik в Notepad++ из коробки?
Нет, штатного языка RouterOS в Notepad++ нет. Подсветка добавляется через механизм User Defined Language — импортом готового XML-файла или ручным созданием языка в меню «Язык → Определить свой язык».
Какое расширение файла лучше использовать для скриптов RouterOS?
Общепринятое расширение — .rsc: именно его создаёт команда /export file=... на роутере. Привязав это расширение к UDL в поле Ext., вы получите автоматическую подсветку при открытии любых экспортов.
Почему после обновления Notepad++ пропал мой язык MikroTik?
Пользовательские языки хранятся в файлах конфигурации (каталог userDefineLangs в папке настроек программы). При некоторых способах обновления или переустановки эта папка может быть перезаписана. Держите резервную копию XML-файла вашего языка — повторный импорт займёт полминуты.
Проверяет ли Notepad++ ошибки в скрипте RouterOS?
Нет. UDL отвечает только за раскраску текста и не анализирует корректность команд. Фактическую проверку выполняет сам роутер при импорте или выполнении скрипта, поэтому тестируйте изменения на нерабочем устройстве.
Чем Notepad++ лучше встроенного редактора Winbox для скриптов?
В Notepad++ удобнее работать с длинными скриптами: поиск и замена по регулярным выражениям, одновременное редактирование нескольких файлов, сравнение версий через плагины и автодополнение. Встроенный редактор Winbox подходит для мелких правок, но не для разработки.