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

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

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

Post by sToLp » Wed 02 Aug, 2017 21:47

Latest post of the previous page:

Shmuel wrote:
Wed 02 Aug, 2017 20:53
Если вызывать макрос "напрямую", например, ShiftF5, и в появившемся меню нажать Enter, то работает.
Если же вызвать одно из "предыдущих" меню, например, ShiftF4 и переходить к следующим двойными нажатиями RCtrl, то переходы осуществляются, но при нажатии Enter ничего, кроме закрытия меню не происходит.
Действительно. Похоже, что я таки поспешил. Если в "новом" меню нажать AltF4, то редактор открывается на нужном макрофайле. Но там банальная Keys"Akey". А ведь после перехода это уже не то... Буду думать сам и уповаю на Вашу помощь.

User avatar
sToLp
Posts: 764
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

Post by sToLp » Thu 03 Aug, 2017 04:31

Частично вопрос решён переделкой таблицы макросов, эмулирующих НАТИВНЫЕ (внутренние) команды Far.
В соответствующем посте код макроса и вложенный файл обновлены.
Last edited by sToLp on Tue 08 Aug, 2017 21:56, edited 1 time in total.

User avatar
sToLp
Posts: 764
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

Post by sToLp » Fri 04 Aug, 2017 22:23

В вышеприведённой комбинации групп макросов, эмулирующих нативные команды 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: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

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

Post by Shmuel » Sat 05 Aug, 2017 02:13

sToLp wrote:
Fri 04 Aug, 2017 22:23
Кстати по поводу пользовательских горячих клавиш в меню выбора макросов. Сейчас после их назначения пользователем порядковые номера/литеры таких пунктов затеняется, деактивируются. Но лично мне как пользователю было бы удобнее, чтобы они всё также оставались бы активными. Если это практически возможно.
Активными их можно было бы оставить (путём назначения на каждый из них AccelKey). Но выделяться другим цветом они при этом не будут. Реализация функции Menu в Фаре (как она есть на текущий момент) не позволяет подсветить более одного символа в тексте пункта.

User avatar
sToLp
Posts: 764
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

Post by sToLp » Sat 05 Aug, 2017 05:38

Shmuel

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

Добавлено: И поскольку, если будете вносить корректировку в форму меню "Исполнить макрос", посмотрите, пожалуйста, ещё насчёт вывода в заголовок указаний макрообласти, из которой вызвано меню, и вызвавшего его ключа. Хотелось бы воспользоваться этим уже при составлении данных макросов.
Last edited by sToLp on Sat 05 Aug, 2017 07:20, edited 1 time in total.

Shmuel
Posts: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

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

Post by Shmuel » Sat 05 Aug, 2017 07:36

sToLp, можете поместить виш на мантис.

User avatar
sToLp
Posts: 764
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

Post by sToLp » Sat 05 Aug, 2017 10:42

Shmuel wrote:
Sat 05 Aug, 2017 07:36
sToLp, можете поместить виш на мантис.
Спасибо!
0003464

User avatar
sToLp
Posts: 764
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

Post by sToLp » Sun 06 Aug, 2017 14:59

При анонсировании прототипа группы макросов, которые путём эмулирования отображают наличие или отсутствие нативных (внутренних) команд 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: 764
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

Post by sToLp » Sun 06 Aug, 2017 20:00

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

Attachments
{esc сбойнаяПараМакросов(sToLp)sheMen.lua
(1.31 KiB) Downloaded 11 times

Shmuel
Posts: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

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

Post by Shmuel » Sun 06 Aug, 2017 21:26

sToLp wrote:
Sun 06 Aug, 2017 20:00
При наличии в них флагов flags="NoPluginPanels EmptyCommandLine"; и непустой комстроке Far после их активации зависает
У вас там происходит зацикливание - из макроса запускается снова макрос, из того снова запускается макрос и т.д. Где-то у вас ошибка в логике этих макросов.
Попутно замечу, что аргумент Flags в функции far.Message указан не в соответствии с описанием данного параметра в документации.

User avatar
sToLp
Posts: 764
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

Post by sToLp » Mon 07 Aug, 2017 00:04

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

User avatar
sToLp
Posts: 764
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

Post by sToLp » Tue 08 Aug, 2017 21:33

Блок макросов, эмулирующих НАТИВНЫЕ команды 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 14 times
Last edited by sToLp on Thu 10 Aug, 2017 19:06, edited 2 times in total.

Shmuel
Posts: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

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

Post by Shmuel » Wed 09 Aug, 2017 06:26

Нажимаю ShiftEsc, появляется меню. Нажимаю дважды RCtrl или LCtrl - ничего не меняется.

User avatar
sToLp
Posts: 764
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

Post by sToLp » Wed 09 Aug, 2017 13:39

Shmuel,

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

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

Сам я попросился на чужую машину (правда, система та же — десятка x64, других пока у нас нет под руками) и установил на ней свежескачанную рубордовскую сборку FarUE3 от уважаемого Victor_VG. Затем убрал из "C:\Program Files (x86)\Far3\Far\Profile\Macros\scripts"\ все макросы и положил туда скачанный с моего предыдущего поста файл. Загрузил Far, вызвал макрос по ShiftEsc и убедился, что по двойным RCtrl и LCtrl переходы нормально работают.

Shmuel
Posts: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

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

Post by Shmuel » Wed 09 Aug, 2017 14:04

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

User avatar
sToLp
Posts: 764
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

Post by sToLp » Wed 09 Aug, 2017 19:08

Shmuel wrote:
Wed 09 Aug, 2017 14:04
Причина - некорректная работа, если в Фаре выбран английский язык интерфейса.
Очень благодарен Вам за помощь! Макросы обновлены.

User avatar
sToLp
Posts: 764
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 57 times
Been thanked: 5 times

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

Post by sToLp » Thu 10 Aug, 2017 19:19

Макросы в очередной раз обновлены.

Те два макроса из группы макросов, которые в предыдущих вариантах непосредственно обеспечивали переходы между меню "Исполнить макрос", теперь преобразованы в один. Это сделано для существенного облегчения последующего конструирования аналогичных макросов. Вероятно, данное обновление этого блока макросов завершающее.

Теперь это уже не прототипы, а один из тех блоков, из которых предполагается составить комплект макросов макрообласти Shell, индицирующих (демонстрирующих) нативные (внутренние) команды Far, а также ключи (хоткеи и шорткаты), на которые такие команды не назначены.

Post Reply

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