Меню со списком родительских папок (CD up)

Здесь выкладываются готовые к использованию макросы и скрипты.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Меню со списком родительских папок (CD up)

Post by Shmuel »

DV wrote:Портировал ли кто этот (или подобный) макрос под FAR3?
Независимая реализация той же функциональности + выравнивание по правому краю слишком длинных пунктов меню:
  1. local function FillTable(t, path)
  2.  
  3.   while true do
  4.  
  5.     path = path:match("(.*)\\[^\\]+$")
  6.  
  7.     if path==nil then break end
  8.  
  9.     t[#t+1] = {path=path.."\\"}
  10.  
  11.   end
  12.  
  13. end
  14.  
  15.  
  16.  
  17. local function ShowMenu()
  18.  
  19.   local items = {}
  20.  
  21.   if APanel.Plugin then
  22.  
  23.     FillTable(items, APanel.Path)
  24.  
  25.     if items[1] then items[#items+1] = { separator=true } end
  26.  
  27.     items[#items+1] = { path=APanel.Path0 }
  28.  
  29.   end
  30.  
  31.   FillTable(items, APanel.Path0)
  32.  
  33.   if items[1] then
  34.  
  35.     for k,v in ipairs(items) do
  36.  
  37.       if v.path then
  38.  
  39.         local extra = v.path:len() - Far.Width + 8
  40.  
  41.         v.text = extra<=0 and v.path or "..."..v.path:sub(extra+4)
  42.  
  43.       end
  44.  
  45.     end
  46.  
  47.     local item = far.Menu({Title="Go to ..."}, items)
  48.  
  49.     if item then Panel.SetPath(0, item.path) end
  50.  
  51.   end
  52.  
  53. end
  54.  
  55.  
  56.  
  57. Macro {
  58.  
  59.   description="Menu with list of parent directories (CD up)";
  60.  
  61.   area="Shell"; key="CtrlBS";
  62.  
  63.   condition=function() return CmdLine.Empty and APanel.Visible end;
  64.  
  65.   action=ShowMenu;
  66.  
  67. }
Есть и ещё одна реализация на основе этого кода: GoUp.
HaRT wrote: Mon 09 May, 2016 21:05Представляю на суд общественности свой вариант, сделанный на основе выложенного в шапке.
Отличия:
1. Добавлены горячие клавиши от 0 до Z, далее просто выравнивание пробелами.
2. Выбор элемента означает не переход в директорию, а переход на директорию — об этом напоминает отсутствие разделителя (‘\’) на концах путей.
3. При попытке перехода на саму букву диска открывается меню дисков.
4. Макрос назначен на AltPgUp.
Last edited by Shmuel on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлен и анонс скрипта GoUp
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: Меню со списком родительских папок (CD up)

Post by Kerberos464 »

DV wrote:Помнится, был такой плагин - CDup - позволяющий прыгать из текущей папки в любую родительскую, вплоть до корня диска.
Теперь, с появлением макрофункции Menu.Show, это стало возможно и без плагина:

Code: Select all

$If (CmdLine.Empty && APanel.Visible && !APanel.Plugin) %mm = ""; %p = APanel.Path; %i = rindex(%p,"\\"); $While (%i >= 2) %p = substr(%p,0,%i); %mm = %mm + %p + "\\\r\n"; %i = rindex(%p,"\\"); $End $If (%mm != "") %p = Menu.Show(%mm, "Go to ..."); $If (%p != "") panel.setpath(0,%p); $End $End $End
Вешаем макрос на клавишу BS - и вуаля!
спасибо, удобно! :)
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: Меню со списком родительских папок (CD up)

Post by Wave »

Не работает на нефайловых панелях. В частности, на RegBrowser. Ну и на Bs лично у меня висит гораздо более привычный CtrlPgUp. Этот повесил на CtrlBs в обвязке с ещё одним.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Re: Меню со списком родительских папок (CD up)

Post by HaRT »

Лично у меня подобное дано назначено на AltPgUp.
Фар есть инструмент, а не нянька. © 2009 DrKnS
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

Re: Меню со списком родительских папок (CD up)

Post by DV »

HaRT wrote:Лично у меня подобное дано назначено на AltPgUp.
Но где же сам макрос? ;)
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Re: Меню со списком родительских папок (CD up)

Post by HaRT »

DV wrote:Но где же сам макрос? ;)
У меня не макрос, а скрипт для SHPCE (мир его праху).
Да к тому же вроде бы похожая функциональность уже была реализована в плагине HotDir.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Меню со списком родительских папок (CD up)

Post by Maximus5 »

макрос, поддерживающий плагиновые панели
Attachments
ParentUp.fml.7z
(611 Bytes) Downloaded 296 times
User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

Re: Меню со списком родительских папок (CD up)

Post by DAtaMan »

:crazy:
Во флагах макроса:

Code: Select all

[ ] Командная строка
Вроде работает в редакторах реестра, ArcLite и Observer.
2B OR NOT 2B = FF (Иногда code - это просто код. Почти Дйерф Омолш Днумзигис)
To ban or not to ban, that is the question. ©
igor_andreev
Posts: 6
Joined: Tue 22 Jun, 2010 08:02

Re: Меню со списком родительских папок (CD up)

Post by igor_andreev »

Вах, как сразу удобно стало, всем спасибо :)
User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

Re: Меню со списком родительских папок (CD up)

Post by DAtaMan »


1. Добавлены хоткеи.
2. Возможна пометка нескольких путей. Тогда 1-ый отмеченный сверху - путь для активной панели, 2-ой - для пассивной.
2B OR NOT 2B = FF (Иногда code - это просто код. Почти Дйерф Омолш Днумзигис)
To ban or not to ban, that is the question. ©
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: Меню со списком родительских папок (CD up)

Post by Wave »

Макролиб ругается на FSPLIT_NAME (подозреваю, что следом ругнётся и на FSPLIT_EXT).
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

Re: Меню со списком родительских папок (CD up)

Post by DAtaMan »

Wave wrote:Макролиб ругается на FSPLIT_NAME (подозреваю, что следом ругнётся и на FSPLIT_EXT).
Даже если импортировать "Addons\Macros\MacroConsts.reg" ?
2B OR NOT 2B = FF (Иногда code - это просто код. Почти Дйерф Омолш Днумзигис)
To ban or not to ban, that is the question. ©
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

Re: Меню со списком родительских папок (CD up)

Post by DV »

Раз уж пошла такая пьянка :) то вот расширенный вариант самого первого макроса:

Что умеет: находясь внутри архива (плагин arclite) или же реестра (плагин registry), показывает двойной список "родительских" папок - сначала для плагиновой панели, потом для файловой панели, позволяя "выпрыгнуть" из архива в любую реальную папку выше. Также добавлена некоторая "магия" для исключения элементов "\" и "\\" из списка для плагина network.
Не умеет: показывать буквы дисков, но это можно прикрутить по желанию :)
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

Re: Меню со списком родительских папок (CD up)

Post by DV »

Портировал ли кто этот (или подобный) макрос под FAR3?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Меню со списком родительских папок (CD up)

Post by Shmuel »

DV wrote:Портировал ли кто этот (или подобный) макрос под FAR3?
Только что, конвертером.
Post Reply

Return to “Полезные макросы и скрипты”