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

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 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 69 times
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Latest post of the previous page:

Обновление:
  • Последовательности теперь указываются через знак - (минус), например CtrlK-B.
  • В качестве модификатора теперь поддерживается и Shift.
Всё в шапке.

Update: исправлена ошибка
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

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

Post by AleXH »

Напомню что в символы верхнего регистра в фаре фигурируют без Shift, это учитывается и поддерживается.
Удачная ли это мысль, учитывая, что в FAR принято иначе? Также возникает путаница: CtrlK-B это CtrlShift-k-b? Имхо лучше, когда Shift указывается явно.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Я плохо объяснил.
Без Shift могут быть только только простые клавиши, без Ctrl/Alt. Именно так принято в фаре. Т.е. в этом месте путаницы быть не может.

Удачная ли это мысль, я пока не решил, считайте что это эксперимент.
Возможно фичу оставлю, а описание уберу, чтобы не путало.
Имхо лучше, когда Shift указывается явно.
Да, но не бывает например Shift5.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Обновление:
  • Исправлена ошибка, модификатор Double не работал с лево/правосторонними комбинациями
В шапке.

P.S.
Только что выложенный Macro Browser alt. r1.3 использует такие комбинации, рекомендую обновиться.
User avatar
LanKing
Posts: 180
Joined: Thu 31 Aug, 2006 20:39
Been thanked: 2 times

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

Post by LanKing »

Ctrl/:Double не работает.

Примечание модератора: http://bugs.farmanager.com/view.php?id=2899
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

turbo — работа с выделением в редакторе

Post by HaRT »

Некрасивость: при (быстром) нажатии незадействованной комбинации (например, CtrlK-O) происходит срабатывание CtrlK, но в строке статуса при этом остаётся висеть сообщение CtrlO. Хотелось бы, чтобы ни того, ни другого не происходило, а вместо всего этого кратковременно (например, там же в строке статуса) выводилось сообщение, что вызвана незадействованная (unassigned) комбинация.
Кстати, конкретно на CtrlK-O (чтобы как в Студии) я собираюсь повесить переход к парному файлу (только пока не сконвертировал на Луа).
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

HaRT wrote: при (быстром) нажатии незадействованной комбинации (например, CtrlK-O) происходит срабатывание CtrlK
Не должно быть срабатывания, и в моей рабочей версии MacroEx его и нет (как и сообщения CtrlO).
HaRT wrote: сообщение, что вызвана незадействованная (unassigned) комбинация.
Запишу себе.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

John Doe wrote: в моей рабочей версии MacroEx его и нет
Планируете ли её опубликовать?
John Doe wrote: Запишу себе.
Спасибо.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

HaRT wrote: Планируете ли её опубликовать?
В текущем виде не хотелось бы (и не знаю буду ли заниматься в ближайшее время).
Но если реально мешают какие-нибудь баги...
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

John Doe wrote: если реально мешают какие-нибудь баги...
Я вот только сегодня столкнулся то ли с конфликтом между Turbo (выделение строки) и Editor_SmartHomeEnd от SimSU (выделение до начала/конца строки), то ли с ошибкой в одном из них. Пока не разбирался. Как разберусь, отпишусь в соответствующей теме.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

HaRT wrote: чтобы была возможность вставить разделители с текстом
John Doe wrote: разделитель будет свойством пункта, перед которым должен появиться
John Doe wrote:
HaRT wrote: А как-нибудь более самостоятельно?
Предлагайте.
Как я понимаю, подсказку MacroEx компонует, собирая в подходящих областях (например, Editor, Common) макросы, у которых начало аккорда совпадает с уже нажатым кнопкосочетанием (скажем, CtrlQ), а дальше идёт дефис. Это так?
Если да, то разделителями можно было бы считать те макросы, у которых этим дефисом аккорд и заканчивается (т.е. CtrlQ-), — тогда и с принадлежностью к семейству макросов вопросов не возникнет, и спокойно можно вставить в общую последовательность.
Реально?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Этих псевдо-макросы представляются мне некрасивой и избыточной конструкцией.
Чтобы luamacro их загрузил обязательно должно быть задано поле action.
Плюс эти макросы-разделители будут видны и в MacroBrowser (скорее всего совершенно не в том порядке, как вам хотелось бы)

Стоит оно того?
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

John Doe wrote: Стоит оно того?
Для меня — да. Чтобы угодить и тем, кому нет, можно добавить опцию.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Так используйте, если устраивает. Должно работать и сейчас.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Задача из темы http://forum.farmanager.com/viewtopic.p ... 07#p131607 с помощью MacroEx решается например так:

Code: Select all

local Symbols = {
  q="«",
  w="»",
  Space=" ",
  [","]="<",
  ["."]=">",
  ["'"]=""",
  ["7"]="&",
  r="&reg;",
  t="&trade;",
  c="&copy;",
}
local hk = "AltS"
local descr = "Web editor:"
local keys = ""
for key,str in pairs(Symbols) do
  Macro { description=("%5s: %s "):format(key,str);
    area="Editor"; key=hk.."-"..key;
    action=function()
      print(str)
    end;
  }
end
lurii
Posts: 13
Joined: Fri 25 Nov, 2011 11:54
Been thanked: 1 time

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

Post by lurii »

John Doe wrote: Задача из темы lurii @ Пользовательское меню в редакторе с помощью MacroEx решается так:
К сожалению, работает все, кроме пробела.
Сочетание AltS+Пробел вызывает появление виндовой менюшки far как буд-то кликнули мышкой по иконке окна слева вверху.
(Восстановить, Переместить, Размер, Свернуть, Развернуть ...)
Post Reply

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