Page 2 of 5

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 21:58
by Shmuel

Latest post of the previous page:

Если вы хотите редактировать макросы для Фар3, то для начала перенесите этот файл из macros\internal в macros\scripts и замените его содержимое на:

Code: Select all

Macro {
  description="VHS 2 position";
  area="Editor"; key="ShiftF7";
  action=function()
    Keys("CtrlTab ShiftF6 CtrlC Esc Down CtrlTab CtrlV CtrlBS BS Space Add Space CtrlTab ShiftF6 CtrlC Esc CtrlTab CtrlV CtrlBS BS Home CtrlDel F7 Add Enter Home F7 Space Add Enter Right Right Right CtrlDel Home ShiftEnd CtrlC End Enter CtrlV Home F7 Space Add Enter CtrlDel CtrlDel ShiftEnd ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft CtrlX Home CtrlV Space Add Space Down Down Home")
  end;
}
Теперь отвечаю на ваш вопрос:

Code: Select all

Keys("последовательность клавиш")
mf.sleep(число)
Keys("последовательность клавиш")
Не знаю, понятно ли объяснил.

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 22:06
by RoxMarty
Shmuel wrote: Thu 08 Aug, 2019 21:58 Если вы хотите редактировать макросы для Фар3, то для начала перенесите этот файл из macros\internal в macros\scripts и замените его содержимое на:
Сделал так (хотя разницы в выполнении не заметил :) )
Shmuel wrote: Thu 08 Aug, 2019 21:58 Не знаю, понятно ли объяснил.
Можно показать живой пример, встроив этот "задерживающий" код куда-нибудь в мой код? Я на этом примере тогда пойму как оно работает. Или просто надо вписать внутрь моего кода дополнительный блок вида

Code: Select all

...Keys"(что-то)" код.задержки(миллисекунды) Keys"(что-то)"

Вставил так (фрагмент кода)

Code: Select all

Macro {
  description="VHS 2 position";
  area="Editor"; key="ShiftF7";
  action=function()
    Keys("CtrlTab ShiftF6 CtrlC Esc Down CtrlTab Keys("CtrlV") mf.sleep(10000) Keys("CtrlBS") BS Space...
  end;
}
При запуске FAR ошибка выдаётся

Code: Select all

...Profile\Macros\scripts\Editor_ShiftF7.lua:5: ')' expected near 'CtrlV'

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 22:15
by Shmuel
RoxMarty wrote: Thu 08 Aug, 2019 22:06 разницы в выполнении не заметил
Этот перенос не для разницы в исполнении, а для удобства редактирования, чтобы не надо было перед двойными кавычками ставить бэкслэш.
RoxMarty wrote: Thu 08 Aug, 2019 22:06 Можно показать живой пример
Вы разбиваете свою последовательность, которая представляет сейчас 1 вызов Keys() на несколько частей, каждая из которых - отдельный вызов Keys(). Между этими вызовами Keys() вставляете вызов mf.sleep().
Живой пример уже приводил, давайте ещё раз:

Code: Select all

Keys("A B C CtrlC")
mf.sleep(85)
Keys("A B C CtrlC")

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 22:21
by HaRT
RoxMarty, освойте уже какой-нибудь мини-курс наподобие «Основы програмирования на Луа для не-программистов».

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 22:30
by Shmuel
Вот пример прямо на вашем макросе, который я разрезал на 3 куска (разрезал в произвольных двух точках, а вы разрежете на другое число кусков, и не в произвольных точках, а там, где по-вашему нужно вставлять задержки):

Code: Select all

Macro {
  description="VHS 2 position";
  area="Editor"; key="ShiftF7";
  action=function()
    Keys("CtrlTab ShiftF6 CtrlC Esc Down CtrlTab CtrlV CtrlBS BS Space Add Space CtrlTab ShiftF6 CtrlC")
    mf.sleep(100)
    Keys("Esc CtrlTab CtrlV CtrlBS BS Home CtrlDel F7 Add Enter Home F7 Space Add Enter Right Right Right")
    mf.sleep(100)
    Keys("CtrlDel Home ShiftEnd CtrlC End Enter CtrlV Home F7 Space Add Enter CtrlDel CtrlDel ShiftEnd ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft ShiftLeft CtrlX Home CtrlV Space Add Space Down Down Home")
  end;
}

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 22:49
by zg
а только у меня Keys("Add") в редакторе вставляет нулевой символ? а так заменив в приведённом макросе Add на + — у меня всё работает ожидаемо.

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 23:10
by RoxMarty
Shmuel wrote: Thu 08 Aug, 2019 22:30 Вот пример прямо на вашем макросе
Благодарю! Теперь сразу стало понятно! Буду пробовать
HaRT wrote: Thu 08 Aug, 2019 22:21 освойте уже какой-нибудь мини-курс наподобие «Основы програмирования на Луа для не-программистов».
Ради того, чтоб просто узнать команду задержки в макросе, который записывается автоматически через ? #рукалицо (простите :) )

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 23:12
by zg
с учётом этого стоит попробовать перед Keys вставить mf.clip(5,2) — если поможет, проблема в улучшаторах клипборда. если нет, нужно больше информации, имена файлов, что ожидаете получить, что получили и т.д. всё как написано здесь. потому как у меня всё работает.

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 23:13
by HaRT
RoxMarty wrote: Thu 08 Aug, 2019 23:10 Ради того, чтоб просто узнать команду
Нет, ради того, чтобы не донимать неуместными вопросами уважаемых (и иногда слишком добродушных) читателей форума.

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 23:17
by HaRT
zg wrote: Thu 08 Aug, 2019 22:49 а только у меня Keys("Add") в редакторе вставляет нулевой символ? а так заменив в приведённом макросе Add на + — у меня всё работает ожидаемо.
Ответные сообщения @Shmuelя перенесены.

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 23:42
by DrKnS
Shmuel wrote: Thu 08 Aug, 2019 21:12 этот тест нередко завершается неудачей, если наряду с Фаром запущена некоторая аппликация с окном Rich Text
У меня, если я правильно помню, он завершался неудачей каждый раз, если до запуска теста в буфере лежало что-то нетекстовое.

Уменьшить скорость воспроизведения макроса

Posted: Thu 08 Aug, 2019 23:47
by RoxMarty
Shmuel, Спасибо ещё раз! Код задержки работает и вроде пока проблем не возникало (разок из десяти правда всё же, но это лучше, чем было!). Налепил везде куда только можно, где это связано с копипастой или вызовом меню поиска в редакторе



Интересно только, я думал, что задержка покажется визуально в каждый конкретный свой запуск (чтоб отловить точно где её необходимо выставить, а где она не нужна), но на деле отображается только конечный результат. На досуге попробую быть может поэкспериментировать
zg wrote: Thu 08 Aug, 2019 23:12 с учётом этого стоит попробовать перед Keys вставить mf.clip(5,2)
Попробовал подставить это значение в свой изначальный код (то есть без задержек вовсе) и... в 50 случаях из 50 всё идеально прошло!

Можно даже не отжимать хоткей теперь :)

