Интерфейс командной строки для SciTE
Автор: Тугаринов Сергей / Дата: 18.07.2006 / Комментариев: 2
Категория: Полезные утилиты
За основу взят исходный код со .
Так как я не смог распаковать готовый взятый с сайта, пришлось собирать его самому из . Но толи сорцы кривые, толи мои руки, вообщем в процессе сборки была переписана треть кода, изменена 1 команда, исправлены 2 ошибки и все сообщения переведены на русский язык.
Вообщем принимайте :)
Утилита понимает следующие команды:
-h Вывести на экран эту справку.
-l line Перейти к строке под номером [line].
-f text Поиск текста [text] в файле.
-i text Вставить текст в файл.
-n Создать новое пустое окно.
-s Открыть новое окно с STDIN содержанием.
-c cmd Выполнить SciTE команду [cmd].
-o file Открыть файл [file].
Выглядит утилита в работе следующим образом:
Для работы необходимо:
- поместить ее в любой каталог вашего диска;
- прописать переменную windows path к каталогу SciTE, так как утилита по умолчанию вызывает scite.exe;
- наслаждаться его работой
Собрано с помощью C++Builder 5.5.
Скачать дистрибутив (включает в себя исходные коды) ~ 44 Kb.
Добавлено mozers™:
Поскольку я когда то обошел заслуженным вниманием данную тулзу, позволю себе добавить несколько строк:
Во- первых совет Сергея "прописать переменную windows path к каталогу SciTE" необходимо выполнить только в одном случае - если утилу вы собираетесь запускать при "потушенном" SciTE. Тогда, перед тем как выполнить заданную команду, утила сможет найти файл scite.exe и запустить его.
Если же вы собираетесь запускать ее из меню Tools редактора, то задание пути к редактору не является обязательным, поскольку прога ищет не не файл scite.exe, а окно программы и посылает команды прямо в него.
Кстати, занимается поиском окна она совершенно напрасно (при поиске возможны ошибки, если запущены несколько экземпляров SciTE), поскольку при вызове из SciTE можно передать утиле необходимый "$(WindowID)".
Только, увы, в этой утиле не предусмотрено чтение этого параметра :(
Команды, понимаемые утилой - полная туфта, за исключением одной -c cmd.
С помощю только одной этой команды можно управлять SciTE как угодно, поскольку в качестве параметра для нее может выступать любая команда поддерживаемая SciTE Director Interface - мощным средством взаимодействия SciTE с любой внешней прогой.
Все допустимые команды приведены в файле SciTEDirector.html, имеющегося в любом дистрибутиве SciTE. Посмотрите на них и вы увидите что они позволяют очень и очень многое.
В этот перечень входят не только команды меню (которые только и может выполнять мой SciTE Helper). Возможно задание команды с параметрами, возможно чтение любых параметров SciTE!
Стоп. Я увлекся :) Говоря о утилите, я приписал ей все возможности SciTE Director Interface, который она использует лишь наполовину и поэтому явно нуждается в доработке.
Что, на мой взгляд, надо изменить в коде:
1. Убрать из кода дурацкую строчку SetForegroundWindow(w); которая переключает SciTE на последний открытый буфер при выполнении любой команды (дико раздражает).
2. Научить утилу читать $(WindowID) из коммандной строки и не искать его самостоятельно, если прочесть удалось.
3. Научить утилу читать данные, отдаваемые ей SciTE (например, по команде askproperty:
4. Можно научить утилу читать команды (их же может быть и много) не только с ком.строки, а и из файла
5. Можно грохнуть все остальные команды, кроме -с за ненужностью ;)
Пока все :)
Если кто то из вас, дорогие мои, сможет исправить код, или написать свою утилиту использующую SciTE Director Interface, то я смогу создавать красивые и элегантные HTA формы, без проблем считывающие данные из SciTE и возвращающие их после обработки назад в редактор.
О более мощном средстве автоматизации нельзя и мечтать!
Ну и небольшой пример в заключении:
test.cmd:Код:
scitecmd.exe -c extender:"dostring val='My Test!' dofile('test.lua')"
test.lua:Код LUA:
print('val = '...val)
/ Версия для печати / Прочитано: 11147 раз(а)
Комментариев: 2 (rss)
1. ilyaor / 28.02.2006 - 09:18
2. Тугаринов Сергей / 28.02.2006 - 10:26


итак переименуем scitecmd.gz в scitecmd.exe и получаем бинарник от автора. теперь можно использовать два разных варианта - кому что понравится