V=mf.clip(Cmd[,Value])Позволяет производить разнообразные манипуляции с Clipboard в зависимости от заданного действия Action:
0Value игнорируется;
1Value в Clipboard;
2Value к Clipboard;
3Value игнорируется;
4Value игнорируется;
5Режимы работы с буфером обмена.
По умолчанию в операциях запоминания/вставки данных Far Manager работает с буфером обмена Windows.
Вызов mf.clip(5) позволяет в пределах одного макроса переключать внутренние механизмы Far Manager для работы с/без использования буфера обмена Windows.
Value может быть одним из:
-1012Функция возвращает предыдущее значение: 1 — буфер обмена OS, 2 — внутренний буфер.
Пример см. в разделе Примеры.
В случае ошибки возвращает 0
Например, поместить в Clipboard список отмеченных файлов в формате CSV (имя и размер):
local APANEL = 0
local FILENAME,ATTRIB,SIZE,SELECTED = 0,2,6,8
local DIRECTORY = 0x00000010
local function isFolder(panel,idx)
return band(DIRECTORY,Panel.Item(panel,idx,ATTRIB))==DIRECTORY
end
local PUT,ADD = 1,2
Macro {
description="поместить в Clipboard список отмеченных файлов в формате CSV (имя и размер)";
area="Shell"; key="CtrlShiftIns";
action=function()
mf.clip(PUT,"Name;Size\r\n")
for i=1,APanel.ItemCount do
if not isFolder(APANEL,i) and Panel.Item(APANEL,i,SELECTED) then
mf.clip(ADD,Panel.Item(APANEL,i,FILENAME)..";"..Panel.Item(APANEL,i,SIZE).."\r\n")
end
end
end;
}S=mf.env(Name[,Mode[,Value]])Позволяет работать с переменной среды Name. Если Mode не указан или равен 0, то функция возвращает значение переменной среды (Value в этом случае игнорируется). Если Mode указан и отличен от 0, то функция устанавливает значение или удаляет переменную среды.
Для варианта установки/удаления функция возвращает предыдущее значение (или пустую строку, если переменная была не определена).
Примеры.
FooFoo в “bar”mf.env("Foo",1,"Bar")
FooFoo в “0”V=mf.flock(Lkey,Action)Позволяет управлять состоянием Lock-клавиш (NumLock, CapsLock и ScrollLock).
Клавиша Lkey:
012Действие Action:
-1012Функция в младшем бите возвращает предыдущее значение режима выбранной клавиши (или текущее, если Action=-1).
Старший бит будет установлен, если в момент вызова функции клавиша удерживается.
Примечание:
Особенности текущей реализации: чтобы изменить состояние режима в момент удержания клавиши может понадобиться повторный вызов функции.
Поэтому, например, макрос, назначенный на Ctrl+CapsLock может быть таким:
N=Far.KbdLayout ([V])Управление раскладкой клавиатуры.
Параметр V:
01-1Переключиться в конкретную раскладку (например, 0x0409 или 0x4090409 — английская, 0x0419 или 0x04190419 — русская)
В случае указания несуществующей раскладки функция ошибку не выдаст и просто вернёт текущую раскладку.
Функция возвращает предыдущее значение раскладки или 0 в случае ошибки (не удалось определить имя текущей раскладки для консоли или не удалось получить описатель консольного окна).
Например (в командной строке):
lua:=mf.itoa(Far.KbdLayout(0x421),16)4190419
lua:=mf.itoa(Far.KbdLayout(),16)4190419
lua:=mf.itoa(Far.KbdLayout(0x409),16)4190419 и переключит рaскладку на английскую
lua:=mf.itoa(Far.KbdLayout(1),16)4190419 и переключит на следующую рaскладку (по кругу)
N=Far.Window_Scroll(Lines[,Axis])Функция позволяет перемещать консольное окно по буферу.
Lines — количество позиций для прокрутки: положительное число — вперёд (вниз/вправо), отрицательное — назад (вверх/влево).
Axis — направление прокрутки (необязательный параметр): 0 — вертикаль (по умолчанию), 1 — горизонталь.
Функция возвращает false, если перемотка не состоялась (например, Lines был равен 0), иначе true.