Ru-Board.club
← Вернуться в раздел «Программы»

» Far Manager

Автор: VictorVG4
Дата сообщения: 31.07.2016 14:40
abelenki2

Собрал, просто сил проверить не было...

Добавлено:
Забирайте -latest и х64, а я на некоторое время испаряюсь.

Добавлено:
FarUE3 x86 вдогонку. Все как просили b4747 r14352.
Автор: abelenki2
Дата сообщения: 31.07.2016 15:55
VictorVG4, спасибо!
Автор: VictorVG4
Дата сообщения: 31.07.2016 16:25
abelenki2

Не за что. Я вот тут ещё одну свежую байку увидел и не понимаю за каким чёртом надо было её придумывать? Стать очередным посмешищем?
Автор: uncleShi_v2
Дата сообщения: 31.07.2016 18:07


Цитата:
пост - abelenki2 от - 05:28 31-07-2016
а то farmanager.com более не существует.

насовсем?
Автор: VictorVG4
Дата сообщения: 31.07.2016 18:27
uncleShi_v2

Думаю просто работы идут. На том же sourcefoge.net это штатное явление после отказа массива SSD примерно год назад. Не вижу оснований для паники.
Автор: Skifoff2
Дата сообщения: 31.07.2016 19:44
Проясните, пожалуйста, о чём речь? У меня скриптов немного, нужно поправить самому или Far/плагин сделает что нужно?
Автор: bahtey
Дата сообщения: 31.07.2016 19:56
FAR v 2 b1807 x64
Как бы заставить видеть портативные устройства, подключенные к ПК?
Может плагин? (сайт Код ошибки 118 (net::ERR_CONNECTION_TIMED_OUT))
Автор: VictorVG4
Дата сообщения: 31.07.2016 19:58
Skifoff2

В LuaMacro b580 для макросов добавлено не обязательное поле - (см. документ ./Encyclopedia/macroapi_manual.ru.chm в официальном дистрибутиве Far3 b4743 SVN r14343 и новее) [more=id содержащее уникальный идентификатор макроса]Стационарные макросы

--------------------------------------------------------------------------------

Загрузка макроса происходит при вызове глобальной функции Macro, которой передаётся один аргумент – таблица с параметрами макроса. При успешной загрузке функция возвращает true.

Macro {
area = "Shell Info Tree"; -- string
key = "CtrlF11 ShiftHome"; -- string (опциональное поле)
description = "Macro example"; -- string (опциональное поле)
flags = "NoPluginPanels EmptyCommandLine"; -- string (опциональное поле)
filemask = "*.txt,*.cpp"; -- string (опциональное поле)
priority = 50; -- number (опциональное поле)
sortpriority = 50; -- number (опциональное поле)
condition = function(key) return Far.Height>30 end; -- function (опциональное поле)
action = function() msgbox("","Macro example") end; -- function
id = "F0109446-AA63-4873-AEC3-17AEE993AA53"; -- string (опциональное поле)
}

Поле area должно содержать имена одной или нескольких областей, разделённых пробелами.

Поле key может содержать имена одного или нескольких ключей, разделённых пробелами.
Ключи могут содержать модификаторы: Ctrl,LCtrl,RCtrl,Alt,RAlt,LAlt,Shift.
Ctrl означает “любой из LCtrl,RCtrl”, аналогично для Alt. Порядок указания модификаторов – произвольный.

Альтернативно, поле key может быть задано как регулярное выражение, обрамлённое слешами (/).

В этом случае /Ctrl/ не сработает при нажатии RCtrl, надо явно обозначать /[LR]Ctrl/ и т.п.
Также в этом случае необходимо соблюдать порядок в последовательности Ctrl,Alt,Shift, например /[LR]Alt[LR]CtrlF1/ никогда не сработает.


Опциональное поле flags может содержать набор флагов, разделённых пробелами. Изменения в названиях или интерпретации флагов описаны здесь.

Опциональное поле priority (приоритет) – число от 0 до 100. Значение по умолчанию = 50.
Макросы, добавляемые посредством MCTL_ADDMACRO, имеют приоритет = 50.

