MacroEx — запуск макросов нетрадиционными способами

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

MacroEx — запуск макросов нетрадиционными способами

Postby John Doe » Sun 20 Jul, 2014 00:42

Есть полезнейшая возможность в MacroLib — запуск макросов удержанием, двойным нажатием, и др.
Хорошо бы подобное и в родные макросы (тикет на мантисе есть).

А пока попробуем приблизится к решению задачи имеющимися средствами.

Предлагаю скрипт MacroEx, расширяющий возможности запуска макросов следующим образом:
  1. В имени клавиши через двоеточие теперь можно указывать дополнительные модификаторы Hold и Double:
    • key:Double — макрос будет выполнен при двукратном нажатии клавиши (в течении 300 мс, не отпуская клавиши-модификаторы)
    • key:Hold — макрос будет выполнен при удержании (>300 мс)
      Пример:
  2. Поддерживаются последовательности из двух нажатий, перечисленные через "-":
    • key-key2 — макрос будет выполнен при нажатии последовательности клавиш.
      Последовательность следует нажимать так: .
      Если вторая клавиша последовательности в течении секунды не будет нажата, то появится подсказка: из описаний возможных макросов.
      Пример:

    На один и тот же key можно назначить произвольное число макросов, конфликты разрешаются по правилам, принятым в LuaMacro.
    Макросы с модификаторами не лишают указанную комбинацию исходного значения: короткое нажатие выполнит исходное действие (или макрос, если назначен).

Ограничения:
  • В качестве key поддерживаются только комбинации клавиш с модификаторами Ctrl/Alt/Shift.

Установка: достаточно расположить прилагаемый macroEx.lua где-либо в scripts.
Attachments
macroEx-3.2.7z
(3.69 KiB) Downloaded 60 times

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

MacroEx — запуск макросов нетрадиционными способами

Postby John Doe » Wed 29 Jul, 2015 10:42

Latest post of the previous page:

lurii wrote:Source of the post К сожалению, работает все, кроме пробела.
Это особенность консоли, решаемо: XKeys — скрипт для замены одноимённого плагина
(впрочем, это может и не понадобиться, см. ниже)

lurii wrote:Source of the post MacroEx тоже выводить сообщение с подсказкой, но при этом необходимо постоянно удерживать клавишу Alt чтобы сработала 3-я клавиша и тянуться на другой край клавы не всегда получится.
Если в начале MacroEx.lua можно закомментировать строчку local break_sequence_on_mod_release = true, то можно будет не удерживать.

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

MacroEx — запуск макросов нетрадиционными способами

Postby John Doe » Tue 14 Jun, 2016 16:28

John Doe wrote:Source of the post Распознаётся удержание модификатора (Ctrl/Alt/Shift), а не самой клавиши.
К этому надо приноровиться, ведь чтобы нажатие сработало как одиночное — важно вовремя отпустить модификатор.
Этого ограничения в моей рабочей версии давно нет, честно проверяется удержание основной клавиши.

По скрипту было много разных мыслей, всё собирался доделать, но.. уже больше года не притрагивался.
Поэтому лучше выложу как есть.

Update: вложение изъято, поскольку обнаружены просто невероятные баги.

User avatar
HaRT
Moderator
Posts: 7953
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

MacroEx — запуск макросов нетрадиционными способами

Postby HaRT » Tue 14 Jun, 2016 16:47

John Doe wrote:Source of the post лучше выложу как есть
Спасибо, а что там ещё нового по сравнению с версией из шапки?
И кстати, отчего эту не в шапку?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

MacroEx — запуск макросов нетрадиционными способами

Postby John Doe » Tue 14 Jun, 2016 17:26

HaRT wrote:Source of the post Спасибо, а что там ещё нового по сравнению с версией из шапки?
Баги (в смысле правились)).
HaRT wrote:Source of the post И кстати, отчего эту не в шапку?
Если замечаний не будет.

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

MacroEx — запуск макросов нетрадиционными способами

Postby sToLp » Tue 14 Jun, 2016 19:52

John Doe
А не целесообразно ли сделать раздельно два макроса: один по пункту 1 (в части модификаторов Hold и Double), а второй по пункту 2 (в части последовательности из двух нажатий, перечисленных через "-") ? Чтобы заведомо исключить возможные конфликты с функцией плагина MacroLib, который в версиях 1.24 - 1.26 поддерживает использование в нативных lua-макросах модификаторов нажатий Release, Hold, Single, Double, Down, Up и Press.

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

MacroEx — запуск макросов нетрадиционными способами

Postby John Doe » Wed 15 Jun, 2016 09:02

sToLp wrote:Source of the post А не целесообразно ли сделать раздельно два макроса:
Нет, обе функции тесно связаны.
А расскажите что например вам удобнее делать через макролиб?

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

MacroEx — запуск макросов нетрадиционными способами

Postby sToLp » Wed 15 Jun, 2016 14:03

John Doe wrote:А расскажите что например вам удобнее делать через макролиб?
В части применения модификаторов хорошо прижились пары Release (быстрое нажатие) – Hold (удержание). В частности, по F1:Release вызываю нативную помощь по Фару, а по – расширенную путём вызова меню mf.usermenu(3,"F1.FarMenu.ini").
Аналогично на F2, F3, F4, AltF7 и что-то ещё. Привык уже к этому и представляется вполне удобным.

