Quantcast
Channel: Ru.Board
Viewing all articles
Browse latest Browse all 1269076

FAR Manager (часть 5) (3421) / Обсуждение работы

$
0
0
citPiks:
Выше я сообщал, что
Цитата:
Закончил этап ранее начатого формирования пакета макросов навигации по панели вслепую буквенными клавишами навигацияПоПанелиВслепую.lua
Но на форуме Far`а насчёт этого варианта "слепой" навигации корректно посоветовали:
Цитата:
не проще было бы сделать макросы с модификаторами — другая то рука свободна?


И тогда я решил попробовать-таки сделать макросы с навигаторами. При этом у меня был интерес сделать их с Alt`ом.

И действительно, с модификаторами у меня получился существенно более простой пакет макросов [more=навигацияПоПанелиВслепую2.lua]
Код:

-- Макросы пакета навигацияПоПанелиВслепую2.lua - навигация в панели 'слепым' способом
-- при нажатом левой рукой модификаторе Alt (в двух случаях - ShiftAlt)
-- пальцами правой руки (по клавишам JHYNUMIK,O.;') от базовой кнопки клавиатуры J/О

-- Соcтавил citPiks. С учётом и с использованием
-- идеи https://forum.farmanager.com/viewtopic.php?p=154710#p154710 ImBringingTaxicab
-- и замечания https://forum.farmanager.com/viewtopic.php?p=155423#p155423 Tal,
-- с благодарностью к поименованным и к другим лицам, в той или иной мере участвующим в развитии FAR.

-- Указательный палец / Right index finger:

Macro {
description="Прыгать в панели ↔ как Home/End УКАЗАТЕЛЬНЫМ по Y/N при нажатом Alt";
-- (т.е. ЛЕВЕЕ и ВЫШЕ базовой позиции)
--description="Go to the top/bottom position of the panel";
area="Shell"; key="AltY AltN"; id="D3A0410A-AB89-4269-92D5-0882D8302950";
condition=function() return APanel.Visible end;
action=function() if akey(1,1):match('N') then Keys("End") else Keys("Home") end; end;
}

Macro {
description="Листать в панели ↕ как PgDn/PgUp УКАЗАТЕЛЬНЫМ по M/U при нажатых AltShift";
-- (т.е. ВЫШЕ или НИЖЕ базовой позиции при нажатых AltShift)
-- description="Screenful down / up";
area="Shell"; key="AltShiftU AltShiftM"; id="8F060392-2439-4E6D-8B23-532545B85255";
condition=function() return APanel.Visible end; -- работа макроса в видимой панели
action=function() if akey(1,1):match('M') then Keys("PgDn") else Keys("PgUp") end; end;
}

Macro {
description="Перейти на позицию левее/правее - как Left/Right"; -- description="Move Left/Right";
area="Shell"; key="AltH AltJ"; id="CC5F044F-F249-4923-875F-38C005D594D9"; --AltР
condition=function() return APanel.Visible end;
action=function() if akey(1,1):match('H') then Keys('Left') else Keys("Right") end; end;
}

Macro {
description="Перейти на позицию выше/ниже - как Up/Down"; -- description="Move Up/Down";
area="Shell"; key="AltU AltM"; id="EA019A8A-4DBA-4549-9891-0E56D213316F";
condition=function() return APanel.Visible end;
action=function() if akey(1,1):match('U') then Keys('Up') else Keys("Down") end; end;
}

-- Средний палец / Middle finger of the right hand:

Macro {
description="Пометить/снять пометку с объекта или в обратную сторону - как Ins и Ins-реверс"; -- description="Select/deselect file";
area="Shell"; key="AltI Alt,"; id="6F8F702A-B638-449A-86C0-761578E3ABF7";
condition=function() return APanel.Visible end;
action=function() if akey(1,1):match('I') then Keys('Ins') else Keys("Up Ins Up") end; end;
}

Macro {
description="Инвертировать пометку в панели - Multiply"; -- description="Changes the sorting order to be reversed";
area="Shell"; key="AltK"; id="CC8C94FA-8423-4737-AF91-D21C3DAEDF24";
condition=function() return APanel.Visible end; -- исполнять только в англ. раскладке
action=function() Keys('Multiply') end;
}

-- Безымянный палец / Ring finger of the right hand:

Macro {
description="Пометить элементы / cнять пометку с группы - Add/Subtract"; -- description="Sets the sorting order to be direct";
area="Shell"; key="AltO Alt."; id="E49365CA-4185-4D66-9909-79FC931CC583";
condition=function() return APanel.Visible end;
action=function() if akey(1,1):match('O') then Keys('Add') else Keys("Subtract") end; end;
}

-- Мизинец / Little finger of the right hand:

Macro {
description="Прокрутка текущей позиции вверх/вниз"; -- description="scroll up/down";
-- см. michaelang Sat 31 Aug 2019 05:42 https://forum.farmanager.com/viewtopic.php?p=154883#p154883
area="Shell"; key="Alt; Alt'"; id="7F6FF4B7-5C70-44F2-BB30-30EF5A10142F";
condition=function() return APanel.Visible end;
action=function() if akey(1,1):match(';') then Keys('MsWheelDown Up') else Keys("MsWheelUp Down") end; end;
}
[/more] Причём по коду настолько существенно проще, что объём сократился аж в четыре раза. И функциональность макросов, при этом, нисколечко не пострадала.

Исходное положение указательного пальца правой руки стандартное для "слепого" набора — т.е. на клавише "с пупырышкой": англ. J (русск. О). Все манипуляции производятся при нажатом левой рукой Alt`е.

Схема нажатий указательным пальцем:

Цитата:
Y как Home — U как Up (+Shift – как PgUp)
|
H как Left — J как Right
|
N как End — M как Down (+Shift – как PgDn)



Схема нажатий средним пальцем:

Цитата:
I как Ins
|
K как * Multiply
|
< как Ins обратно



Схема нажатий безымянным пальцем:

Цитата:
O как Add (т.е. вызвать диалог "Пометить")
|

|
> как Subtract (т.е. вызвать диалог "Снять")



Схема нажатий (и удержаний) мизинцем:

Цитата:
; (точка с запятой/русская Ж) — прокрутка влево и вверх
' (одинарная кавычка/русская Э) — прокрутка вправо и вниз

Viewing all articles
Browse latest Browse all 1269076

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>