Помогите написать макрос (скрипт) на Lua

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
zorinoleg
Posts: 10
Joined: Tue 23 Feb, 2010 10:37

Помогите написать макрос (скрипт) на Lua

Post by zorinoleg »

Нужны макросы на LUA для far3
1 при нажатии CtrlP выполнялась команда CtrlO ping 192.168.1.
2 при нажатии CtrlShiftF7 создание папки с именем = текущей дате 2013_05_10
3 при нажатии CtrlShiftR создание файла ShiftF4 readme.txt далее вставки текста из буфера обмена, и без выхода из текстового редактора
4 при нажатии Ctrl0 выполнялась команда cd d:\downloads enter
5 при нажатии Del нажимается F8
6 при нажатии CtrlC нажимается F11 /
  1. Macro
  2.  
  3. Area="Shell"
  4.  
  5. Key="CtrlP"
  6.  
  7. Description="Ping"
  8.  
  9. {{
  10.  
  11.   -- ctrlo p i n g space 1 9 2 . 1 6 8 . 1 .
  12.  
  13.   Keys("ctrlo p i n g space 1 9 2 . 1 6 8 . 1 .")
  14.  
  15. }}
  16.  
  17.  
  18.  
  19. ----------------------------------------------------------------------
  20.  
  21. Macro
  22.  
  23. Area="Shell"
  24.  
  25. Key="CtrlShiftF7"
  26.  
  27. Description="Создание папки текущей даты"
  28.  
  29. Condition="PanelType:0"
  30.  
  31. {{
  32.  
  33.   -- %Folder=date("%Y_%m0_%d"); $If (!panel.fexist(0,%Folder)) F7 $Text %Folder Enter $Else Panel.Setpos(0,%Folder) $End
  34.  
  35.   Keys("%Folder=date("%Y_%m0_%d"); $If (!panel.fexist(0,%Folder)) F7 $Text %Folder Enter $Else Panel.Setpos(0,%Folder) $End")
  36.  
  37. }}
  38.  
  39.  
  40.  
  41. --------------------------------------------------------------------
  42.  
  43. Macro
  44.  
  45. Area="Shell"
  46.  
  47. Key="CtrlShiftR"
  48.  
  49. {{
  50.  
  51.   -- $If (Apanel.Plugin) %N1=index(Far.Title,""); %N2=index(Far.Title,""); $If (%N1!=1 && %N2!=1) AltE $Exit $End $End ShiftF4 "readme.txt" Enter CtrlEnd ShiftIns CtrlU Enter
  52.  
  53.   Keys("$If (Apanel.Plugin) %N1=index(Far.Title,""); %N2=index(Far.Title,""); $If (%N1!=1 && %N2!=1) AltE $Exit $End $End ShiftF4 "readme.txt" Enter CtrlEnd ShiftIns CtrlU Enter")
  54.  
  55. }}
  56.  
  57.  
  58.  
  59. ---------------------------------------------------------------------------
  60.  
  61. Macro
  62.  
  63. Area="Shell"
  64.  
  65. Key="Ctrl0"
  66.  
  67. Description="cd d:\downloads"
  68.  
  69. {{
  70.  
  71.   -- c d space d : \ d o w n l o a d s enter
  72.  
  73.   Keys("c d space d : \ d o w n l o a d s enter")
  74.  
  75. }}
  76.  
  77. ------------------------------------------------------------------------
  78.  
  79. Macro
  80.  
  81. Area="Shell"
  82.  
  83. Key="Del"
  84.  
  85. Description="При нажатии Del удаляются файлы"
  86.  
  87. Condition="CmdLine:0"
  88.  
  89. {{
  90.  
  91.   -- F8
  92.  
  93.   Keys("F8")
  94.  
  95. }}
это конвертированные макросы из FAR2_0 но они требуют доработки

