MacroLib — Far Macro Library

Здесь можно обсудить ваш любимый плагин.
User avatar
lordmuzer
Posts: 524
Joined: Mon 12 Nov, 2007 22:05
Location: Киев
Has thanked: 10 times
Contact:

Re: MacroLib — Far Macro Library

Post by lordmuzer »

Latest post of the previous page:

ну как бы, каждый раз проверять может и не нужно
только разве они и так не "проверяются" при запуске ? парсинг то выполняется, просто ошибки разбора не показываются
при "Update macroses" делается, ну и ладно, хватит )
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroLib — Far Macro Library

Post by John Doe »

Max Rusov wrote:Это трудно сделать, без поддержки со стороны FAR.
Ранее в теме уже предлагался обходной путь.
Плюс, давайте попробуем сформулировать что же тут требуется от фара, может не так и много.

Продолжение: Как вернуть в плагин результат работы макроса?
Last edited by John Doe on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Продолжение
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Re: MacroLib — Far Macro Library

Post by sToLp »

хочется иметь
User avatar
lordmuzer
Posts: 524
Joined: Mon 12 Nov, 2007 22:05
Location: Киев
Has thanked: 10 times
Contact:

Re: MacroLib — Far Macro Library

Post by lordmuzer »

а как назначить макрос на кнопку = ?
пробыл и удваивать и не удваивать, выдает "unknown key name" и вылетает
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: MacroLib — Far Macro Library

Post by Max Rusov »

У меня - работает.

Code: Select all

macro Bind="=" 
{{
  MsgBox("Ok");
}}
User avatar
lordmuzer
Posts: 524
Joined: Mon 12 Nov, 2007 22:05
Location: Киев
Has thanked: 10 times
Contact:

Re: MacroLib — Far Macro Library

Post by lordmuzer »

ой, прошу прощения, думал про одно писал о другом.
дело вот в чем:
фар при назначении макроса на "Shift+кнопка", кнопку записывает как тот символ, который печатается при нажатом Shift, а для ml нужно явно писать Shift+кнопка. что конечно лучше, так как позволяет назначить разные макросы на A, ShiftA и тп.
это меня и сбило с толку когда я пытался назначить макрос на двойную кавычку. а надо было просто писать Shift+одинарная кавычка
User avatar
lordmuzer
Posts: 524
Joined: Mon 12 Nov, 2007 22:05
Location: Киев
Has thanked: 10 times
Contact:

Re: MacroLib — Far Macro Library

Post by lordmuzer »

а подскажите кто то знающий такую штуку:
в писании написано примерно следующее:
При старте FAR компилирует последовательность "Sequence" во внутренний байткод. Если в процессе компиляции обнаружена ошибка, то макрос "отбрасывается".
ml же при каждом выполнении посылает текстовый макрос на компиляцию и выполнение фару.
на будущее хотело бы узнать, возможно ли что сложные макросы буду работать запускаться/работать медленнее и если да то насколько
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroLib — Far Macro Library

Post by John Doe »

lordmuzer
Очевидно что сама скорость работы макроса идентична в обоих случаях, ведь макрос предварительно скомпилирован.
Поэтому разница будет только за счёт времени компиляции.
А скорость компиляции практически мгновенна: ведь фар быстро запускается? А он ведь в это время компилирует ВСЕ ваши макросы!
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: MacroLib — Far Macro Library

Post by Max Rusov »

Если макрос запускается _очень_ часто, то некоторое замедление заметно. Я у себя в реестре оставил только макросы для плагина FastWheel. Если же макрос запускается просто по нажатию клавиши - то, думаю, на современных компьютерах разницу в скорости запуска заметить невооруженным взглядом не удастся. А скорость _исполнения_ должна быть одна и та же.
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: MacroLib — Far Macro Library

Post by Kerberos464 »

такая вот проблема:
есть макрос для EdtFind, назначены на F7 в редакторе прописаны в Macro Lib (из реестра уже удалены).
открываю текстовый файл, и в нём, допустим, хочу в конце каждой строки поставить "+", если в этой строке встречается точка (такая "сферическая задача в вакууме").
пытаюсь сделать это с помощью быстрой записи макроса (Ctrl+точка), макрос примерно такой: F7 . Enter End +
однако, клавиша F7 не записывается, т.к. не передаётся в фар (кушается плагином Macro Lib).
можно для макроса F7 поставить свойство EatOnRun=0, в данном случае это решит проблему, но в других - нет, например, в макросах на CtrlE/CtrlX для AltHistory, при установке EatOnRun=0 кнопка будет нажиматься дважды.

как решение вижу отключать все макросы, записанные в Macro Lib, если фар находится в режиме записи макроса (не знаю, возможно ли это).
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
User avatar
John Doe
Бюрократ
Posts: 12896
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 296 times

Re: MacroLib — Far Macro Library

Post by John Doe »

Попробуйте начать запись макроса с помощью Ctrl-Shift-. (т.н. "специальный режим")

Update:
Наверно не поможет, ведь в плагине используется хак (перехват ReadConsoleInput)...
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: MacroLib — Far Macro Library

Post by Kerberos464 »

нет, всё равно F7 из моего примера не попадает в макрос.
имхо, это только если сам Macro Lib как-то узнает о том, что началась запись макроса и временно отключит макросы.
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: MacroLib — Far Macro Library

Post by Max Rusov »

Да, это не поможет. Как вариант, перед началом записи макроса отключать обработку клавиатуры плагином.
Options->Process Hotkeys
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: MacroLib — Far Macro Library

Post by Kerberos464 »

странный глюк - после того, как захожу на подключённый коммуникатор плагином WM Explorer, перестают работать все макросы из Macro Lib.
всё приходит в норму токо после перезапуска фара.
win7 x64, far 2.0.1783 x64, macro lib 1.0.3, wm explorer 1.11.11.171

заодно узнал, что если с помощью PlugMenu выгрузить плагин Macro Lib, а потом попробовать его загрузить обратно, то фар валится без всяких сообщений.
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: MacroLib — Far Macro Library

Post by Max Rusov »

Ну, это одно из следствий хака, которым обрабатывается клавиатура. Если этим хаком пользуются > одного плагина, то их корректно можно выгрузить только в порядке обратном загрузке :(. Конкретно, я знаю, что MacroLib так конфликтует с Gadgets и, вроде, rcl2apps. В чем дело с WMExplorer - не знаю, надо смотреть.

Upd.

По поводу падения при загрузке - это, похоже, какой-то другой косяк. Посмотрю.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Re: MacroLib — Far Macro Library

Post by sToLp »

fibre wrote:если с помощью PlugMenu выгрузить плагин Macro Lib, а потом попробовать его загрузить обратно, то фар валится без всяких сообщений
Это наблюдается, если выгрузить-и-вновьЗагрузить плагин MacroLib с помощью меню плагина PlugMenu.
Но не "без всяких сообщений", а с сообщениями "PlugMenu" типа "External exeption C0000005 at 40F0E1C5".

Однако если для выгрузки-и-вновьЗагрузки плагина MacroLib использовать префиксы плагина PlugMenu - PlugUnload:/PlugLoad:, то Фар не валится (аналогично не валится он и при использовании соответствующих префиксов плагина FARCmds).
Конфликт же с плагином scrgadget и в таком случае наблюдается: scrgadget перестаёт работать.
Post Reply

Return to “Обсуждение плагинов”