Опциональное поле sortpriority (приоритет для сортировки) – число от 0 до 100. Значение по умолчанию = 50.
Значение данного поля учитывается при определении порядка расположения макросов в меню выбора макроса.

Опциональное поле filemask – строка.
Применимо только для областей Editor и Viewer. Обрабатывается по правилам, аналогичным тем, которые Фар применяет для масок файлов при поиске из панелей и т.д. Если имя файла, открытого в редакторе или просмотрщике, не соответствует заданной маске, макрос выполняться не будет.

Опциональное поле condition – функция.

Вызывается с одним аргументом: имя нажатого ключа. Для автостартующих макросов – вызывается без аргументов.
Если возвращает false/nil/ничего, то макрос не исполняется.
Если возвращает число, то это число используется вместо priority.
При других значениях возврата (например, true) используется priority.


Поле action – функция.
Если макрос успешно прошёл все предварительные проверки (область действия, флаги, маска файла, приоритет), то вызывается функция action.

Допустимо более одного макроса на сочетание (key,area). В этом случае выполняется макрос с наибольшим приоритетом. Если есть более одного макроса с одинаковым наибольшим приоритетом – выводится меню выбора макроса.
Автостартующие макросы выполняются все, независимо от приоритета. Очерёдность их исполнения не определена.
[/more]. Я ставил эксперимент с переименованием в своих старых макросах аналогичного по смыслу параметра uid в id, но поскольку LuaManager v3.14 новый формат макросов в полном объёме ещё не поддерживает получил ожидаемый отрицательный результат и временно отложил переименование. Входящий в состав плагина LuaMacro MacroBrowser.lua поле id в таблице macro обрабатывает без сбоя, а т.к. для LuaManager на тот момент новой версии ещё не было я решил отложить внесение данной поправки в свои скрипты чтобы исключить потенциальный источник ошибок.

Добавлено:
bahtey

FarPortaDev , автор Артём Сеничев, но я сомневаюсь что версия для Far2 где-то сохранилась. Да и многие Android устройства при переключении в режим Накопитель USB без плясок с бубном читаются. По крайней мере мой Explay Fresh (Android 4.4.2) это умеет.
Автор: bahtey
Дата сообщения: 31.07.2016 20:24
VictorVG4
Да, но там в режиме MTP.
Как диски не мапятся.
Автор: VictorVG4
Дата сообщения: 31.07.2016 20:36
bahtey

Ну, не знаю что у вас за устройства. Я для списания данных с карт памяти просто переключаю режим, кабель в хаб благо он у меня 4 x USB 3.0 + 2 x USB 2.0 к плате HP подключён (чип Texas Instrument TUSB7340 сидит на PCIe 1x Gen2, не чудит и драйвера шустрые) и делаю что мне надо. Вот с Renesas mPD720201 с драйверами проблем предостаточно - чип конфликтует с JMicron JM36x/38x и драйвера на платах где стоят такие чипы постоянно слетают...
Автор: shmuz2
Дата сообщения: 31.07.2016 20:44
Skifoff2
Это изменение никак не влияет на работу самого LuaMacro, но влияет на скрипт Rebind и два сторонних макробраузера, которые используют Rebind.
Far/плагин сами ничего не будут переименовывать.
Автор: bahtey
Дата сообщения: 31.07.2016 20:46
Да не видит система как usb-накопитель, хотя драйвера установлены.
Потому в MTP режиме, и соответственно через проводник приходится только открывать, потому думали, может через far можно "увидеть".
Т.е. как вариант поставить 3-ю версию.
Автор: VictorVG4
Дата сообщения: 31.07.2016 21:02
bahtey

Да, вариант разумный, но и посмотреть чего системе не хватает стоит. Такое ощущение что какой-то зависимости нет и цепочка толком не работает...

shmuz2

Да и по идее зачем им это делать? Зачем нам давать роботу излишнюю самостоятельность в принятии решений, особенно если их последствия не очевидны? А если если его логика даст сбой? Я считаю что робот должен быть жёстко ограничен в пределах зоны безопасных решений, а окончательное решение должен принимать человек по результатам анализа как задачи так и последствий.
Автор: john_doe
Дата сообщения: 01.08.2016 00:07
sToLp

