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

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

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

Post by John Doe »

Есть полезнейшая возможность в 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.1.7z
(4.9 KiB) Downloaded 59 times
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Latest post of the previous page:

sToLp wrote: независимый от нативного "однораза".
Не знаю о каком одноразе речь, ведь сам фар не различает такие комбинации для макросов.
sToLp wrote: А вот это для моего уха звучит как-то совершенно загадочно.
Это значит что если (например) будет предоставлена возможность назначить макрос на "Ctrl+Alt", то несложно добавить в макрос на Alt дополнительный condition с проверкой нажат ли Ctrl.
В общем пробовать надо.

P.S.: раз эти макросы на отпускание срабатывают, значит Ctrl (например) должен продолжать удерживаться и при отпускании..
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

John Doe wrote:ведь сам фар не различает такие комбинации для макросов.
в смысле?
Image
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Я о комбинациях одних только модификаторов, тех что вызывают макросы при отпускании.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

John Doe wrote: Это значит что если (например) будет предоставлена возможность назначить макрос на "Ctrl+Alt", то несложно добавить в макрос на Alt дополнительный condition с проверкой нажат ли Ctrl.
В общем пробовать надо.
Попробовал.
Ничего не выйдет, т.к. фар сейчас не запускает макрос на Alt при нажатом Ctrl.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

John Doe wrote: фар сейчас не запускает макрос на Alt при нажатом Ctrl
Поупражнявшись с макросами, назначенными на двойное нажатие на Ctrl, Alt и Shift , убедился в удобстве этой возможности. Поэтому весьма желательно, чтобы макросы и на двойное нажатие на CtrlAlt, CtrlShift и AltShift тоже появились бы.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

sToLp wrote: Поэтому весьма желательно,
Увы.
Прямой возможности никогда не было.
Обходная была, но убрали.

На мантисе есть http://bugs.farmanager.com/view.php?id=2857

Продолжение: http://forum.farmanager.com/viewtopic.p ... 42#p139642
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Версия 3.2 в шапке
  • Поддержка комбинаций из нескольких модификаторов, например CtrlAlt:Double.
    Также работают и последовательности, например CtrlAlt-F8, CtrlF8-Alt.
    CtrlAlt:Hold тут в принципе смысла не имеет, поскольку с модификаторами событие происходит при отпускании.
    Но даже Hold сейчас работает, хоть и со спецификой: нажимать надо дважды, как Double, но в конце клавишу не отпускать, а продолжать удерживать.
  • Поддержка ScriptsBrowser.
    Помимо прочего, некоторые параметры (бывшие ранее константами в коде) сейчас доступны для изменения:
    Изменения могут применяться немедленно (временно), или оставаться постоянно, при использовании пользовательских настроек в scriptcfg
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

John Doe, правильно ли я понимаю, что этот скрипт не поддерживает ключи, описанные регэкспами?

