Текущий вариант моего
старинного макроса.
Три варианта применения:
• на текущей панели выделены
два файла — сравниваем их (первый всегда слева);
• на текущей панели выделен
один файл И в буфере имеется валидное имя файла — сравниваем их (файл из буфера всегда слева);
• в остальных случаях — сравниваем текущие файлы панелей (файл с левой панели всегда слева).
local VisComp = 'AF4DAB38-C00A-4653-900E-7A8230308010'
Macro {
area="Shell"; key="AltV"; flags=""; description="Визуальное сравнение файлов (либо выделенных на активной, либо один из буфера и другой выделенный на активной, либо под курсорами на панелях)";
condition = function()
return Plugin.Exist(VisComp)
end;
action = function()
local LN, RN
local File = far.PasteFromClipboard():match"[^\r\n]+"
if APanel.SelCount==2 then
LN = (APanel.UNCPath~="" and APanel.UNCPath.."\\" or "")..panel.GetSelectedPanelItem(nil,1,1).FileName
RN = (APanel.UNCPath~="" and APanel.UNCPath.."\\" or "")..panel.GetSelectedPanelItem(nil,1,2).FileName
elseif APanel.SelCount==1 and win.GetFileAttr(File) then
LN = File
RN = (APanel.UNCPath~="" and APanel.UNCPath.."\\" or "")..panel.GetSelectedPanelItem(nil,1,1).FileName
else
LN = (PPanel.UNCPath~="" and PPanel.UNCPath.."\\" or "")..PPanel.Current
RN = (APanel.UNCPath~="" and APanel.UNCPath.."\\" or "")..APanel.Current
if APanel.Left then
LN, RN = RN, LN
end
end
Plugin.Command(VisComp, "\""..LN.."\" \""..RN.."\"")
end;
}
! | Message from: John Doe |
Аналогичные макросы:
|