gotar wrote: ↑Sat 25 Feb, 2023 15:29
У меня были мысли писать также far.MacroLoadAll("../Macros)
- Наверно, корректнее было бы написать
far.MacroLoadAll([[%FARPROFILE%\Macros]])
(если имеете ввиду стандартные).
- Тут ещё проблема (о которой я писал): нужно ли загружать макросы, если сменилась папка пассивной панели? А если просто произошёл переход на другую панель?
gotar wrote: ↑Sat 25 Feb, 2023 15:29
Проверте, мне кажется что far.MacroLoadAll всегда грузит стандартные макросы.
Проверялось неоднократно. Не грузит. Грузит клавиатурные макросы из
%FARPROFILE%\Macros\internal, а из
%FARPROFILE%\Macros\scripts не грузит. Надо его вставлять перед тем, откуда Вы хотите
дозагрузить макросы через
;
.
gotar wrote: ↑Sat 25 Feb, 2023 15:29
Можно ли безопасно напрямую вызывать far.MacroLoadAll из обработчика события смены каталога?
В этой теме опубликованы два скрипта, вешающие обработчик на событие. Замените в action (в
одном случае это - строка с
win.OutputDebugString
?, в
другом - строка с
far.Message
) на нужную Вам загрузку и попробуйте. Из моего опыта: судя по тому, что
far.Message
работает, будет работать и
far.MacroLoadAll
. Просто у меня есть чей-то макрос, перезагружающий макросы; так вот в нём после
far.MacroLoadAll
сделана задержка (
win.Sleep(200)
). Без этого
не работает!