Благодарю и за это!

P.S. В FAR 2 прописал (по аналогии с ранним примером к FAR 2) "clip(5,2)" перед первой командой секвенции и... теперь и тут всё решилось! Наверно сто строк отработало и ни сучка, ни задоринки

Уменьшить скорость воспроизведения макроса

Posted: Fri 09 Aug, 2019 01:30
by Shmuel
DrKnS wrote: Thu 08 Aug, 2019 23:42 У меня, если я правильно помню, он завершался неудачей каждый раз, если до запуска теста в буфере лежало что-то нетекстовое.
Сейчас ещё раз поигрался - там закономерность несколько сложнее (или просто иная).

Уменьшить скорость воспроизведения макроса

Posted: Fri 09 Aug, 2019 01:35
by Shmuel
RoxMarty wrote: Thu 08 Aug, 2019 23:47 я думал, что задержка покажется визуально в каждый конкретный свой запуск (чтоб отловить точно где её необходимо выставить, а где она не нужна), но на деле отображается только конечный результат.
Для визуализации вставьте флаг flags="EnableOutput";

Code: Select all

Macro {
  description="VHS 2 position";
  area="Editor"; key="ShiftF7";
  flags="EnableOutput";
  action=function()
    ......
  end;
}

Уменьшить скорость воспроизведения макроса

Posted: Fri 09 Aug, 2019 22:29
by Wave
DrKnS wrote: Thu 08 Aug, 2019 16:37
RoxMarty wrote: Thu 08 Aug, 2019 14:48тормознутости в сравнении со вторым
А можно примеры в студию?
Стартует очень заметно медленней. Несколько секунд против мгновенно. Не уверен, но вроде бы заходит в папки на многие тысячи файлов медленней. Хотя слишком разные условия для сравнения: другие группы раскраски файлов, всё другое.
А, ещё FAR3 памяти больше потребляет, хотя тоже то ещё сравнение: FAR3x64 против FAR2x86 и разный набор плагинов.
Ну и выход из FAR2 тоже заметно быстрее случается, чем из FAR3.

Уменьшить скорость воспроизведения макроса

Posted: Fri 09 Aug, 2019 23:01
by DrKnS
Wave wrote: Fri 09 Aug, 2019 22:29всё другое
Ну я даже не знаю, что тут комментировать, поэтому не буду.