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

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
Shmuel
Posts: 5896
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 217 times

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

Post by Shmuel » Thu 08 Aug, 2019 21:58

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("последовательность клавиш")
Не знаю, понятно ли объяснил.

RoxMarty
Posts: 50
Joined: Sat 08 Dec, 2012 18:50
Has thanked: 6 times
Been thanked: 1 time

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

Post by RoxMarty » Thu 08 Aug, 2019 22:06

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'
Last edited by RoxMarty on Thu 08 Aug, 2019 22:10, edited 1 time in total.

Shmuel
Posts: 5896
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 217 times

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

Post by Shmuel » Thu 08 Aug, 2019 22:15

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")

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

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

Post by HaRT » Thu 08 Aug, 2019 22:21

RoxMarty, освойте уже какой-нибудь мини-курс наподобие «Основы програмирования на Луа для не-программистов».
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5896
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 217 times

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

Post by Shmuel » Thu 08 Aug, 2019 22:30

Вот пример прямо на вашем макросе, который я разрезал на 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;
}

User avatar
zg
zero-gravity
Posts: 5610
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 100 times
Contact:

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

Post by zg » Thu 08 Aug, 2019 22:49

а только у меня Keys("Add") в редакторе вставляет нулевой символ? а так заменив в приведённом макросе Add на + — у меня всё работает ожидаемо.

RoxMarty
Posts: 50
Joined: Sat 08 Dec, 2012 18:50
Has thanked: 6 times
Been thanked: 1 time

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

Post by RoxMarty » Thu 08 Aug, 2019 23:10

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

User avatar
zg
zero-gravity
Posts: 5610
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 100 times
Contact:

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

Post by zg » Thu 08 Aug, 2019 23:12

с учётом этого стоит попробовать перед Keys вставить mf.clip(5,2) — если поможет, проблема в улучшаторах клипборда. если нет, нужно больше информации, имена файлов, что ожидаете получить, что получили и т.д. всё как написано здесь. потому как у меня всё работает.

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

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

Post by HaRT » Thu 08 Aug, 2019 23:13

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

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

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

Post by HaRT » Thu 08 Aug, 2019 23:17

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

User avatar
DrKnS
Posts: 5396
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 227 times

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

Post by DrKnS » Thu 08 Aug, 2019 23:42

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

RoxMarty
Posts: 50
Joined: Sat 08 Dec, 2012 18:50
Has thanked: 6 times
Been thanked: 1 time

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

Post by RoxMarty » Thu 08 Aug, 2019 23:47

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)" перед первой командой секвенции и... теперь и тут всё решилось! Наверно сто строк отработало и ни сучка, ни задоринки
Last edited by RoxMarty on Thu 08 Aug, 2019 23:58, edited 1 time in total.

Shmuel
Posts: 5896
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 217 times

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

Post by Shmuel » Fri 09 Aug, 2019 01:30

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

Shmuel
Posts: 5896
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 217 times

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

Post by Shmuel » Fri 09 Aug, 2019 01:35

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;
}

User avatar
Wave
Posts: 1770
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

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

Post by Wave » Fri 09 Aug, 2019 22:29

DrKnS wrote:
Thu 08 Aug, 2019 16:37
RoxMarty wrote:
Thu 08 Aug, 2019 14:48
тормознутости в сравнении со вторым
А можно примеры в студию?
Стартует очень заметно медленней. Несколько секунд против мгновенно. Не уверен, но вроде бы заходит в папки на многие тысячи файлов медленней. Хотя слишком разные условия для сравнения: другие группы раскраски файлов, всё другое.
А, ещё FAR3 памяти больше потребляет, хотя тоже то ещё сравнение: FAR3x64 против FAR2x86 и разный набор плагинов.
Ну и выход из FAR2 тоже заметно быстрее случается, чем из FAR3.
Last edited by Wave on Fri 09 Aug, 2019 22:35, edited 2 times in total.
Пользуюсь ФАРом больше 20 лет © собирательный.

User avatar
DrKnS
Posts: 5396
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 227 times

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

Post by DrKnS » Fri 09 Aug, 2019 23:01

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

RoxMarty
Posts: 50
Joined: Sat 08 Dec, 2012 18:50
Has thanked: 6 times
Been thanked: 1 time

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

Post by RoxMarty » Sat 10 Aug, 2019 01:34

Wave wrote:
Fri 09 Aug, 2019 22:29
Стартует очень заметно медленней
Да, это прям первое что бросается в глаза. Что мгновенная рабочая лошадка за не одно десятилетие вдруг превратилась будто бы в неповоротливого монстра (и это даже без плагинов дополнительных). Реально сложно описать двумя словами, чем именно лично меня он не устраивает (хотя честно давал ему несколько раз шанс стать основым FAR'ом, даже отказался от части нужных плагинов, но - увы). Пользуюсь тройкой только при необходимости: для юникода (хотя можно и через ConEmu, но там свои причуды и тоже не в пользу скорости работы...), да для плагина FarDroid. Пожалуй, всё... Жаль, что двойку забросили развивать, но и этого вполне достаточно

Post Reply

Return to “Нужна помощь”