и еще один интересный макрос
  1. Macro
  2.  
  3. Area="Shell"
  4.  
  5. Key="Enter"
  6.  
  7. Description="Browse very long paths and invalid folder names"
  8.  
  9. Condition="PanelType:0 PanelItem:1 CmdLine:0"
  10.  
  11. {{
  12.  
  13.   -- $if (APanel.Current==".." && APanel.CurPos==1) %n=0; $else $if ((len(APanel.Path)+len(APanel.Current))>=259) %n=1; $else $if (substr(APanel.Current,len(APanel.Current)-1)==".") %n=1; $end $end $end $if (%n==1) F11 $if (Menu.Select("DeepBrowser")>0) Enter $else $if (Menu.Select("DeepBrowser",2)>0) Enter $else Esc $end $end $else $AKey $end
  14.  
  15.   Keys("$if (APanel.Current==".." && APanel.CurPos==1) %n=0; $else $if ((len(APanel.Path)+len(APanel.Current))>=259) %n=1; $else $if (substr(APanel.Current,len(APanel.Current)-1)==".") %n=1; $end $end $end $if (%n==1) F11 $if (Menu.Select("DeepBrowser")>0) Enter $else $if (Menu.Select("DeepBrowser",2)>0) Enter $else Esc $end $end $else Eval(Key(#AKey)) $end")
  16.  
  17. }}
Last edited by zorinoleg on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Уточнён заголовок Темы; [codebox]
User avatar
HaRT
Moderator
Posts: 10869
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

zorinoleg
Отредактируйте своё сообщение, используя тэги “
  1. ” и “[spoiler]” по необходимости.
  2.  
  3. Подсказка: и тот, и другой есть в панели инструментов при создании сообщения (по меньшей мере, [url=http://forum.farmanager.com/ucp.php?i=165]в теме[/url] «prosilver»).
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6840
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Помогите написать макрос на LUA

Post by Shmuel »

zorinoleg
Кое-что поправил, дальше вы сами. Не забудьте установить последний MacroLib.
mihmig
Posts: 15
Joined: Sun 30 Jan, 2011 08:28

Lua-макрос на клавишу F1

Post by mihmig »

Подскажите пожалуйста, можно ли повесить Lua-скрипт на клавишу F1 - да так чтоб если находимся в левой панели открывалось меню левой панели (как по Alt+F1) , для правой - соответственно правой (Alt+F2).
User avatar
HaRT
Moderator
Posts: 10869
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Lua-макрос на клавишу F1

Post by HaRT »

mihmig, штатными средствами записываете макрос [b]F9 Down Up Enter[/b] и назначаете его на [b]F1[/b].
Или Вам непременно надо туда ещё и Lua приплести?
Фар есть инструмент, а не нянька. © 2009 DrKnS
mihmig
Posts: 15
Joined: Sun 30 Jan, 2011 08:28

Помогите написать макрос (скрипт) на Lua

Post by mihmig »

HaRT, спасибо, конечно за совет.
Но я думал что через Lua есть возможность сделать это как-то "правильнее" что-ли, нежели чем через эмуляцию курсора (макрос может слететь при изменении состава меню).
Shmuel
Posts: 6840
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Помогите написать макрос (скрипт) на Lua

Post by Shmuel »

Code: Select all

Macro {
  description="Hello Drive Menu";
  area="Shell Info QView Tree"; key="F1";
  action=function()
    Keys(APanel.Left and "AltF1" or "AltF2")
  end;
}
mihmig
Posts: 15
Joined: Sun 30 Jan, 2011 08:28

Помогите написать макрос (скрипт) на Lua

Post by mihmig »

Shmuel,
Данный код выдаёт ошибку:
C:\master\far\Profile\Macros\internal\F1.lua:1: attempt to call global 'Macro' (a nil value)
В чём может быть дело?
mihmig
Posts: 15
Joined: Sun 30 Jan, 2011 08:28

Помогите написать макрос (скрипт) на Lua

Post by mihmig »

Хотя поместив скрипт в папку ..\scripts\ от ошибки избавился.
Post Reply

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