Отменить действие макроса на клавишу

Здесь обсуждается всё, что касается макросов.
gotar
Posts: 420
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Отменить действие макроса на клавишу

Post by gotar »

Latest post of the previous page:

Code: Select all

local F = far.Flags
function AddMacro (srctable)
Id=far.MacroAdd(F.MACROAREA_COMMON, 0, srctable.key ,"srctable.action()", "Test AddMacro", scrctable.condition)
end

AddMacro{key="AltQ", action=function()
	  far.Message("hello, World!!"," Test Addmacro");
	  end,
	condition=nil
}
Может Вы сходу увидите где здесь ошибка? Строка макроса выполняется в правильном окружении(upvalues)?
Last edited by gotar on Sat 16 Mar, 2013 22:35, edited 2 times in total.
gotar
Posts: 420
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Отменить действие макроса на клавишу

Post by gotar »

вам непременно нужны те фичи, которых пока ещё нет.
Да вроде все есть, только я пользоваться не умею.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Отменить действие макроса на клавишу

Post by Shmuel »

gotar wrote:Может Вы сходу увидите где здесь ошибка?
1. Пользуйтесь тэгом "Code", следующий раз без него даже смотреть не буду.
2. Ошибка грубейшая в параметре SequenceText.
Пример этого параметра:

Code: Select all

[[ Keys("Esc") ]]
gotar
Posts: 420
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Отменить действие макроса на клавишу

Post by gotar »

А здесь в чем проблема?

Code: Select all

local F = far.Flags
var="abc"
Id=far.MacroAdd(F.MACROAREA_SHELL, 0, "AltQ" ,[[ far.Message(var) ]])
печатает nil вместо abc
Как из макроса добраться до переменных, определенных в файле? Какой setfenv поставить?
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Отменить действие макроса на клавишу

Post by Shmuel »

setfenv здесь не поможет.
Лучше расскажите, какова конечная цель. Чего надо добиться?
(Ответа сегодня уже не ждите).
gotar
Posts: 420
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Отменить действие макроса на клавишу

Post by gotar »

Я понимаю, что перед выполнением строки макроса все upvalues удаляются. Но может быть Вы подскажите как вернуть их обратно.
gotar
Posts: 420
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Отменить действие макроса на клавишу

Post by gotar »

Лучше расскажите, какова конечная цель
микроцель - научиться пользоваться far.MacroAdd. Мне не кажется что вызов из макроса функции, определенной в том же файле, что и вызов MacroAdd это какая-то экзотика.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Отменить действие макроса на клавишу

Post by Shmuel »

gotar wrote:микроцель - научиться пользоваться far.MacroAdd. Мне не кажется что вызов из макроса функции, определенной в том же файле, что и вызов MacroAdd это какая-то экзотика.
far.MacroAdd может ровно то, что сказано в документации, и не более того.
Post Reply

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