А также есть и ещё более двух десятков макросов на fmlua, некоторые из которых наверняка можно было бы и в lua перевести, да не хочется время тратить — MacroLib то добротно работает. А вот макрос Shell Bookmark, например, и в макролибовском формате отлично работает и вполне уживается с аналогичным по функционалу и дополняющим его макросом BookmarkManager, благодаря тому, что они разные. Первый удобно использовать для относительно длительных закладок в панелях, а второй — для оперативных.

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

MacroEx — запуск макросов нетрадиционными способами

Postby John Doe » Wed 15 Jun, 2016 15:28

sToLp wrote:Source of the post В частности, по F1:Release вызываю нативную помощь по Фару, а по F1:Hold – расширенную
Это есть в MacroEx, всё работает абсолютно так же (Release только не пишется).

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

MacroEx — запуск макросов нетрадиционными способами

Postby sToLp » Wed 15 Jun, 2016 18:25

John Doe wrote:
sToLp wrote:Source of the post В частности, по F1:Release вызываю нативную помощь по Фару, а по F1:Hold – расширенную
Это есть в MacroEx, всё работает абсолютно так же (Release только не пишется).
Спасибо, это хорошая весть на будущее.

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

MacroEx — запуск макросов нетрадиционными способами

Postby sToLp » Sat 18 Jun, 2016 09:37

John Doe wrote:По скрипту было много разных мыслей, всё собирался доделать, но.. уже больше года не притрагивался.
Поэтому лучше выложу как есть.

Attachments macroEx3.zip
При установке из архива макроса macroEx.lua при каждой перезагрузке макросов появляется сообщение:

Code: Select all

1│ дополнить
2│ дополнить
3│ дополнить
3 arguments
И оно, по видимому, двойное, поскольку убирается либо двумя кликами мышкой по нему, либо двумя Esc. Не могу догадаться как оно вызывается. Особенно удивляет то, что русские слова в нём воспроизводятся независимо от языковых установок в Фаре. :oops:

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

MacroEx — запуск макросов нетрадиционными способами

Postby John Doe » Sat 18 Jun, 2016 10:40

Строку 104 закомментируйте, там осталось отладочное сообщение (far.Show), для случаев когда не удаётся опознать клавишу.

P.S.
Сообщение не сильно удачное. Неплохо было бы увидеть что там у вас в поле key

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

MacroEx — запуск макросов нетрадиционными способами

Postby sToLp » Sat 18 Jun, 2016 10:59

John Doe wrote:Source of the post Неплохо было бы увидеть что там у вас в поле key
Как это можно было бы сделать? Макросы у меня перезагружаются по CtrlShiftR в панелях и по ShiftF12 в редакторе.

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

MacroEx — запуск макросов нетрадиционными способами

Postby John Doe » Sat 18 Jun, 2016 11:56

В поле key какого-то из ваших макросов встречается строка "дополнить-0", которую скрипт принимает за комбинацию, требующую обработки (и как по мне, то справедливо принимает).

Что делать:
1. Ничего, просто закомментировать в скрипте far.Show, чтоб не ругался
2. Или немного изменить текст key (например использовать длинное тире, или добавить пробел)
3. И я вообще не уверен, что нужно использовать так поле key, при наличии честного description.

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

MacroEx — запуск макросов нетрадиционными способами

Postby sToLp » Sat 18 Jun, 2016 12:19

John Doe wrote:В поле key какого-то из ваших макросов встречается строка "дополнить-0", которую скрипт принимает за комбинацию, требующую обработки (и как по мне, то справедливо принимает).
Фантастика! Действительно, в восьми макросах от марта 2013 года в полях key присутствуют: 'дополнить*0', 'дополнить*1', 'дополнить+0', 'дополнить+1', 'дополнить-0', 'дополнить-1', 'дополнитьСлеш0', 'дополнитьСлеш1'. И уж не помню целей того эксперимента. А вот до сих пор это работало. Просто поразительное стечение обстоятельств. Благодарю Вас за помощь! Самому мне было бы до такого ни за что не достичь — воображения бы не хватило о подобном подумать.

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

MacroEx — запуск макросов нетрадиционными способами

Postby John Doe » Sat 18 Jun, 2016 12:23

sToLp wrote:Source of the post А вот до сих пор это работало.
А чего б ему не работать.
Сейчас поле key необязательно, а когда-то надо было обязательно заполнять, иначе luamacro не загружал их.
(полезно для макросов, которые не предполагают запуск с клавиатуры, а запускаются например из MacroBrowser)

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

MacroEx — запуск макросов нетрадиционными способами

Postby John Doe » Sun 03 Jul, 2016 17:01

Довёл до ума и выложил в шапку новую версию

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

MacroEx — запуск макросов нетрадиционными способами

Postby sToLp » Mon 11 Jul, 2016 08:27

John Doe wrote:key:Double — макрос будет выполнен при двукратном нажатии клавиши (в течении 300 мс, не отпуская клавиши-модификаторы)
А нельзя ли сделать и по-другому — чтобы дважды жать именно на клавиши-модификаторы, а затем уже, отпустив их, жать один раз на "целевую" клавишу? Полагаю, что так пользователю удобнее было бы.


Return to “Полезные макросы и скрипты”

Who is online

Users browsing this forum: No registered users and 2 guests