Пример (из Вашего ме скрипта Ctrl-K-blocks.lua):
key="CtrlK-1 CtrlK-2 CtrlK-3 CtrlK-4 CtrlK-5 CtrlK-6 CtrlK-7 CtrlK-8 CtrlK-9 CtrlK-0";
Я попробовал заменить на
key="/[LR]CtrlK-[0-9]/";
а также на
key="/[LR]CtrlK-\d/";
Не работает... :-(
Вставка "%" и "\" перед дефисом положения не исправляет...
Кстати, в этом описании регэкспы имеются в виду в стандарте lua (escape-символ - %) или в стандарте PCRE (escape-символ - \)?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

buniak_a_h wrote: Fri 27 Apr, 2018 02:10 правильно ли я понимаю, что этот скрипт не поддерживает ключи, описанные регэкспами?
Вероятно, мне этого не требовалось.
buniak_a_h wrote: Fri 27 Apr, 2018 02:10 Кстати, в этом описании регэкспы имеются в виду в стандарте lua (escape-символ - %) или в стандарте PCRE (escape-символ - \)?
PCRE (почти).
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

В свете обострившейся борьбы за чистоту ГУИДов,
на всякий случай доношу до сведения общественности,
что у @JD строчка номер 127 в macroEx.lua имеет явно неприличный вид:

Code: Select all

    area="Common"; key=mkey; uid=mkey; FileName=FileName;
Last edited by citRiks on Thu 10 Sep, 2020 23:02, edited 1 time in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

John Doe, a что означает эта закоментированная строчка?

Code: Select all

--local is_mod       = k.mod[area] or k.mod.common --todo extramod
понятно что это "туду", но непонятен замысел автора.
Спрашиваю потому что рассматриваю возможность расширить ваш этот замечательный скрипт

уже причесал его, потому что мне казалось (воможно ошибочно) что подглючивает,
в принципе почти во всем разобрался
добавил в descriptions эстетики,
теперь будет например MacroEx handler for "LCtrlF4",
вместо MacroEx handler for "lctrlf4"

https://github.com/dr-dba/far-lua-key-efficiency
Last edited by citRiks on Sat 01 May, 2021 13:41, edited 3 times in total.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

citRiks wrote: Tue 29 Dec, 2020 16:22 a что означает эта закоментированная строчка?
С большой долей вероятности речь об использовать нестандартных модификаторов. Точнее сейчас не скажу.
citRiks wrote: Tue 29 Dec, 2020 16:22 что подглючивает,
Не должно подглючивать.
Искать разницу между вашим и моим кодом времени нет. Если хотите предметного обсуждения, то выложите на гитхабе: исходный код, и ваши изменения осмысленными коммитами.
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

John Doe,
Вот оно
https://github.com/dr-dba/far-lua-key-efficiency/
Предметное обсуждение это хорошо,
а цель это сделать ФАР Great Again юзабельным

изменения не коснулись вашей логики, как я ее понимаю,
только рефакторинг с целью читаемости и неизбыточности кода.
например - имена переменных k, a, b, c - это жестко :)
и в остальном код приведен в более читаемый вид.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

citRiks wrote: Sun 03 Jan, 2021 08:24Вот оно
Нет, это не оно. Перечитайте.
John Doe wrote: Wed 30 Dec, 2020 09:19 имена переменных k, a, b, c - это жестко
В локальном и простом цикле считаю вполне допустимым идиоматические имена типа k,v.

А предметно мне сейчас сложно прокомментировать, не ожидаете же вы что я построчно буду сравнивать, ещё и с телефона
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

John Doe wrote: Sun 03 Jan, 2021 09:35 В локальном и простом цикле считаю вполне допустимым идиоматические имена типа k,v.
ну не буду спорить :) замечу лишь что в Eclipse Lua Development IDE слава богам позволяет делать корректные переименования переменным.
John Doe wrote: Sun 03 Jan, 2021 09:35 Нет, это не оно. Перечитайте.
я понимаю что комментариев не хватает?
Хорошо, допишу со временем.
А вы собсно хотите довоплотить какие-то features в этот скрипт?
Так-то я не жалуюсь, у меня работает неожиданно как ожидаемо.
у меня из идей - только доделать сочетания из трех нажатий например.
возможно перенести Вимовские кей биндинги?
На всякий случай еще раз упомяну что структурно программа осталось той же,
лишь рефакторинг и переименования ("а" и "c" в "alt" "ctrl" например)

PS
изменения касаются еще замены пробелов на табуляции,
и переносы строки мне удобоваримы как правило совсем в других местах чем как выы предпочитаете,
поэтому если сравнивать гитхабовским ДИФФ-ом, то наверное получится полный бардак.
Но при этом основная структура и логика не изменены.
Может я просто коментарии напишу без ссылок и реверансов на ваш исходный код?
Last edited by citRiks on Sun 03 Jan, 2021 13:56, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

citRiks wrote: Sun 03 Jan, 2021 13:53 я понимаю что комментариев не хватает?
Не понимаете.
Работа в любой системе версионирования начинается с того, что загружается исходный текст (в неизменном виде), после чего поэтапно вносятся изменения, отдельными коммитами, объединяющими связанные правки.
Каждый коммит содержит сообщение, в котором описана цель правок.
citRiks wrote: Sun 03 Jan, 2021 13:53 поэтому если сравнивать гитхабовским ДИФФ-ом, то наверное получится полный бардак.
Если изменения вносить поэтапно, то всё будет чётко и наглядно.
citRiks wrote: Sun 03 Jan, 2021 13:53 Может я просто коментарии напишу без ссылок и реверансов на ваш исходный код?
Дело ваше: я не прошу ничего делать, а лишь объясняю в каком виде принято обсуждать изменения.
https://t.me/FarManager — Telegram чат
Post Reply

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