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

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

Latest post of the previous page:

Если вызывать макрос "напрямую", например, ShiftF5, и в появившемся меню нажать Enter, то работает.
Если же вызвать одно из "предыдущих" меню, например, ShiftF4 и переходить к следующим двойными нажатиями RCtrl, то переходы осуществляются, но при нажатии Enter ничего, кроме закрытия меню не происходит.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

Shmuel wrote: Wed 02 Aug, 2017 20:53Если вызывать макрос "напрямую", например, ShiftF5, и в появившемся меню нажать Enter, то работает.
Если же вызвать одно из "предыдущих" меню, например, ShiftF4 и переходить к следующим двойными нажатиями RCtrl, то переходы осуществляются, но при нажатии Enter ничего, кроме закрытия меню не происходит.
Действительно. Похоже, что я таки поспешил. Если в "новом" меню нажать AltF4, то редактор открывается на нужном макрофайле. Но там банальная Keys"Akey". А ведь после перехода это уже не то... Буду думать сам и уповаю на Вашу помощь.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

Частично вопрос решён переделкой таблицы макросов, эмулирующих НАТИВНЫЕ (внутренние) команды Far.
В соответствующем посте код макроса и вложенный файл обновлены.
Last edited by sToLp on Tue 08 Aug, 2017 21:56, edited 1 time in total.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

В вышеприведённой комбинации групп макросов, эмулирующих нативные команды Far, сделал следующие косметические изменения:

а) участки кода mf.print("lua:mf.postmacro(eval,") mf.print(replace) mf.print(",2)") заменил на print('"lua:mf.postmacro(eval,'..replace..',2)"') ;

б) макрос с ключом, не назначенным на внутреннюю команду, теперь при активации выдаёт сообщение об этом с возможностью возврата в меню;