Цитата:
Jon_Dow
 
Поскольку сервер форума Фара на неопределённое время недоступен, информацию касательно испытания мною усовершенствованной версии CtrlAlt.lua поместил туда.
Не к тому пользователю обращаетесь)

Описанные вами проблемы выглядят странно. У меня всё чётко работает.
На всякий случай вот чуть более актуальная версия скрипта:
[more]
Код: local F = far.Flags
local mods = {[0x11]="Ctrl",[0x12]="Alt",[0x10]="Shift"}
local A,rA,C,rC,S = F.LEFT_ALT_PRESSED,F.RIGHT_ALT_PRESSED,F.LEFT_CTRL_PRESSED,F.RIGHT_CTRL_PRESSED,F.SHIFT_PRESSED
local mask = bor(A,rA,C,rC,S)

local keys = {

[C+A] ="CtrlAlt",
[C+rA] ="CtrlRAlt",
[rC+A] ="RCtrlAlt",
[rC+rA]="RCtrlRAlt",
[A+rA] ="LRAlt",
[C+rC] ="LRCtrl",

[C+S] ="CtrlShift",
[rC+S] ="RCtrlShift",
[A+S] ="AltShift",
[rA+S] ="RAltShift",

[C+A+S] ="CtrlAltShift",
[C+rA+S] ="CtrlRAltShift",
[rC+A+S] ="RCtrlAltShift",
[rC+rA+S]="RCtrlRAltShift",
[A+rA+S] ="LRAltShift",
[C+rC+S] ="LRCtrlShift",
}

local wait
Event{
group="ConsoleInput";
description="CtrlAlt";
id="2EEE56E1-228B-4087-B583-6E0612E6DF0B";
action=function(r)
if r.EventType~=F.KEY_EVENT then
return
elseif mods[r.VirtualKeyCode] then
if r.KeyDown then
wait = band(mask,r.ControlKeyState)
if not keys[wait] then wait = false end --to filter single mods
elseif wait then
if far.MacroGetState()==F.MACROSTATE_NOMACRO then
mf.postmacro(mf.eval,keys[wait],2)
end
wait = false
end
else
wait = false
end
end;
}

Macro { description="CtrlAlt sample";
area="Common"; key="CtrlAlt LRCtrl LRAlt CtrlShift AltShift CtrlAltShift LRCtrlShift LRAltShift";
priority=40;
id="D1A40884-785D-4996-A71B-4FB05296A571";
action=function()
far.Message(mf.akey(1,1),Area.Current)
end;
}
Автор: Skifoff2
Дата сообщения: 01.08.2016 00:44
VictorVG4
shmuz2
Прошу прощения, понял, что опциональное, но не понял, мне в своей сборке с небольшим количеством скриптов нужно будет что-то в них менять? Просьба не отсылать в справку, ибо вот это:

Цитата:
id = "F0109446-AA63-4873-AEC3-17AEE993AA53"; -- string (опциональное поле)

всё, что там есть, и это ни разу не пояснения
Автор: VictorVG4
Дата сообщения: 01.08.2016 01:17
Skifoff2

Я думаю пока не надо т.к. определение "опциональное" подразумевает что "элемент может быть, но может и отсутствовать".

В моих экспериментах MacroBrowser.lua встретив в макросе поле uid="..." по F3 просто говорит что у данного макроса не назначен id, а если это поле переименовать то выводит его значение. А на работе других элементов сборки отсутствие id не сказывается. У меня исторически сложилось так, что я качестве id для всех своих скриптов что под Win, что под UNIX использую GUID-ы - лично мне так удобнее, а появится новая версия LuaManager.lua и Rebind.lua с поддержкой поля id - вот тогда переименую где надо, благо у меня в этом нуждается всего чёртова дюжина скриптов и те наперечёт известны.

