Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 5)

Модерирует : gyra, Maz

Maz (15-01-2020 17:38): FAR Manager (часть 6)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
-- Макросы пакета навигацияПоПанелиВслепую.lua - навигация в панели 'слепым' способом
-- пальцами правой руки (по клавишам HUJMIK<O.[] и большим пальцем по Space) от базовой точки клавиатуры
-- работают при наличии в комстроке в качестве замыкающих символов двух пробельных
 
-- В данном наборе макросов применены только одиночные клавиши без модификаторов
 
-- Соcтавил citPiks. С учётом и с использованием:
-- идеи https://forum.farmanager.com/viewtopic.php?p=154710#p154710 ImBringingTaxicab,
-- метода двойного нажатия ключей https://forum.farmanager.com/viewtopic.php?p=139385#p139385 John Doe,
-- примера макроса листания двойным нажатием клавиш https://forum.farmanager.com/viewtopic.php?p=151729#p151729 sToLp,
-- скрипта key2Process.lua https://forum.farmanager.com/viewtopic.php?p=152518#p152518 IgorZ,
-- с благодарностью к поименованным и к другим лицам, в той или иной мере участвующим в развитии FAR.
 
local l = 45 -- ширина участка поля description в меню выбора макроса (при применении key2Process)
 
-- Большой палец / Right thumb:
 
Macro {
  description="Приступить к навигации по панели 'вслепую'"; -- description="Input on Command Line";
  area="Shell"; key="Space CtrlAltSpace"; key2="Большим пальцем по SPACE"; sortpriority=35; selected=true;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="90F97726-EDBF-4303-B8D4-721C80706C56";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  end;
  -- работа макроса в видимой панели и при двух замыкающих пробелах в комстроке
  action=function() far.Message("Можно производить навигацию в панели буквенными клавишами.","В конце комстроки есть 2 пробельных символа:") end; -- action=function() Keys("Space") Keys("CtrlShiftLeft") end;
  --far.Message("получаем: '"..string.sub(CmdLine.Value, -2).."'") -- проверка на 2 пробела в конце комстроки
  --After inserting two space characters at the end of the command line, you can navigate the panel with letter keys.
  --После вставки в конец комстроки двух знаков пробела можно делать навигацию по панели буквенными клавишами.
}
 
-- Указательный палец / Right index finger:
 
local maxDelay = 250 -- промежуток времени между двумя нажатиями пусковой клавиши (в миллисекундах)
--  двойное нажатие John Doe Wed 13 Jul 2016 19:50 http://forum.farmanager.com/viewtopic.php?p=139385#p139385
local t = 0
Macro {
description="Листать в панели &#8597; как PgDn/PgUp УКАЗАТЕЛЬНЫМ дважды по M/U (т.е. выше или ниже базовой позиции)";
-- description="Screenful down / up";
area="Shell"; priority = 100; key="Space M U"; id="69C6B2CD-E8CF-40F3-BD4B-8A6FDBE4984F";
condition=function() -- работа макроса в видимой панели при двух замыкающих пробелах в комстроке и двойном нажатии ключа
  local t1 = Far.UpTime
  local delay = t1-t
  t = t1
  return APanel.Visible and string.sub(CmdLine.Value, -2)=="  " and delay<maxDelay
end;
action=function()
  if akey(1,1):match('M') then Keys("PgDn") else Keys("PgUp") end; --or akey(1,1):match('Ь')
end;
}
Macro {
description="Листать в панели &#8597; как PgDn/PgUp УКАЗАТЕЛЬНЫМ дважды по M/U";
area="Shell"; priority = 45; key="Space M U"; id="C62210FB-04B8-45AC-A1BB-0BD4A1AA2615";
condition=function() -- работа макроса в видимой панели и при двух замыкающих пробелах в комстроке
  return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "
end;
action=function()
  far.Message("Макрос на двойное нажатие активируется только из панели.","ВНИМАНИЕ!")
end;
}
 
local maxDelay = 250 -- промежуток времени между двумя нажатиями пусковой клавиши (в миллисекундах)
--  двойное нажатие John Doe Wed 13 Jul 2016 19:50 http://forum.farmanager.com/viewtopic.php?p=139385#p139385
local t = 0
Macro {
description="Прыгать в панели &#8596; как Home/End УКАЗАТЕЛЬНЫМ дважды по H/J (т.е. левее базовой позиции или по базовой)";
--description="Go to the top/bottom position of the panel";
area="Shell"; priority = 100; key="Space H J"; id="87DDC3D5-D2EE-4C4E-933E-E2FDD10CE438";
condition=function() -- работа макроса в видимой панели при двух замыкающих пробелах в комстроке и двойном нажатии ключа
  local t1 = Far.UpTime
  local delay = t1-t
  t = t1
  return APanel.Visible and string.sub(CmdLine.Value, -2)=="  " and delay<maxDelay
end;
action=function()
  if akey(1,1):match('J') then Keys("End") else Keys("Home") end;
end;
}
Macro {
description="Прыгать в панели &#8596; как Home/End УКАЗАТЕЛЬНЫМ дважды по H/J";
--Go to the top/bottom position of the panel
area="Shell"; priority = 45; key="Space H J"; id="9DE2ADF2-68B3-49DE-A15A-54155E56CBA4";
condition=function() -- -- работа макроса в видимой панели и при двух замыкающих пробелах в комстроке
  return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "
end;
action=function()
  far.Message("Макрос на двойное нажатие активируется только из панели.","ВНИМАНИЕ!")
end;
}
 
