Перенос макросов из прошлых версий фара в LuaMacro

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
ksandr1v
Posts: 10
Joined: Wed 10 Jul, 2013 10:02
Has thanked: 1 time

Аналог panel.setpos

Post by ksandr1v »

Latest post of the previous page:

Есть макрос в Far2

Code: Select all

!w [Найти текущий элемент на пассивной панели]
%fname = Panel.Item(0,0,0);
panel.setpos(1, %fname)
Пытаюсь переписать на lua. В энкциклопедии (luafar_manual.chm) не нашел аналога функции panel.setpos.

Как можно переписать этот макрос в Far3?

Вот что пока получилось:

Code: Select all

Macro {
   area="Shell"; key="w"; flags="EmptyCommandLine|DisableOutput";
   action=function()
      item = panel.GetCurrentPanelItem (nil, 1)
      fname = item["FileName"]
      panel.SetPos(1, fname)  -- Exception !!
   end;
}
Shmuel
Posts: 6167
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 330 times

Re: Аналог panel.setpos

Post by Shmuel »

ksandr1v wrote:Пытаюсь переписать на lua. В энкциклопедии (luafar_manual.chm) не нашел аналога функции panel.setpos.
Есть ещё macroapi_manual.chm.
Lua чувствителен к регистру: panel и Panel - это разные переменные.
Должно быть: Panel.SetPos.
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Перенос макросов из прошлых версий фара в LuaMacro

Post by AleXH »

M2L не конвертирует конструкцию $If() ... $End (замена rem)
tucker
Posts: 47
Joined: Tue 18 Jul, 2006 04:09
Location: 56

Re: Перенос макросов из прошлых версий фара в LuaMacro

Post by tucker »

Прошу помощи.
В результате обновления с 3.0.2798 x86 на 3.0.3746 x64 макросы работать перестали.


В 2798 выгрузил config.farconfig.
В 3746 установил плагин "Macro2Lua конвертер", но при запуске

Code: Select all

M2L: convert config.farconfig 1.lua
FAR молча закрывается, 1.lua не создается. С отдельной веткой <macros> и параметром xml_macros поведение аналогичное.

Конвертировать macros.db по теме Переезд макросов из macros.db в файлы, тоже не получается.
Так как "Нужно запустить его из Фара 2927-3000", а где хранятся столь старые версии FAR я не знаю.
Как добавить поддержку LUA в 2798 тоже не нашел.

Кроме как "создать LUA-макросы руками" есть другие варианты?
Shmuel
Posts: 6167
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 330 times

Re: Перенос макросов из прошлых версий фара в LuaMacro

Post by Shmuel »

tucker wrote:Прошу помощи.
[.....]
В 2798 выгрузил config.farconfig.
Пришлите мне его в личку, попробую помочь.
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

Re: Перенос макросов из прошлых версий фара в LuaMacro

Post by John Doe »

tucker wrote:Так как "Нужно запустить его из Фара 2927-3000", а где хранятся столь старые версии FAR я не знаю.
В параллельной теме недаво выкладывали билд 3000.
tucker
Posts: 47
Joined: Tue 18 Jul, 2006 04:09
Location: 56

Re: Перенос макросов из прошлых версий фара в LuaMacro

Post by tucker »

Спасибо за помощь!
jur
Posts: 33
Joined: Mon 02 Apr, 2012 07:00
Has thanked: 4 times

Помогите транслировать макрос для архивации

Post by jur »

Здравствуйте!

С вашей, форумчане, помощью породил простой макрос для архивации файлов.
Речь идет о Far-е 3.0.2579. Вызывается по ShiftF1 и делает следующие две вещи:

1. Если противоположная панель видна, то к имени файла архива, продложенному
плагином архивации, добавляет путь к этой папке. Если противоположная панель
выключена, то оставляет имя архива как есть.

2. "Нажимает" Alt+"f", т.е. включает фильтрацию файлов для архивации.

Далее я нажимаю "Enter" и получаю свой архив. Вот текст этого простого макроса
(он расположен в самом конце файла конфигурации):

Code: Select all

    <macros>
        <constants />
        <variables />
        <functions />
        <keymacros>
            <macro area="Shell" key="ShiftF1" flags="DisableOutput">
                <text>$if (PPanel.Visible) ShiftF1 Home CtrlShift] $else ShiftF1 $end AltF Enter</text>
            </macro>
        </keymacros>
    </macros>
По совету из сообщения о переносе макросов я попытался сконвертировать его
в новый формат и импортировать в новый Far (текущая версия 3.0.4190).
Вот сконвертированный текст макроса:

