Организация макросов, пользовательские хоткеи, настройки, …

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Организация макросов, пользовательские хоткеи, настройки, …

Post by John Doe »

Latest post of the previous page:

gotar wrote: Ошибка в строчке debug.setupvalue (LoadMacros, iAddMacro, AddMacroNew)
Ошибка не здесь.
Это место, где подменяется функция Macro.

Попробуйте с пустой папкой scripts, и пустым _macroinit.lua (подключив там только rebind).
Потом добавьте свои макросы, по одному.
saboteur
Posts: 37
Joined: Tue 19 Mar, 2013 14:32
Has thanked: 8 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by saboteur »

Долго лазил по форуму, но так и не нашел, каким образом можно запустить из командной строки макрос, который не назначен ни на какую клавишу.

То есть хотелось бы что-то вроде
lua:my_personal_macro.lua
lua:c:/macros/another_macro.lua
(с поиском файла в стандартном месте в profile/macros/*, и с указанием полного пути к файлу)

Чтобы можно было такое вызвать и из командной строки и из пользовательского меню.
Вроде бы обсуждений было множество, но непонятно на чем остановились, и в справке не нахожу.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by HaRT »

saboteur wrote: хотелось бы что-то
lua:@my_personal_macro.lua
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by Shmuel »

saboteur wrote: каким образом можно запустить из командной строки макрос, который не назначен ни на какую клавишу.
Такие макросы могут быть запущены из макробраузера. Кроме того, если есть флаг RunAfterFARStart, то запустится при старте Far.
saboteur wrote: То есть хотелось бы что-то вроде lua:my_personal_macro.lua[/quote]Вы смешиваете понятия макрос и макрофайл. Один макрофайл может содержать много макросов.
Для запуска файла-скрипта есть синтаксис lua:@filename, описанный в мануале.
saboteur
Posts: 37
Joined: Tue 19 Mar, 2013 14:32
Has thanked: 8 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by saboteur »

Подскажите, что я делаю не так:

Code: Select all

myfile.lua
Macro {
  description="";
  area="Shell";
  flags="";
  code=".....(создать файл, ctrl+V, сохранить файл)..."
}
выполняю:
lua:@c:\...правильный путь к файлу..\myfile.lua

LuaMacro ошибка:
myfile.lua:1: attempt to call global 'Macro' (a nil value)
myfile.lua:in main chunk
Last edited by saboteur on Fri 12 May, 2017 16:04, 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:

Организация макросов, пользовательские хоткеи, настройки, …

Post by John Doe »

Внутри файла (выполняемого таким образом) должен быть сразу код, без Macro, description, ...
saboteur
Posts: 37
Joined: Tue 19 Mar, 2013 14:32
Has thanked: 8 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by saboteur »

John Doe wrote:Внутри файла (выполняемого таким образом) должен быть сразу код, без Macro, description, ...
Странно почему так - если я записал макрос последовательностью клавиш, то нужно его теперь дополнительно редактировать, чтобы позволить его запустить из командной строки?

Спасибо за совет - ошибку выдавать перестало, но незаметно, чтобы действие выполнялось..
Сейчас файл макроса выглядит так:
code="Keys(\"ShiftF4 t e m p . t x t Enter CtrlA CtrlV F2 Esc\")";

То есть просто открывает на редактирование temp.txt в текущем каталоге, выделяет текст, вставляет из буфера, сохраняет, выходит.

Файл не создается ;(
Если сделать нормальный макрос и выполнить его через нажатие хоткея - этот же код отлично работает.

Что у меня снова не так... (
Или последовательности клавиш не поддерживаются в отдельновыполняемых lua-макросах?

P.S. 3.0 build 4949 x64
Last edited by saboteur on Mon 15 May, 2017 14:22, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by HaRT »

saboteur wrote: Сейчас файл макроса выглядит так:
code="Keys(\"ShiftF4 t e m p . t x t Enter CtrlA CtrlV F2 Esc\")";
Вы не от того пляшете. Описание макроса — это специального вида скрипт на Луа. Луа-код, котороый можно выполнить из командной строки, — это произвольный скрипт, с макросами никак не связанный.
Ваш код просто присваивает значение переменной. Странно было бы ожидать, что это откроет какой-то файл. Лучше всего напишите честный код, котороый сделает нужное Вам действие, вызывая FAR macro API. Читайте “%FarHome%\Encyclopedia\*.chm”.
Фар есть инструмент, а не нянька. © 2009 DrKnS
saboteur
Posts: 37
Joined: Tue 19 Mar, 2013 14:32
Has thanked: 8 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by saboteur »

Все получилось, спасибо!
Last edited by saboteur on Mon 15 May, 2017 14:38, edited 1 time in total.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by Shmuel »

HaRT wrote: Луа-код, котороый можно выполнить из командной строки, — это произвольный скрипт, с макросами никак не связанный.
Небольшое уточнение:
При использовании префиксов lua: или moon:, код, исполняемый из комстроки, это всё-таки макрос, но "одноразовый" и безусловно исполняемый;
При использовании префиксов luas: или moons:, это не макрос, а просто немедленно исполняемый скрипт.
Post Reply

Return to “Обсуждение макросов”