Macro {
  description="Перейти на позицию левее -  Left"; -- description="Move Left";
  area="Shell"; key="Space H"; key2="Указательным влево - &H"; sortpriority=48;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="D8220DB4-DFA1-4B8E-B8ED-334ABD4D5B61";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке
  action=function() Keys('Left') end;
}
 
Macro {
  description="Перейти на позицию левее -  Left"; -- description="Move Left";
  area="Shell"; key="Space H"; key2="Указательным влево - &Р"; sortpriority=48;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="9D0279D8-405D-42F9-96F2-5157CD52264C";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке
  action=function() Keys('Left') end;
}
 
Macro {
  description="Перейти на позицию правее - Right"; -- description="Move Right";
  area="Shell"; key="Space J"; key2="Указательным на месте - &J"; sortpriority=44;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="5FB4CEC1-F2CB-43CC-85B6-B852920F7FB9";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке
  action=function() Keys('Right') end;
}
 
Macro {
  description="Перейти на позицию правее - Right"; -- description="Move Right";
  area="Shell"; key="Space J"; key2="Указательным на месте - &О"; sortpriority=44;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="844B548A-353F-419A-A868-069DA9FA481A";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке
  action=function() Keys('Right') end;
}
 
Macro {
  description="Перейти на позицию выше - Up"; -- description="Move Up";
  area="Shell"; key="Space U"; key2="Указательным вверх - &U"; sortpriority=40;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="ACEC6A4B-930A-4157-AE2A-22D0F0DB63B8";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке
  action=function() Keys('Up') end;
}
 
Macro {
  description="Перейти на позицию выше - Up"; -- description="Move Up";
  area="Shell"; key="Space U"; key2="Указательным вверх - &Г"; sortpriority=40;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="E3F07B2A-22C6-4BB4-9B6C-2876A0ADF310";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке
  action=function() Keys('Up') end;
}
 
Macro {
  description="Перейти на позицию ниже - Down"; -- description="Move Down";
  area="Shell"; key="Space M"; key2="Указательным вниз - &M"; sortpriority=36;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="74556224-9176-4595-993C-51586E844C92";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке
  action=function() Keys('Down') end;
}
 
Macro {
  description="Перейти на позицию ниже - Down"; -- description="Move Down";
  area="Shell"; key="Space M"; key2="Указательным вниз - &Ь"; sortpriority=36;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="272B4F4A-A6DF-4DA3-8BC9-95772C54FAAA";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке
  action=function() Keys('Down') end;
}
 
-- Средний палец / Middle finger of the right hand:
 
Macro {
  description="Пометить/снять пометку объекта - Ins"; -- description="Select/deselect file";
  area="Shell"; key="Space I"; key2="Средним вверх - &I"; sortpriority=34;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="28B96FBD-12EB-47C5-B8AE-532F2912C8F7";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке
  action=function() Keys('Ins') end;
}
 
Macro {
  description="Пометить/снять пометку объекта - Ins"; -- description="Select/deselect file";
  area="Shell"; key="Space I"; key2="Средним вверх - &Ш"; sortpriority=34;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="52279F42-5529-49E9-B340-E13A29776573";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке
  action=function() Keys('Ins') end;
}
 
Macro {
  description="Инвертировать пометку в панели - Multiply"; -- description="Changes the sorting order to be reversed";
  area="Shell"; key="Space K"; key2="Средним на месте - &K"; sortpriority=32;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="62867EF9-FCB8-4E91-BD3E-1083B73183F1";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке
  action=function() Keys('Multiply') end;
}
 
Macro {
  description="Инвертировать пометку в панели - Multiply"; -- description="Changes the sorting order to be reversed";
  area="Shell"; key="Space Л"; key2="Средним на месте - &Л"; sortpriority=32;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="77148A5F-1ABE-473D-A2A0-6D0FA271FB9C";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке
  action=function() Keys('Multiply') end;
}
 