В справке в качестве примера id="..." приведён GUID, так почему бы им не воспользоваться при условии его уникальности? Благо генераторов GUID-ов полно начиная со скриптовых и кончая программами из состава многих сред разработки (MS Visual Studio, IBM Visual Ege, Borland Delphy, ...) . Вам остаётся только выбрать тот, который больше понравится, ну а тут как говорится на вкус и цвет советчиков нет.
Автор: john_doe
Дата сообщения: 01.08.2016 02:31

Цитата:
Вам остаётся только выбрать тот, который больше понравится
В командной строке (или меню пользователя)
Код: lua:print(win.Uuid(win.Uuid()):upper())
Автор: sToLp
Дата сообщения: 01.08.2016 10:01
john_doe

Цитата:
На всякий случай вот чуть более актуальная версия скрипта:

Шорткаты CtrlAlt, CtrlRAlt, RCtrlAlt и RCtrlRAlt выдают соответствующие сообщения чётко.
CtrlShift, RCtrlShift, AltShift, RAltShift, CtrlAltShift и RCtrlRAltShift тоже. А LRCtrl и LRAlt не работают.
Причём это и в Win10x64entRu Far 4747 x64, и в Wn7x32ru Far 4747 x86.


Цитата:
Цитата: При нажатии на шорткат LCtrlLAlt меню конфликтующих макросов выводит макросы, назначенные на CtrlAlt. А при нажатии на RCtrlRAlt это меню выводит макросы, назначенные на CtrlAlt, CtrlRAlt, RCtrlAlt и RCtrlRAlt.

Естественно, иначе и быть не может.

Но ведь в таком случае (раз все они выводятся под маркой одного ключа CtrlAlt) их различение практически обесценивается — достаточно назначать макросы только на этот ключ. По-моему, было бы куда правильнее, если бы Фар различал нажатия на каждый из этих и подобных им шорткатов обособленно.
Автор: FREEHACK
Дата сообщения: 01.08.2016 11:26
Подскажите пожалуйста.Использую давно версию FAR 1.75
После перехода на Win10 или Win 8.1 при редактировании файлов в самом FAR и сохранении изменений в них - в нижней панели FAR стал загораться красным цветом.Можно ли как-то убрать этот эффект?
Автор: abelenki2
Дата сообщения: 01.08.2016 11:33

Цитата:
Можно ли как-то убрать этот эффект?

да, использовать последнюю версию Far:


https://yadi.sk/d/9O2eMhdumhPZw
Автор: Wave_Blessed
Дата сообщения: 01.08.2016 13:07

Цитата:
Цитата:
пост - abelenki2 от - 05:28 31-07-2016
а то farmanager.com более не существует.

насовсем?

Просто что-то уже несколько дней сайт-форум недоступны. Для сайта такого уровня это уже что-то серьёзное.
Автор: john_doe
Дата сообщения: 01.08.2016 13:39

Цитата:
А LRCtrl и LRAlt не работают.
Жаль. У меня всё чётко.
Удерживаю например левый Ctrl, а потом правый нажимаю и отпускаю (только его).

Работают и LRAltShift / LRCtrlShift.
Две любых клавиши удерживаю, третьей клацаю


Цитата:
Но ведь в таком случае (раз все они выводятся под маркой одного ключа CtrlAlt)  их различение практически обесценивается — достаточно назначать макросы только на этот ключ. По-моему, было бы куда правильнее, если бы Фар различал нажатия на каждый из этих и подобных им шорткатов обособленно.  
Вы забыли как работает luamacro.
Указание "CtrlAlt" абсолютно эквивалентно "LCtrlLAlt LCtrlRAlt RCtrlLAlt RCtrlRAlt".
Т.е. все "обезличенные" модификаторы внутри luamacro раскрываются в явные L/R.

В вашем случае RCtrlRAlt входит во все четыре комбинации (CtrlAlt, CtrlRAlt, RCtrlAlt и RCtrlRAlt)
Автор: sToLp
Дата сообщения: 01.08.2016 13:49
john_doe

