Smitis wrote: Sun 17 Sep, 2017 16:22
CtrlEsc - открытие меню "Пуск"
CtrlShiftEsc - диспетчер задач
AltEsc, AltShiftEsc - переключение задач, но не совсем так, как AltTab
А что-то могли ещё добавить в десятке.
Да, они и срабатывают. До "голого" Far не доходят. Невзирая на XKeys. А вот ConEmu их как то перехватывает, но, увы, не вполне.
local cmds = {
Viewer = {
F1 = "Помощь - FAR\nПрограмма просмотра: клавиши управления",
F2 = "Перенос строк (включён, выключен)",
F3 = "Выход (NumPad5,F3,F10,Esc)",
},
--...
}
Macro {
area="Common"; key="CtrlAltShift. CtrlAltJ";
description="Справка о занятости клавиши / сочетания нативной командой Фара (sToLp по Capushon и zg) CtrlAltShift.";
action=function()
local oldstate = mf.flock(0,0)
local s = far.SaveScreen()
far.Message(" Нажмите клавишу / сочетание ... ","","")
local key = mf.waitkey()
far.RestoreScreen(s)
local area = Area.Current
local msg = cmds[area][key]
local title = area..": "..key
if msg then
local res = far.Message("вызывается внутренняя команда Far:\n\n"..msg,title,"Выполнить;Отменить")
if res==1 then
Keys(key)
end
else
far.Message("Данный ключ не привязан к внутренней команде Far",title)
end
mf.flock(0,oldstate)
end;
}
P.S.
Также хочу обратить ваше внимание, на существование аналогичного списка в поставке PowerShellFar: http://forum.farmanager.com/search.php? ... how-KeyMap
(Сейчас его в поставке нет, вероятно потому что автору надоело обновлять вручную)
Last edited by John Doe on Wed 27 Sep, 2017 08:32, edited 1 time in total.
sToLp wrote: Thu 14 Sep, 2017 21:34А этому посту прилагается блок макросов, эмулирующих НАТИВНЫЕ команды Far, назначенные на ключи сборного диапазона клавиш в макрообласти Shell: "Esc BS Ins Del Home End PgUp PgDn Enter Space Up Down Left Right", применяемые со штатными модификаторами и их сочетаниями.
if cmd==1 then Keys("AltShiftEsc") end if cmd==2 then mf.print('"lua:mf.postmacro(eval,"Shell/AltShiftEsc",2)"') Keys("Enter") exit() end end;};
Не уловил, для чего тут mf.print, lua:, mf.postmacro, и почему нельзя просто eval("Shell/AltShiftEsc",2)
И тоже рекомендую переписать, согласно предыдущего примера. Лучше включить туда же, воспользоваться имеющейся таблицей.
sToLp wrote: Thu 14 Sep, 2017 21:34С возможностью переходов по кругу вызываемых ими меню в группах данного диапазона, соответствующих модификаторам.
Этого по описанию не понял. Может проиллюстрируете?
John Doe wrote: Wed 27 Sep, 2017 08:19Лучше собрать все макросы в одном посте.
И даже в одном макросе.
Посмотрел код, и рекомендую переписать таким образом.
local cmds = {
Viewer = {
F1 = "Помощь - FAR\nПрограмма просмотра: клавиши управления",
F2 = "Перенос строк (включён, выключен)",
F3 = "Выход (NumPad5,F3,F10,Esc)",
},
--...
}
Macro {
area="Common"; key="CtrlAltShift. CtrlAltJ";
description="Справка о занятости клавиши / сочетания нативной командой Фара (sToLp по Capushon и zg) CtrlAltShift.";
action=function()
local oldstate = mf.flock(0,0)
local s = far.SaveScreen()
far.Message(" Нажмите клавишу / сочетание ... ","","")
local key = mf.waitkey()
far.RestoreScreen(s)
local area = Area.Current
local msg = cmds[area][key]
local title = area..": "..key
if msg then
local res = far.Message("вызывается внутренняя команда Far:\n\n"..msg,title,"Выполнить;Отменить")
if res==1 then
Keys(key)
end
else
far.Message("Данный ключ не привязан к внутренней команде Far",title)
end
mf.flock(0,oldstate)
end;
}
Большое спасибо за рекомендации! И особая Вам благодарность за оптимальный код!
Собрал Справку по клавишам, задействованным в панелях (макрообласть Shell), комстроке (Desktop), просмотрщике (Viewer), редакторе (Editor), "прочих меню" (Menu), диалогах (Dialog) и копировании текста с экрана (Grabber) в один файл.
Далее посмотрю что можно сделать по другим макрообластям.
Примечание:
Благодаря форме кода макроса, предложенной John Doe, прилагаемый файл можно использовать не только как макрос-справку, но и непосредственно как файл-справочник по нативным командам.