Macro {
  description="Обратить пометку одного объекта"; -- description="Unmark one object";
  area="Shell"; key="Space ,"; key2="Средним вниз - &<"; sortpriority=28;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="4571333F-7F32-491E-BD58-B66A5EA1F096";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке
  action=function() Keys('Up Ins Up') end;
}
 
Macro {
  description="Обратить пометку одного объекта"; -- description="Unmark one object";
  area="Shell"; key="Space Б"; key2="Средним вниз - &Б"; sortpriority=28;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="9F0B961B-93DB-4F4C-AD97-92970CC23C3C";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке
  action=function() Keys('Up Ins Up') end;
}
 
-- Безымянный палец / Ring finger of the right hand:
 
Macro {
  description="Пометить элементы - Add"; -- description="Sets the sorting order to be direct";
  area="Shell"; key="Space O"; key2="Безымянным вверх - &O"; sortpriority=24;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="D70C86EC-FB11-4682-AE09-3B2CF3A995F7";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке
  action=function() Keys('Add') end;
}
 
Macro {
  description="Пометить элементы - Add"; -- description="Sets the sorting order to be direct";
  area="Shell"; key="Space O"; key2="Безымянным вверх - &Щ"; sortpriority=24;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="1B806E5D-9B8A-4E87-9449-8ED97B3BB544";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке
  action=function() Keys('Add') end;
}
 
Macro {
  description="Снять пометку с группы - Subtract"; -- description="Unmark a group";
  area="Shell"; key="Space ."; key2="Безымянным вниз - &>"; sortpriority=16;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="7979AF2F-BB21-497A-96ED-140EA928F285";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке
  action=function() Keys('Subtract') end;
}
 
Macro {
  description="Снять пометку с группы - Subtract"; -- description="Unmark a group";
  area="Shell"; key="Space ю"; key2="Безымянным вниз - &Ю"; sortpriority=16;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="5CC3EBD8-BB1D-409C-9A27-14EE43A605B3";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке
  action=function() Keys('Subtract') end;
}
 
-- Мизинец / Little finger of the right hand:
 
Macro {
  description="Прокрутка текущей позиции вверх"; -- description="scroll up";
  -- см. michaelang Sat 31 Aug 2019 05:42 https://forum.farmanager.com/viewtopic.php?p=154883#p154883
  area="Shell"; key="Space ["; key2="Мизинцем вверх вправо - &["; sortpriority=15;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="7F6FF4B7-5C70-44F2-BB30-30EF5A10142F";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке
  action=function() Keys('MsWheelDown Up') end;
}
 
Macro {
  description="Прокрутка текущей позиции вверх"; -- description="scroll up";
  -- см. michaelang Sat 31 Aug 2019 05:42 https://forum.farmanager.com/viewtopic.php?p=154883#p154883
  area="Shell"; key="Space ["; key2="Мизинцем вверх вправо - &Х"; sortpriority=15;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="CFA0760A-FAD7-4827-8573-C0C3D8BAF5C1";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке
  action=function() Keys('MsWheelDown Up') end;
}
 
Macro {
  description="Прокрутка текущей позиции вниз"; -- description="scroll down";
  -- см. michaelang Sat 31 Aug 2019 05:42 https://forum.farmanager.com/viewtopic.php?p=154883#p154883
  area="Shell"; key="Space ]"; key2="Мизинцем вверх ещё правее - &]"; sortpriority=14;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="6043A763-9AB3-4557-A999-87D39EFC80E4";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке
  action=function() Keys('MsWheelUp Down') end;
}
 
Macro {
  description="Прокрутка текущей позиции вниз"; -- description="scroll down";
  -- см. michaelang Sat 31 Aug 2019 05:42 https://forum.farmanager.com/viewtopic.php?p=154883#p154883
  area="Shell"; key="Space ]"; key2="Мизинцем вверх ещё правее - &Ъ"; sortpriority=14;
  flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="67D817B2-14E5-4518-8F09-E14975DCDFC5";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  "  and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке
  action=function() Keys('MsWheelUp Down') end;
}
 
-- Макрос-затычка / Gag macro:
 
Macro {
  description="Затычка для не используемых при слепой навигации кнопок";
  area="Shell"; flags="NotEmptyCommandLine"; id="B56858B9-25D7-4C7A-8713-E060BA3335FA";
  key="q w e r t y й ц у к е н a s d f g ф ы в а п z x c v b я ч с м и т l д p з ; ж ' э /";
  condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)=="  " end;
  action=function() end;
}
 

Всего записей: 373 | Зарегистр. 26-06-2016 | Отправлено: 22:21 27-09-2019 | Исправлено: citPiks, 22:23 27-09-2019
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 5)
Maz (15-01-2020 17:38): FAR Manager (часть 6)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru