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

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

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

Post by John Doe » Sat 18 Jun, 2016 14:08

Latest post of the previous page:

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

Попробуйте с пустой папкой scripts, и пустым _macroinit.lua (подключив там только rebind).
Потом добавьте свои макросы, по одному.

saboteur
Posts: 22
Joined: Tue 19 Mar, 2013 14:32
Has thanked: 4 times

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

Post by saboteur » Wed 10 May, 2017 15:18

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

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

Чтобы можно было такое вызвать и из командной строки и из пользовательского меню.
Вроде бы обсуждений было множество, но непонятно на чем остановились, и в справке не нахожу.

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

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

Post by HaRT » Wed 10 May, 2017 15:50

saboteur wrote: хотелось бы что-то
lua:@my_personal_macro.lua
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

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

Post by Shmuel » Wed 10 May, 2017 15:57

saboteur wrote: каким образом можно запустить из командной строки макрос, который не назначен ни на какую клавишу.
Такие макросы могут быть запущены из макробраузера. Кроме того, если есть флаг RunAfterFARStart, то запустится при старте Far.
saboteur wrote: То есть хотелось бы что-то вроде lua:my_personal_macro.lua[/quote]Вы смешиваете понятия макрос и макрофайл. Один макрофайл может содержать много макросов.
Для запуска файла-скрипта есть синтаксис lua:@filename, описанный в мануале.

saboteur
Posts: 22
Joined: Tue 19 Mar, 2013 14:32
Has thanked: 4 times

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

Post by saboteur » Fri 12 May, 2017 16:02

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

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: 11421
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

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

Post by John Doe » Fri 12 May, 2017 20:05

Внутри файла (выполняемого таким образом) должен быть сразу код, без Macro, description, ...

saboteur
Posts: 22
Joined: Tue 19 Mar, 2013 14:32
Has thanked: 4 times

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

Post by saboteur » Mon 15 May, 2017 14:19

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: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 68 times
Been thanked: 107 times

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

Post by HaRT » Mon 15 May, 2017 14:29

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: 22
Joined: Tue 19 Mar, 2013 14:32
Has thanked: 4 times

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

Post by saboteur » Mon 15 May, 2017 14:37

Все получилось, спасибо!
Last edited by saboteur on Mon 15 May, 2017 14:38, edited 1 time in total.

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

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

Post by Shmuel » Mon 15 May, 2017 14:42

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

Post Reply

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