Latest post of the previous page:
Почему?
Вы можете поучаствовать, если есть желание.
Ко всем точно не надо, но улучшить читаемость можно, используя "говорящие" константы вместо числовых значений.
Latest post of the previous page:
Почему?
Вы можете поучаствовать, если есть желание.
Ко всем точно не надо, но улучшить читаемость можно, используя "говорящие" константы вместо числовых значений.
В предыдущей версии макроса погашенная панель может включиться даже если пользователь не намерен этого делать. А просто пощёлкает Tab`ом в меню и, не производя ни каких действий в панелях, выйдет из него.
Code: Select all
local APANEL = 0
local CUR_ITEM = 0
local MOD_TIME = 17
local SELECT = 1
local IDX = 1
Macro { description="выделить все файлы/папки новее текущего";
area="Shell"; key="CtrlShiftAdd";
action=function()
local d = Panel.Item(APANEL,CUR_ITEM,MOD_TIME)
for i=1,APanel.ItemCount do
if Panel.Item(APANEL,i,MOD_TIME)>d then
Panel.Select(APANEL,SELECT,IDX,i)
end
end
end;
}
Code: Select all
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;
}
линейка функциональных клавиш тоже не изменится. и возможно что-то ещё. пишите на мантис.
Code: Select all
Macro {
description="Use Alt-digit to switch between screens";
area="Editor Viewer Shell QView Tree Info Desktop"; key="/[LR]Alt[0-9]/";
flags="NoSendKeysToPlugins";
action=function()
local key = mf.akey(1,1):sub(-1)
Keys("F12", Object.CheckHotkey(key)~=0 and key or "Esc")
end;
}
Screens
area
Code: Select all
local APANEL = 0
local EXT,NAME = 8,4 --fsplit
local SELECTED = 8 --Panel.Item
local NAMES = 2 --Panel.Select
-- При непустой командной строке макрос не вызывается чтобы можно пользоваться первоначальной
-- функцией сочетания CtrlShiftIns - Поместить помеченные имена в Буфер Обмена
Macro { description="Пометить вместе с htm-файлом и парную ему папку";
area="Shell"; key="CtrlShiftIns"; flags="EmptyCommandLine";
action=function()
local Current = APanel.Current
local len = ("_files"):len()
local Ext = Current:sub(-len)
local Name
if Ext=="_files" then
Name = Current:sub(1,-len)
else
Ext = mf.fsplit(Current,EXT)
Name = mf.fsplit(Current,NAME)
end
local pair1,pair2
if Ext==".htm" or Ext==".html" then
pair1,pair2 = ".files","_files"
elseif Ext==".files" or Ext=="_files" then
pair1,pair2 = ".htm",".html"
end
if pair1 then
local action = Panel.Item(APANEL,0,SELECTED) and 0 or 1
local items = { APanel.Current, Name..pair1, Name..pair2}
Panel.Select(APANEL,action,NAMES,table.concat(items,"\n"))
end
end;
}
Code: Select all
Macro {
description="Продолжить поиск/замену в обратном направлении [S&R]";
area="Editor"; key="AltF7";
action=function()
Keys("F11")
if Object.CheckHotkey("7")~=0 then
Keys("7 1")
else
Keys("Esc AKey")
end
end;
}
Code: Select all
if not panel.CheckPanelsExist() then return end -- far.exe -v -e
local F6_SWITCH_ALLOWED = 0x00000002
Macro {
description="Quit from editor/viewer and position to the current file";
area="Editor Viewer"; key="CtrlF10";
flags="NoSendKeysToPlugins";
condition=function()
return band(Editor.State,F6_SWITCH_ALLOWED)~=0 -- check if CtrlF10 function is available
end;
action=function()
Keys"CtrlF10 Esc"
if Area.Editor or Area.Viewer or Area.Desktop then
Keys"F12 1"
end
end;
}
if not Area.Shell
? хотя вообще проверка не нужна.