Индицировать привязку шортката к нативной команде Фара.

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Индицировать привязку шортката к нативной команде Фара.

Post by sToLp »

Latest post of the previous page:

Smitis wrote: Sun 17 Sep, 2017 16:22 CtrlEsc - открытие меню "Пуск"
CtrlShiftEsc - диспетчер задач
AltEsc, AltShiftEsc - переключение задач, но не совсем так, как AltTab
А что-то могли ещё добавить в десятке.
Да, они и срабатывают. До "голого" Far не доходят. Невзирая на XKeys. А вот ConEmu их как то перехватывает, но, увы, не вполне.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Индицировать привязку шортката к нативной команде Фара.

Post by John Doe »

sToLp wrote: Sun 17 Sep, 2017 16:03Если написать, что они не заняты, то получается, что их, якобы, можно применить в макросах. Может что посоветуете?
"Недоступны"
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Индицировать привязку шортката к нативной команде Фара.

Post by sToLp »

John Doe wrote: Sun 17 Sep, 2017 17:54
sToLp wrote: Sun 17 Sep, 2017 16:03Если написать, что они не заняты, то получается, что их, якобы, можно применить в макросах. Может что посоветуете?
"Недоступны"
Да, пожалуй, Вы правы. Получается, что именно недоступны для Far. Спасибо за подсказку.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Индицировать привязку шортката к нативной команде Фара.

Post by John Doe »

Лучше собрать все макросы в одном посте.
И даже в одном макросе.
Посмотрел код, и рекомендую переписать таким образом.

Code: Select all

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.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Индицировать привязку шортката к нативной команде Фара.

Post by John Doe »

sToLp wrote: Thu 14 Sep, 2017 21:34А этому посту прилагается блок макросов, эмулирующих НАТИВНЫЕ команды Far, назначенные на ключи сборного диапазона клавиш в макрообласти Shell: "Esc BS Ins Del Home End PgUp PgDn Enter Space Up Down Left Right", применяемые со штатными модификаторами и их сочетаниями.

Code: Select all

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С возможностью переходов по кругу вызываемых ими меню в группах данного диапазона, соответствующих модификаторам.
Этого по описанию не понял. Может проиллюстрируете?
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Индицировать привязку шортката к нативной команде Фара.

Post by sToLp »

Попытка иллюстрации переходов по кругу меню в группе одного диапазона, двойными нажатиями соответственно на правый и левый контролы.
Attachments
illustr.mp4.7z
(4.84 MiB) Downloaded 68 times
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Индицировать привязку шортката к нативной команде Фара.

Post by sToLp »

John Doe wrote: Wed 27 Sep, 2017 08:19Лучше собрать все макросы в одном посте.
И даже в одном макросе.
Посмотрел код, и рекомендую переписать таким образом.
Большое спасибо за рекомендации! И особая Вам благодарность за оптимальный код!

Собрал Справку по клавишам, задействованным в панелях (макрообласть Shell), комстроке (Desktop), просмотрщике (Viewer), редакторе (Editor), "прочих меню" (Menu), диалогах (Dialog) и копировании текста с экрана (Grabber) в один файл.
Далее посмотрю что можно сделать по другим макрообластям.

Примечание:
Благодаря форме кода макроса, предложенной John Doe, прилагаемый файл можно использовать не только как макрос-справку, но и непосредственно как файл-справочник по нативным командам.
Attachments
[({dot_[(J_справкаОзадействованииКлавишИихСочетанийНативнымиКомандамиFar(вНесколькихМакрообластях)[20171029](sToLpПоJD)she.lua
(161.7 KiB) Downloaded 172 times
Last edited by sToLp on Sun 29 Oct, 2017 20:20, edited 1 time in total.
Post Reply

Return to “Предложения и идеи”