Console Control
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Console Control
Console Control for FAR 3
Микроплагин для управления размером и шрифтом консольного окна FAR с помощью мыши или клавиатуры.
Микроплагин для управления размером и шрифтом консольного окна FAR с помощью мыши или клавиатуры.
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: Console Control
Latest post of the previous page:
Для интереса "свернул" ваш модуль.Code: Select all
local cc = {}
cc.ID = "94624B7B-FFDB-435F-B955-F99DBBC3BFE0"
for c in ("Exist Call Command Config Menu"):gmatch("%w+") do
cc[c] = function(...)
return Plugin[c](cc.ID,...)
end
end
cc.Installed = cc.Exist
for c in ("WindowSize BufferSize FontSize FontSizeDelta FontName Maximize Topmost Transparency"):gmatch("%w+") do
cc[c] = function(...)
return Plugin.Call(cc.ID,c,...)
end
end
cc.WindowSizeDelta = function(DX, DY)
local X, Y = cc.WindowSize()
return cc.WindowSize(X+DX, Y+DY)
end
cc.BufferSizeDelta = function(DX, DY)
local X, Y = cc.BufferSize()
return cc.BufferSize(X+DX, Y+DY)
end
ConsoleControl = cc
Добавил ещё Config и Command (или вы намеренно пропустили?)
А вот вся "документация:"
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Console Control
Что то оно у меня не заработалоJohn Doe wrote:Для интереса "свернул" ваш модуль
Да и по любому - это brainfuck у не интерфейс . А документацией он станет только при наличии комментариев, конечно....Far3\Config\Macros\scripts\ConsoleControl-Macros.lua:68: attempt to call field 'Maximize' (a nil value)
stack traceback:
...Far3\Config\Macros\scripts\ConsoleControl-Macros.lua:68: in function <...Far3\Config\Macros\scripts\ConsoleControl-Macros.lua:67>
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Console Control
Вот этого, кстати не понял. Что это?John Doe wrote:А вот вся "документация:"Code: Select all
ID = "94624B7B-FFDB-435F-B955-F99DBBC3BFE0" Installed () Call () Menu () WindowSize (X, Y) WindowSizeDelta (DX, DY) BufferSize (X, Y) BufferSizeDelta (DX, DY) FontSize (Size) FontSizeDelta (D) FontName (Name, Size) Maximize (On) Topmost (On) Transparency (Value)
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Console Control
Ну я же не думал что вы его на самом деле попробуете запустить!Max Rusov wrote:Что то оно у меня не заработало
Я лично не пробовал :-)
(набросал на скорую руку)
В любом случае, предлагаю вам более интересную версию, на этот раз проверил )
Code: Select all
-- https://forum.farmanager.com/viewtopic.php?p=105959#p105959
--
-- Console Control
-- (c) Max Rusov
-- https://github.com/MaxRusov/far-plugins/tree/master/ConsoleControl
--
-- Интерфейсный модуль
-- Поместите файл в %FARPROFILE%\Macros\Modules
--
local cc = {}
cc.ID = "94624B7B-FFDB-435F-B955-F99DBBC3BFE0"
local interface=[[
Width, Height = WindowSize ([Width], [Height]) -- размеры окна
Width, Height = BufferSize ([Width], [Height]) -- размеры буфера
Size, Name = FontSize ([Size]) -- размер шрифта
Size, Name = FontSizeDelta ([DeltaSize]) -- +/- размер шрифта
Size, Name = FontName ([Name], [Size]) -- параметры шрифта
{0|1} = Maximize ([On]) -- максимизация/восстановление
-- размеров окна (-1 - переключить)
{0|1} = Topmost ([On]) -- Always On Top (-1 - переключить)
{0-255} = Transparency ([Value]) -- прозрачность
]]
--Width, Height = WindowSizeDelta (DX, DY) -- +/- размеры окна
--Width, Height = BufferSizeDelta (DX, DY) -- +/- размеры буфера
for c in interface:gmatch("=%s*(%w+)%s*%(.-\n") do
--for c in interface:gmatch("(%w+)%s*%(.-\n") do
cc[c] = function(...) return Plugin.Call(cc.ID,c,...) end
end
for c in ("Call SyncCall Command"):gmatch("%w+") do
cc[c] = function(...) return Plugin[c](cc.ID,...) end
end
for c in ("Exist Config Menu"):gmatch("%w+") do
cc[c] = function() return Plugin[c](cc.ID) end
end
cc.Installed = cc.Exist
cc.WindowSizeDelta = function(DX, DY)
local X, Y = cc.WindowSize()
return cc.WindowSize(X+DX, Y+DY)
end
cc.BufferSizeDelta = function(DX, DY)
local X, Y = cc.BufferSize()
return cc.BufferSize(X+DX, Y+DY)
end
return cc
P.S.
Если эту тему немного развить, то возможно сделать и универсальную функцию, на манер Plugin.require
А LuaMacroComplit можно будет снабдить подсказкой!
Last edited by John Doe on Thu 30 Jan, 2020 08:37, edited 1 time in total.
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: Console Control
Поигрался с плагином.
Поведение некоторых функций изменилось по сравнению с прошлой версией.
Неудобно что некоторые параметры в документации называются иначе чем в модуле (Width - X, Height - Y, ...)
Составил для себя "конспект" Readme.txt (см. выше).
Maximize и Topmost возвращают 1|0
Но в Lua 0 - это true, поэтому лучше бы использовать вместо него false/nil, удобнее в условиях
P.S.
В текст вложения выше закралась (некритичная) ошибка. Файл заменил.
Поведение некоторых функций изменилось по сравнению с прошлой версией.
Неудобно что некоторые параметры в документации называются иначе чем в модуле (Width - X, Height - Y, ...)
Составил для себя "конспект" Readme.txt (см. выше).
Maximize и Topmost возвращают 1|0
Но в Lua 0 - это true, поэтому лучше бы использовать вместо него false/nil, удобнее в условиях
P.S.
В текст вложения выше закралась (некритичная) ошибка. Файл заменил.
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: Console Control
Большинство макросов ConsoleControl-Macros.*lua работают как с левыми, так и с правыми модификаторами.
Кроме Change Windows Size: всё дело в local S = akey(1):sub(9);
Стоит изменить на local S = akey(1):match("R?AltShift(.+)");
P.S.
Заметил что в .fmlua используются регэкспы в именах ключей, а в .lua нет.
Вот как будет в .lua
Кроме Change Windows Size: всё дело в local S = akey(1):sub(9);
Стоит изменить на local S = akey(1):match("R?AltShift(.+)");
P.S.
Заметил что в .fmlua используются регэкспы в именах ключей, а в .lua нет.
Вот как будет в .lua
Code: Select all
key="/[LR]AltShift(Up|Down|Left|Right)/";
key="/[LR]CtrlMsWheel(Up|Down)/";
key="/[LR]Ctrl[LR]AltMsWheel(Up|Down)/";
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: Console Control
По поводу того же макроса: Macro { description="Console Control: Change Windows Size";
Он перехватывает клавиши, занятые в редакторе для пометки вертикального блока.
Надо либо отключать этот макрос в редакторе , либо ограничить его действие только левыми (или только правыми) модификаторами.
Он перехватывает клавиши, занятые в редакторе для пометки вертикального блока.
Надо либо отключать этот макрос в редакторе , либо ограничить его действие только левыми (или только правыми) модификаторами.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Console Control
Вообще-то вертикальные блоки в редакторе и при одном Alt выделяются, так что раскорячиваться с AltShift не обязательно. Но, конечно, макрос можно переназначить как угодно - он идет только в качестве примера. Мне, вообще, мышкой удобнее размер менять.
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: Console Control
Вот блин.
Кто мне скажет как выглядят серые клавиши на чёрной клавиатуре?
Был уверен что это клавиши Numpad, но начинаю сомневаться:
Аlt - <стрелки NumPad> не срабатывает.
Code: Select all
Alt-серые клав.курсора Пометка вертикального блока
Alt-Shift-Клав.курсора Пометка вертикального блока
Был уверен что это клавиши Numpad, но начинаю сомневаться:
Аlt - <стрелки NumPad> не срабатывает.
- Alexey Samlyukov
- Posts: 1765
- Joined: Tue 15 Mar, 2005 17:28
- Been thanked: 7 times
- Contact:
Re: Console Control
когда-то давно курсорные клавиши были серыми. http://www.vintagecomputer.net/ibm/5140 ... rtible.jpg
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: Console Control
Да нет, тут ерунда какая-то
Что тогда по вашему Alt-Shift-Клав.курсора Пометка вертикального блока?
Не NumPad же
Update
Таки да, судя по функциям "не серые" подразумевают NumPad
Крайне неудачно сформулировано
Что тогда по вашему Alt-Shift-Клав.курсора Пометка вертикального блока?
Не NumPad же
Update
Таки да, судя по функциям "не серые" подразумевают NumPad
Крайне неудачно сформулировано
Re: Console Control
почему нет ? нумпад с выключенным нумлоком - пометка вертикального блока.Не NumPad же, с шифтом-то
на старых клавиатурах отдельных курсорных клавиш не было, а когда они появились, то были серыми (обычно).
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: Console Control
Разобрались...
Но что тогда это:У меня не работает.
Зато (сюрприз) почему-то работает CtrlAltNum4 и CtrlAltNum6
P.S.
Max Rusov
Эту часть обсуждения отделю потом, т.к. оффтопик
Но что тогда это:
Code: Select all
#Ctrl-Alt-серые клавиши# Пометка вертикального блока
Зато (сюрприз) почему-то работает CtrlAltNum4 и CtrlAltNum6
P.S.
Max Rusov
Эту часть обсуждения отделю потом, т.к. оффтопик
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: Console Control
У меня полноразмерная клавиатура, и #Ctrl-Alt-серые клавиши# не выполняют никаких действий в редакторе.
Нужна статистика, у кого как?
Нужна статистика, у кого как?
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Console Control
У меня работает как выделение прямоугольного блока по словам.
Только Ctrl-Alt-Num8 / Ctrl-Alt-Num2 не работают почему то.
Только Ctrl-Alt-Num8 / Ctrl-Alt-Num2 не работают почему то.