
Есть программисты которые пользуются таким инструментом как UltraEdit32.
Ни в коем случае не рекламирую этот продукт, просто решил поделится информацией о некоторых его возможностях.
В данной статье рассмотрены возможности по написанию скриптов для UltraEdit v.14.
Для автоматизации рутинных задач, UltraEdit имеет два инструмента:
- Макросы — используются для записи последовательностей вызовов функций меню, нажатий кнопок и прочих совершённых действий для последующего их повторения.
Создаются создаются в автоматическом режиме записи макроса, когда каждое действие учитывается.
Записываются в виде Basic – подобного языка в виде последовательностей действий.
- Скрипты — предназначены для создания более гибких сценариев автоматизации, которые затруднительно реализовать с помощью макросов.
Создаются в том же самом текстовом редакторе, обычным программированием.
Записываются в виде JavaScript (v.1.7.) сценариев, что не может не радовать.
Итак, сначала немного общих положений, а далее несколько примеров, которые сам постоянно использую.
Создание скриптов

Создавать скрипты очень просто, в меню “Scripting” имеется закладка “Scripts...” с помощью которой можно легко и просто управлять всеми доступными скриптами. Также, при выборе “Script list” становится доступным окошко со списком скриптов, которое можно пристроить в удобном месте, к примеру как на втором рисунке, в левом нижнем углу.

Более детально со средствами управления скриптами можно ознакомится на сайте, на русском нет.
Скрипты хранятся в обычных .js файлах и подключаются автоматически при старте программы.
Следует понимать, что скрипты, это не наборы функций, и при вызове каждый отрабатывает от начала и до конца.
Для использования специфических свойств документа к стандартным объектам JavaScript добавлен ещё один: UltraEdit, который и является главным интерфейсом к текущему рабочему пространству.
Основные полезные свойства и методы объекта UltraEdit
- activeDocument – как ни странно, предоставляет доступ к текущему активному документу.
Пример:
Допишет текст 'Hello Habr' в позицию текущего курсора.UltraEdit.activeDocument.write('Hello Habr');
- activeDocument.selection – предоставляет доступ к текущему выделенному тексту.
Пример:
Заменит в выделенном тексте все слова Word на Habr и выведет результат в окно вывода информации.var str = UltraEdit.activeDocument.selection;
str = str.replace(/Word/g, "Habr");
UltraEdit.outputWindow.showWindow(true);
UltraEdit.outputWindow.write(str);
- activeDocument.selection.copy()/cut()/paste() — в особых комментариях думаю не нуждается.
- activeDocument.key() — позволяет имитировать нажатия клавиш во время выполнения скрипта.
Пример:
Выделит всю текущую строку и покажет её в алерте.UltraEdit.activeDocument.key("HOME");
UltraEdit.activeDocument.startSelect();
UltraEdit.activeDocument.key("END");
UltraEdit.messageBox(UltraEdit.activeDocument.selection);
- messageBox – метод, замена обычному alert().
- Массив document[] – в отличии от activeDocument предоставляет возможность обратится к любому из текущих открытых табов по индексу.
Пример:
Допишет текст 'Hello second tab' в позицию курсора в тексте на втором табе.UltraEdit.document[1].write('Hello second tab');
Замечание, document.length соответственно содержит количество открытых табов.
- getString – метод ввода информации в скрипт.
Пример:
Отобразит окно ввода текста и поместит результат в переменную str.var str = UltraEdit.getString("Введи символ разделитель",1);
- outputWindow – Ещё один интересный объект, который позволяет работать не с текстовым, а с дополнительным окном вывода информации, предназначенном для вывода текущей информации и логов.
Пример:
Откроет окно вывода, если оно не показывается и выведет в него текст: 'Test outputWindow'.UltraEdit.outputWindow.showWindow(true);
UltraEdit.outputWindow.write("Test outputWindow");
- newFile – метод создающий новый, пустой таб.
Пример:
UltraEdit.newFile();
Самые интересные на мой взгляд свойства и методы мы рассмотрели.
Полное описание всех методов есть в справке к программе, а также на сайте можно найти неплохие примеры скриптов.
А теперь несколько простеньких скриптов, которые я предпочитаю всегда держать под рукой
Замена всех двойных кавычек в выделенном фрагменте текста на одинарные:
UltraEdit.activeDocument.mode = 1;//Признак того, что надо работать с выделением
UltraEdit.activeDocument.findReplace.selectText = true;
UltraEdit.activeDocument.findReplace.replaceAll = true;
UltraEdit.activeDocument.findReplace.replace("\"", "'");
Закоментирование выделенного текста:
UltraEdit.activeDocument.cut();
UltraEdit.activeDocument.write("/*");
UltraEdit.activeDocument.paste();
UltraEdit.activeDocument.write("*/");
Делал через буфер обмена, потому, что так проще, но нужно помнить, что текущий буфер он перезаписывает.Как антоним предыдущему скрипту, разкомментирование выделенного текста:
UltraEdit.activeDocument.mode = 1;//Признак того, что надо работать с выделением
UltraEdit.activeDocument.findReplace.selectText = true;
UltraEdit.activeDocument.findReplace.replaceAll = true;
UltraEdit.activeDocument.findReplace.replace("/*", "");
UltraEdit.activeDocument.findReplace.replace("*/", "");
* Source code was highlighted with Source Code Highlighter.
Возможностей конечно намного больше, но именно этими скриптами пользуюсь чаще всего.
Павел Осипов
17.06.2009.