в) теперь роль метки диапазона прокрутки меню вместо вычурной формы {esc{F12 исполняет хоткей &q.

В соответствующем посте код макросов и вложенный файл обновлены.

Кстати по поводу пользовательских горячих клавиш в меню выбора макросов. Сейчас после их назначения пользователем порядковые номера/литеры таких пунктов затеняется, деактивируются. Но лично мне как пользователю было бы удобнее, чтобы они всё также оставались бы активными. Если это практически возможно.
Last edited by sToLp on Tue 08 Aug, 2017 21:57, edited 1 time in total.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

sToLp wrote: Fri 04 Aug, 2017 22:23Кстати по поводу пользовательских горячих клавиш в меню выбора макросов. Сейчас после их назначения пользователем порядковые номера/литеры таких пунктов затеняется, деактивируются. Но лично мне как пользователю было бы удобнее, чтобы они всё также оставались бы активными. Если это практически возможно.
Активными их можно было бы оставить (путём назначения на каждый из них AccelKey). Но выделяться другим цветом они при этом не будут. Реализация функции Menu в Фаре (как она есть на текущий момент) не позволяет подсветить более одного символа в тексте пункта.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

Shmuel

А раз так, то не целесообразнее ли было бы порядковые обозначения пунктов не подсвечивать вовсе? И пусть бы они были постоянно активными. В Главном меню, например, множество вполне активных не подсвеченных хоткеев/шорткатов.

Добавлено: И поскольку, если будете вносить корректировку в форму меню "Исполнить макрос", посмотрите, пожалуйста, ещё насчёт вывода в заголовок указаний макрообласти, из которой вызвано меню, и вызвавшего его ключа. Хотелось бы воспользоваться этим уже при составлении данных макросов.
Last edited by sToLp on Sat 05 Aug, 2017 07:20, edited 1 time in total.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

sToLp, можете поместить виш на мантис.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

Shmuel wrote: Sat 05 Aug, 2017 07:36sToLp, можете поместить виш на мантис.
Спасибо!
0003464
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

При анонсировании прототипа группы макросов, которые путём эмулирования отображают наличие или отсутствие нативных (внутренних) команд Far, по поводу их возможного пересечения с другими макросами мною было сделано следующее предположение:
sToLp wrote: Wed 02 Aug, 2017 17:49По идее, их применение не должно бы препятствовать имеющимся уже у пользователя макросам.
Однако возможны случаи, когда пользователь переопределяет ключи внутренних команд для задействования других команд. Как пример тому, известные переназначения ключа F8. Команду "Удалить" коллеги запускают ключом Del, а на F8 навешивают запуск браузера.

И подобные ключи могут пересекаться с ключами группы макросов, индицирующих нативные команды Far.

Для сглаживания возможного неудобства предполагаю сделать следующее. Поле sortptiority в подготавливаемых мню макросах выстаить равным 10, а не 100 как пока что. И таким образом индицирующие макросы переместятся с первой позиции в меню на предпоследнюю, чтобы вывести наверх возможные макросы пользователя. А также, наверное, составляю дополнительный макрос.

Дополнительный вспомогательный макрос нужен для исключения воспрепятствования работе макроса пользователя, назначенного на ключ, задействованный также и в группе макросов, преднамеренно эмулирующих нативные команды. Предполагаю, что он будет активировать в меню 'Исполнить макрос' первую позицию. В расчёте на то, что она предположительно соответствует макросу, запускаемому ключом нативной команды, который переназначен пользователем под предусмотренную им команду.

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

Для составления допмакроса желательна реализация виша, ссылка на который приведена в предыдущем посте. Поэтому пока что подожду его реализации.

Добавлено: указанный виш реализован, и теперь, вероятно, дополнительный макрос не потребуется, т.к. новая, более совершенная, форма меню "Исполнить макрос" позволяет, кажется, обойтись и без него. Но посмотрим, что покажет практика.
Last edited by sToLp on Tue 08 Aug, 2017 21:40, edited 1 time in total.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

С ранее опубликованными макросами обнаружилась пока что совсем не понятная мне заноза. При наличии в них флагов flags="NoPluginPanels EmptyCommandLine"; и непустой комстроке Far после их активации зависает. Если флаги из макросов убрать, то макросы срабатывают нормально и зависания Far не случаются.

Attachments
{esc сбойнаяПараМакросов(sToLp)sheMen.lua
(1.31 KiB) Downloaded 103 times
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

sToLp wrote: Sun 06 Aug, 2017 20:00При наличии в них флагов flags="NoPluginPanels EmptyCommandLine"; и непустой комстроке Far после их активации зависает
У вас там происходит зацикливание - из макроса запускается снова макрос, из того снова запускается макрос и т.д. Где-то у вас ошибка в логике этих макросов.
Попутно замечу, что аргумент Flags в функции far.Message указан не в соответствии с описанием данного параметра в документации.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

Shmuel wrote: Sun 06 Aug, 2017 21:26У вас там происходит зацикливание - из макроса запускается снова макрос, из того снова запускается макрос и т.д. Где-то у вас ошибка в логике этих макросов.
Попутно замечу, что аргумент Flags в функции far.Message указан не в соответствии с описанием данного параметра в документации.
Благодарю Вас за подсказку!
Умозрительно оба момента осознал и убедился в том, что верно осознал, попробовав на черновом макросе.
Attachments
{esc теперьПараНеСбоит(sToLp)she.lua
(2.06 KiB) Downloaded 114 times
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

Блок макросов, эмулирующих НАТИВНЫЕ команды Far, назначенные на ключи линейки функциональных клавиш с модификатором Shift в области Shell в диапазоне ShiftEsc — ShiftF12.

Макросы составлены с учётом обновлённой формы заголовка меню:
╔══ Исполнить макрос: макрообласть | ключ ══╗.
(см. shmuel 07.08.2017 15:25:23 +0200 - build 611).



Теперь это уже не прототип, а один из тех блоков, из которых предполагается составить комплект макросов, индицирующих (демонстрирующих) нативные (внутренние) команды Far, а также ключи (хоткеи и шорткаты), на которые такие команды не назначены в макрообласти Shell.
Attachments
{esc-{F12_индикацияНативныхКомандFarВдиапазонеShiftEsc-ShiftF12(sToLp)sheMen.lua
(12.15 KiB) Downloaded 117 times
Last edited by sToLp on Thu 10 Aug, 2017 19:06, edited 2 times in total.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

Нажимаю ShiftEsc, появляется меню. Нажимаю дважды RCtrl или LCtrl - ничего не меняется.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

Shmuel,

Публикации макросов делаю в т.ч. чтобы, по возможности, оперативно выявлять и решать неожиданные проблемы с ними. Но в данном случае я пока ума не приложу в чём может быть причина того, о чём Вы сообщили.

А как с ShiftF3, например, или другим подобными ключами? Из вызываемых ими меню переходы осуществляются?

Сам я попросился на чужую машину (правда, система та же — десятка x64, других пока у нас нет под руками) и установил на ней свежескачанную рубордовскую сборку FarUE3 от уважаемого Victor_VG. Затем убрал из "C:\Program Files (x86)\Far3\Far\Profile\Macros\scripts"\ все макросы и положил туда скачанный с моего предыдущего поста файл. Загрузил Far, вызвал макрос по ShiftEsc и убедился, что по двойным RCtrl и LCtrl переходы нормально работают.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

sToLp wrote: Wed 09 Aug, 2017 13:39Но в данном случае я пока ума не приложу в чём может быть причина того, о чём Вы сообщили.
Причина - некорректная работа, если в Фаре выбран английский язык интерфейса.
Post Reply

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