Местные гуру посоветовали приглядеться к используемым Фаром библиотекам. Поэтому скомпоновал тестовый Фар x86 сызнова следующим образом. К Вашей тестовой сборке добавил из тестовой сборки VictorVG4 Far30latest-x86_x64-bin.7z плагины и четыре dll-ки (lpeg.dll, lua5.1.dll, lua51.dll и luafar3.dll). И макросы на LRCtrl и LRAlt вроде бы заработали тоже. Буду дальше пытаться выяснять в чём дело.
Автор: john_doe
Дата сообщения: 01.08.2016 14:03
Предыдущее сообщение пару раз редактировал, пересмотрите.

"Тестовую" сборку достаточно накатить поверх последней ночной. Она не моя, а просто собрана из последних исходников (билд 4747, может у VictorVG то же самое, тогда моя не нужна).
И раз уж вы её используете, то в таблице keys большинство клавиш уже не нужны, фар сам их распознаёт


Код:
r14349 | z-g | 2016-07-30 20:43:57 +0300 (Сб, 30 июл 2016) | 2 lines
Changed paths:
M /trunk/unicode_far/changelog
M /trunk/unicode_far/keyboard.cpp
M /trunk/unicode_far/vbuild.m4

1. [Wishes 0002857]: Распознавать нажатия сочетаний нескольких модификаторов.
Автор: sToLp
Дата сообщения: 01.08.2016 14:13

Цитата:
Работают и LRAltShift / LRCtrlShift. Две любых клавиши удерживаю, третьей клацаю

Да, эти шорткаты тоже работают. Со странным нюансом: LRCtrlShift c правым шифтом не срабатывает если шифт отпускать первым. Это в Win7. А в Win10 в том же вновь скомпонованном Фаре x86 это не проявляется. LRAltShift / LRCtrlShift работают полностью так, как Вы и показали.
Автор: VictorVG4
Дата сообщения: 01.08.2016 16:40
john_doe

Исходники те же, но компилится с /ox /os и собирается без отладочной информации что и уменьшает размер...
Автор: sToLp
Дата сообщения: 01.08.2016 16:40
john_doe

Цитата:
Поэтому замените таблицу с клавишами на эту

Заменил.

Цитата:
В тестовом макросе соответственно заменить клавиши на

Код: key="LRCtrl LRAlt LRCtrlShift LRAltShift";
Автор: skipik001
Дата сообщения: 01.08.2016 17:44
VictorVG4
Вить, макрос Common_ConsControl.lua перестал корректно работать на Windows 10 RS1. Похоже, что правда там в консоли что-то поменяли.
Выглядит это так, что шрифт неправильный выставляется, какой-то непонятный вообще вместо Lucida Console, 15. При этом в свойствах отображается, что выбран именно Lucida Console, и если просто нажать ОК, то всё нормализуется.
Есть мысли, как можно починить скрипт? Или это нужно ждать доки по новой редакции ОС?
Автор: VictorVG4
Дата сообщения: 01.08.2016 17:48
skipik001

Скрипт сам ничего не делает, а только говорит плагину что от оси просить. Так что тут нужна помощь Максима как системного программиста.

И я считаю, что за отказом стоят изменения в оси ибо как пример вызовы WFP API из fwpuclnt.dll (зовётся Firewall Monitor Plugin для Process Hacker):

Для Vista/Server 2003 (этот набор сейчас использует плагин): Fwpm*0()

Для Win7/Server 2008: Fwpm*1()

Для Win8/Server 2012 и выше: Fwpm*2()

и это ещё не весь комплект её "радости" - вдогонку одноимённые поля в её структурах данных имеют разные смысловые значения в разных версиях ОС. Microsoft, © .
Автор: sToLp
Дата сообщения: 01.08.2016 18:23
VictorVG4

При запуске Far30-x64-test в Win10x64entRu на двух разномастных машинах вылезает сообщение:

Исключительная ситуация
Исключение: Нарушение доступа (чтение из 0xFFFFFFFF83BD8BFF)
Адрес: 0x000000006ABA289B SetDirectoryW
Функция: GetGlobalInfoW
Модуль: W:\Far_tst4747_64\Far\plugins\svcmgr\svcmgr-x64.dll

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: оффтоп


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.