Open rufatpro opened 6 years ago
Да, вопрос роднмался на форуме ru-board (по крайней мере я там его запомнил), и вроде после внесли изменния. Идея простая:
Ок, так может усовершенствовать? - Если слэш на конце, значит каталог, иначе имя файла. Если копируется/переносится более одного файла, то каталог в любом случае.
можно макросом прочитать комстроку, убрать завершающий слэш и вернуть всё на место. Есть смысл с этим возится?
Честно говоря не увидел в этом ответе и на форуме ru-board решения
Да, вопрос роднмался на форуме ru-board (по крайней мере я там его запомнил), и вроде после внесли изменния. Идея простая:
Ок, так может усовершенствовать? - Если слэш на конце, значит каталог, иначе имя файла. Если копируется/переносится более одного файла, то каталог в любом случае.
можно макросом прочитать комстроку, убрать завершающий слэш и вернуть всё на место. Есть смысл с этим возится?
в данном случае решением как раз должен стать макрос срабатывающий на событие "копирование URL в NetBox", а считать макросом командную строку Far очень просто, после он отбрасыват завершающий слеш и mf.print() - результат вставлен в комстроку без "хвостика". Я просто не помню где на оффоруме видел обсуждение вопроса "нужен слэш в конце имени каталога или оставим это пользователю", но вроде такой разговор там так же был. Я тогда занят был и скользнул по тексту краем глаза. Но сваять такой скажем "ластик" поверьте, не столь сложно. Просто задачи такой ранее не существовало. Свежая она, а потому под руками готового решения ни у кого нет.
Речь шла о настройке самого Netbox, ибо в предыдущих версиях такой проблемы не было. Мне не хотелось бы писать какой-то патч или макрос. Возможно есть настройка NetBox, которая позволяет не вставлять IP адрес в командной строке по Ctrl+[ и Ctrl+]. Зачем вообще начали добавлять IP и дополнительный слеш не пойму!
Все таки спасибо VictorVG за наводку насчет Макросов! Написал макро, первый вариант такой:
-- NetBox_Ctrl[.lua - © dev256.com, 2018.10.05, использованы примеры с форума и отсюда: https://github.com/michaellukashov/Far-NetBox/issues/109#issuecomment-61585783
local NBID="42E4AEB1-A230-44F4-B33C-F195BB654931"
local NBMID="76BD423A-3EC0-47B3-BA31-1D17F49124D5"
Macro {
area="Shell"; key="Ctrl["; description="Ctrl[ for NetBox."; action=function() -- flags="NotEmptyCommandLine";
local drl1=APanel.Path -- panel.GetCmdLine(nil)
panel.SetCmdLine(nil, drl1)
end;
condition=function()
return APanel.Plugin and win.Uuid(panel.GetPanelInfo(nil, 1).OwnerGuid) == '42e4aeb1-a230-44f4-b33c-f195bb654931'
end;
}
Годится, а будет время упростим чтобы исключить любую возможность сбоев.
Доработано сохранение текущей командной строки, например, для добавления к команде текущего пути:
-- NetBox_Ctrl[.lua - © dev256.com, 2018.10.05, использованы примеры с форума
---Ver. 20181008
local NBID="42E4AEB1-A230-44F4-B33C-F195BB654931"
local NBMID="76BD423A-3EC0-47B3-BA31-1D17F49124D5"
Macro {
area="Shell"; key="Ctrl["; description="Ctrl[ for NetBox."; action=function() -- flags="NotEmptyCommandLine";
panel.SetCmdLine(nil, CmdLine.Value..APanel.Path)
end;
condition=function()
return APanel.Plugin and win.Uuid(panel.GetPanelInfo(nil, 1).OwnerGuid) == '42e4aeb1-a230-44f4-b33c-f195bb654931'
end;
}
Нужно учесть, что Макрос работает только для левой панели. Для правой панели остался прежний механизм. Кому нужно и для правой панели вот Макрос:
-- NetBox_Ctrl[Ctrl].lua - © dev256.com, 2018.10.08, использованы примеры с форума и отсюда: https://github.com/michaellukashov/Far-NetBox/issues/109#issuecomment-61585783
---Ver. 20181008
local NBID="42E4AEB1-A230-44F4-B33C-F195BB654931"
local NBMID="76BD423A-3EC0-47B3-BA31-1D17F49124D5"
Macro {
area="Shell"; key="Ctrl["; description="Ctrl[ for NetBox."; action=function()
local panelPath=""
if (APanel.Left) then
panelPath=APanel.Path
else
panelPath=PPanel.Path
end
panel.SetCmdLine(nil, CmdLine.Value..panelPath)
end;
condition=function()
return (APanel.Plugin and win.Uuid(panel.GetPanelInfo(nil, 1).OwnerGuid) == '42e4aeb1-a230-44f4-b33c-f195bb654931') or (PPanel.Plugin and win.Uuid(panel.GetPanelInfo(nil, 0).OwnerGuid) == '42e4aeb1-a230-44f4-b33c-f195bb654931')
end;
}
Macro {
area="Shell"; key="Ctrl]"; description="Ctrl] for NetBox."; action=function()
local panelPath=""
if (APanel.Left) then
panelPath=PPanel.Path
else
panelPath=APanel.Path
end
panel.SetCmdLine(nil, CmdLine.Value..panelPath)
end;
condition=function()
return (APanel.Plugin and win.Uuid(panel.GetPanelInfo(nil, 1).OwnerGuid) == '42e4aeb1-a230-44f4-b33c-f195bb654931') or (PPanel.Plugin and win.Uuid(panel.GetPanelInfo(nil, 0).OwnerGuid) == '42e4aeb1-a230-44f4-b33c-f195bb654931')
end;
}
Да, я бы примерно схоже поступил - дописать новое значение к уже имеющемуся в комстроке. А кому нужно пусть сам стирает лишнее в его случае.
После обновления farmanager по горячим клавишам Ctrl+[ стал добавлять перед путем IP адрес и Слеш, т.е. стал так
XXX.XXX.XXX.XXX//var/lib/
очень неудобно стало.Кроме того не работает
cd XXX.XXX.XXX.XXX//var/lib
Как вернуть предыдущий вариант работы, когда вставлялся путь без IP:
/var/lib/
?