Code: Select all

    <macros>
        <constants />
        <variables />
        <functions />
        <keymacros>
            <macro area="Shell" key="ShiftF1" flags="DisableOutput">
                <text><![CDATA[ if  PPanel.Visible then  Keys("ShiftF1 Home CtrlShift]") else Keys("ShiftF1") end Keys("AltF Enter") ]]></text>
            </macro>
        </keymacros>
    </macros>
Но ничего не получается. Новый конфиг импортируется, про ошибки не говорит,
но если снова экспортировать конфигурацию, то в ней нет моего макроса.

Помогите, пожалуйста!
MPEG-4 - в массы!
Shmuel
Posts: 6167
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 330 times

Помогите транслировать макрос для архивации

Post by Shmuel »

Поместите этот код в файл с расширением lua, а сам файл - в папку %farprofile%\Macros\scripts. Перезапустите Фар.

Code: Select all

Macro {
  description="";
  area="Shell"; key="ShiftF1";
  action=function()
    if PPanel.Visible then Keys("ShiftF1 Home CtrlShift]")
    else Keys("ShiftF1")
    end
    Keys("AltF Enter")
  end;
}
jur
Posts: 33
Joined: Mon 02 Apr, 2012 07:00
Has thanked: 4 times

Перенос макросов из прошлых версий фара в LuaMacro

Post by jur »

Включение фильтра уже заработало, спасибо! Только
пришлось в строке с "if" убрать правую квадратную скобку.

Теперь хотелось бы также включить подстановку имени
каталога из противоположной панели, если она включена.
За это, вроде, ранее отвечала строка: "ShiftF1 Home CtrlShift",
но теперь этого действия не происходит. Я попробовал без
скрипта, руками нажать: Shift + F1, потом Home и Ctrl + Shift.
Путь из противоположной панели все-равно не подставляется.

Наверное нужно для этого применить какую-нибудь специальную
команду или последовательность нажатий клавиш?

P.S. Вообще-то я вижу, что было бы удобнее после нажатия
ShiftF1 сначала выполнить "AltF Enter", а затем каким-нибудь
образом вернуться в поле с именем файла и возможно сделать
подстановку пути из противоположной панели. Это возможно?
MPEG-4 - в массы!
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

Перенос макросов из прошлых версий фара в LuaMacro

Post by John Doe »

Подстановка имени это как раз CtrlShift]
Справка в фаре для кого писана?
jur wrote: Это возможно?
Возможно всё, но данная тема для этого обсуждения уже не подходит.
Не говоря уже о том, что решение вы можете и самостоятельно найти.
jur
Posts: 33
Joined: Mon 02 Apr, 2012 07:00
Has thanked: 4 times

Перенос макросов из прошлых версий фара в LuaMacro

Post by jur »

Точно! Заработало! Большое спасибо за помощь!

P.S. Прошу простить за ламерство, но я в этих вопросах совсем
не копенгаген... Про Lua только слышал, его изучение для меня
серьезная проблема. Еще раз спасибо!
MPEG-4 - в массы!
Shmuel
Posts: 6167
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 330 times

Перенос макросов из прошлых версий фара в LuaMacro

Post by Shmuel »

jur wrote: Про Lua только слышал, его изучение для меня
серьезная проблема
Для человека, уже знающего хотя бы один язык программирования, изучение основ Lua занимает не более одного дня.
(Естественно, имеется в виду только базовое овладение языком).
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

Перенос макросов из прошлых версий фара в LuaMacro

Post by John Doe »

С недавних пор при старте фара вижу ошибку:

Code: Select all

╔════════════════════════ Error ═════════════════════════╗
║                  Error loading plugin                  ║
║ C:\APPs\Far3\Profile\Plugins\macro2lua\macro2lua_e.dll ║
║            Не найдена указанная процедура.             ║
╟────────────────────────────────────────────────────────╢
║                         { OK }                         ║
╚════════════════════════════════════════════════════════╝
User avatar
abelenki
Posts: 462
Joined: Thu 02 Jul, 2009 07:39
Location: Perm, Russia
Has thanked: 139 times
Been thanked: 22 times
Contact:

Перенос макросов из прошлых версий фара в LuaMacro

Post by abelenki »

приветствую,

три года откладывал переход с Far2 на Far3. сегодня всё-таки решился. спасибо за подробный FAQ - бОльшую часть проблем с переходом удалось решить.

а простейшие клавиатурные макросы удалось сконвертировать в lua вручную.
Last edited by abelenki on Fri 19 Jun, 2015 16:57, edited 1 time in total.
Shmuel
Posts: 6167
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 330 times

Перенос макросов из прошлых версий фара в LuaMacro

Post by Shmuel »

Преобразовано плагином Macro2Lua, надеюсь разберётесь.
1.7z
(331 Bytes) Downloaded 101 times
Post Reply

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