Macros plugin
- Author
- Message
-
Offline
- Posts: 1250
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Ну вот такая куча неожиданностей мне иногда бывает нужно.
Это первое. Второе: как-бы не все макросы в принципе могут работать так что когда-либо достигнут конец файла. Не все вообще работают с текстом. Ну да ладно.
Обнаружился баг.
Зашел в диалог макросов.
Записал макрос. Назвал его.
Назначил ему комбинацию.
Закрыл диалог.
Запустил пару раз.
Опять открыл диалог.
Удалил макрос.
Записал новый. Назвал его.
Назначить ему комбинацию уже не могу - пишет занято тем другим, несуществующим.
Однако неудобно при интенсивной работе.
Это первое. Второе: как-бы не все макросы в принципе могут работать так что когда-либо достигнут конец файла. Не все вообще работают с текстом. Ну да ладно.
Обнаружился баг.
Зашел в диалог макросов.
Записал макрос. Назвал его.
Назначил ему комбинацию.
Закрыл диалог.
Запустил пару раз.
Опять открыл диалог.
Удалил макрос.
Записал новый. Назвал его.
Назначить ему комбинацию уже не могу - пишет занято тем другим, несуществующим.
Однако неудобно при интенсивной работе.
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Изменено: обработка до последней строки включительно, если последняя строка не пустая, при установке количества повторов в ноль.
Исправлено: при удалении макроса, горячая клавиша не освобождалась.
Changed: processing until and including (if the last line is not empty) the last line, when setting repeat count to zero.
Fixed: when macro deleted, hot key was not released.
Macros plugin v5.0
Исправлено: при удалении макроса, горячая клавиша не освобождалась.
Changed: processing until and including (if the last line is not empty) the last line, when setting repeat count to zero.
Fixed: when macro deleted, hot key was not released.
Macros plugin v5.0
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Это теоретически имеет смысл для того, чтобы использовать из Scripts-плагина (иначе просто смысла не вижу). Но из Scripts-плагина можно прекрасно получить количество всех строк, отнять нужное число и передать в Macros рассчитанное число строк для выполнения.[Yustas.NeO] wrote:Может тогда: 0 - до последней строки включительно, -1 - до предпоследней, -2 - до предпредпоследней, и т.д. ?
-
Offline
- Posts: 1
- Joined: Mon Jul 30, 2012 4:54 pm
1. Можно ли сделать так, чтобы макрос запоминал раскладку клавиатуры, в которой был записан?
Например, макрос обрамляет выделенный текст тегом <h1>.
Если изменить раскладку на русскую и запустить макрос, то
вместо "<h1>Заголовок</h1>"
будет "Бр1ЮЗаголовокБ.р1Ю".
Пробовал такую хитрость. Назначить для необходимой раскладки сочетания клавиш через систему (WinXP).
И переключать в макросе через эти клавиши (Alt слева + Shift + 1).
Если через клавиатуру раскладка переключается, то через макрос ничего не происходит.
Хотя, обычное "Переключение между языками ввода" (Ctrl + Shift) через макрос работает.
Может есть возможность переключить раскладку клавиатуры через скрипты JS/VBS?
Тогда это можно было бы использовать с кодом от Macro2SendKeys.vbs
2. Как добавить описание к макросу? Может в третью колону таблицы макросов как-то можно вставить описание?
3. Как переименовать макрос?
Например, макрос обрамляет выделенный текст тегом <h1>.
Если изменить раскладку на русскую и запустить макрос, то
вместо "<h1>Заголовок</h1>"
будет "Бр1ЮЗаголовокБ.р1Ю".
Пробовал такую хитрость. Назначить для необходимой раскладки сочетания клавиш через систему (WinXP).
И переключать в макросе через эти клавиши (Alt слева + Shift + 1).
Если через клавиатуру раскладка переключается, то через макрос ничего не происходит.
Хотя, обычное "Переключение между языками ввода" (Ctrl + Shift) через макрос работает.
Может есть возможность переключить раскладку клавиатуры через скрипты JS/VBS?
Тогда это можно было бы использовать с кодом от Macro2SendKeys.vbs
2. Как добавить описание к макросу? Может в третью колону таблицы макросов как-то можно вставить описание?
3. Как переименовать макрос?
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
Следует давать макросам осмысленные имена. Например "Join selected lines.macro" предпочтительнее чем "MyMacro19.macro".vldmr wrote:2. Как добавить описание к макросу?
Макросы - это файлы. Имя макроса - это имя соответствующего файла. Следовательно для переименования макроса достаточно переименовать его файл. Файлы записанных макросов расположены в каталоге \AkelFiles\Plugs\Macros\ и имеют расширение ".macro".vldmr wrote:3. Как переименовать макрос?
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
-
Offline
- Posts: 147
- Joined: Fri Feb 08, 2008 6:41 pm
- Location: British Columbia, Canada
MacTool - macro compiler/decompiler
Hi guys,
I have long thought the Macros plugin was great! A few people (including myself) have asked about "editing macros". Can't be done.
I have written a little compiler (and decompiler - one decompile mode incomplete in this version) which uses a custom "language" to create macros. A detailed help file is included in the small download (zip file).
Please try it out - you can get it on my usual Help file download page, here:
http://members.shaw.ca/atbcls/akelpad/. I hope to get the decompiler (back to source language) done soon, but many things need doing first here in British Columbia.
Cheers!
- Surveyor
I have long thought the Macros plugin was great! A few people (including myself) have asked about "editing macros". Can't be done.
I have written a little compiler (and decompiler - one decompile mode incomplete in this version) which uses a custom "language" to create macros. A detailed help file is included in the small download (zip file).
Please try it out - you can get it on my usual Help file download page, here:
http://members.shaw.ca/atbcls/akelpad/. I hope to get the decompiler (back to source language) done soon, but many things need doing first here in British Columbia.
Cheers!
- Surveyor
-
Offline
- Posts: 14
- Joined: Thu Aug 16, 2012 6:52 pm
Текстовый файл макроса
Да, такая штука очень нужна. Простенькие макросы можно сделать и сейчас, а вот что-то посложней уже затруднительно т.к. неизбежны ошибки, а поправить уже нельзя. Кроме этого по мере работы с текстами требуется вносить изменения и дополнения в макросы. Если макрос большой, то его придется заново набирать, а это может быть весьма затруднительно. А были бы макросы в виде текстовых файлов, то и проблем бы не было.Fr0sT wrote:Может, легче изменить сам плагин, чтобы писал в обычные текстовые файлы?
Был такой старый ДОСовый текстовый процессор Лексикон. Там тоже была реализована возможность создавать макросы. Вот пример из файла keymacro.lex
MACRO Э
+1{ALT-EQ}{BACKSPACE}{BACKSPACE}{DEL}{DEL}{DEL}{SHIFT-F3}{CTRL-RIGHT}{CTRL-F3}{ENTER}{SHIFT-LEFT}{SHIFT-F4}{F4}{CTRL-EMPTY}{RIGHT}.{-40}
Вот так же хорошо бы сделать и здесь. Не верю, чтобы технически это было невозможно.
-
Offline
- Posts: 147
- Joined: Fri Feb 08, 2008 6:41 pm
- Location: British Columbia, Canada
Tiny bug (visual only)
Instructor,
Just a minor visual bug in v5.1 - when macro recording started, small close dialog appears, as it should. Top-right corner of dialog should be transparent (as with top-left corner), but is black instead.
- Surveyor
Just a minor visual bug in v5.1 - when macro recording started, small close dialog appears, as it should. Top-right corner of dialog should be transparent (as with top-left corner), but is black instead.
- Surveyor
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Instructor
Бывают случаи, когда поставил 0 повторов и маркос такого натворит, что жуть.. Приходится отменять через стандартное Ctrl+Z, и если файл большой, то это грустно. Для таких случаев в макрос-диалоге (он как раз находится на экране) очень была бы кстати кнопка "Отменить", которая отменяла бы столько действий, сколько было "проиграно" плагином в последний запуск.
Бывают случаи, когда поставил 0 повторов и маркос такого натворит, что жуть.. Приходится отменять через стандартное Ctrl+Z, и если файл большой, то это грустно. Для таких случаев в макрос-диалоге (он как раз находится на экране) очень была бы кстати кнопка "Отменить", которая отменяла бы столько действий, сколько было "проиграно" плагином в последний запуск.
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Идея/предложение с предысторией.
Откроем окно скрипта, запишем макрос
F6 (переходим на окно скрипта) – Ctrl+Enter (что-то в этом окне запускаем) – F6 (переходим на редактор) – Ctrl+Home
Если скрипт что-нибудь «спросит» с помощью AkelPad.MessageBox(), выполнение макроса прервется.
Пример: converter.js#L1231
Можно взять любой большой текст и попробовать вызвать конвертирование в base64 – появится окно типа такого:
Не уверен, правда, что с этим надо что-то делать. С другой стороны, скрипт может выдать сообщение об ошибке вместо диалога, а мы его закроем и что-нибудь сломаем.
Ну, и отсюда идея: может, лучше записывать еще и класс окна (или еще что-нибудь, что не меняется) и посылать нажатия только если активно такое же окно, как и во время записи? Тогда, если что-то пошло не так, можно или уведомить пользователи, или даже спросить, нормально ли это (и продолжить после того, как сам пользователь закроет непредвиденное окошко).
Откроем окно скрипта, запишем макрос
F6 (переходим на окно скрипта) – Ctrl+Enter (что-то в этом окне запускаем) – F6 (переходим на редактор) – Ctrl+Home
Если скрипт что-нибудь «спросит» с помощью AkelPad.MessageBox(), выполнение макроса прервется.
Пример: converter.js#L1231
Можно взять любой большой текст и попробовать вызвать конвертирование в base64 – появится окно типа такого:
Если записать макрос с таким диалогом, то работает нормально.Converter.js :: Base64
---------------------------
Требуется времени: 0:06 (оценочно)
Продолжить?
---------------------------
ОК Отмена
Не уверен, правда, что с этим надо что-то делать. С другой стороны, скрипт может выдать сообщение об ошибке вместо диалога, а мы его закроем и что-нибудь сломаем.
Ну, и отсюда идея: может, лучше записывать еще и класс окна (или еще что-нибудь, что не меняется) и посылать нажатия только если активно такое же окно, как и во время записи? Тогда, если что-то пошло не так, можно или уведомить пользователи, или даже спросить, нормально ли это (и продолжить после того, как сам пользователь закроет непредвиденное окошко).