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

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

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

Postby Shmuel » Mon 18 Jul, 2011 11:47

DV wrote:Портировал ли кто этот (или подобный) макрос под FAR3?

Независимая реализация той же функциональности + выравнивание по правому краю слишком длинных пунктов меню:
  1. local function FillTable(t, path)
  2.   while true do
  3.     path = path:match("(.*)\\[^\\]+$")
  4.     if path==nil then break end
  5.     t[#t+1] = {path=path.."\\"}
  6.   end
  7. end
  8.  
  9. local function ShowMenu()
  10.   local items = {}
  11.   if APanel.Plugin then
  12.     FillTable(items, APanel.Path)
  13.     if items[1] then items[#items+1] = { separator=true } end
  14.     items[#items+1] = { path=APanel.Path0 }
  15.   end
  16.   FillTable(items, APanel.Path0)
  17.   if items[1] then
  18.     for k,v in ipairs(items) do
  19.       if v.path then
  20.         local extra = v.path:len() - Far.Width + 8
  21.         v.text = extra<=0 and v.path or "..."..v.path:sub(extra+4)
  22.       end
  23.     end
  24.     local item = far.Menu({Title="Go to ..."}, items)
  25.     if item then Panel.SetPath(0, item.path) end
  26.   end
  27. end
  28.  
  29. Macro {
  30.   description="Menu with list of parent directories (CD up)";
  31.   area="Shell"; key="CtrlBS";
  32.   condition=function() return CmdLine.Empty and APanel.Visible end;
  33.   action=ShowMenu;
  34. }


Есть и ещё одна реализация на основе этого кода: GoUp.
HaRT wrote:Представляю на суд общественности свой вариант, сделанный на основе выложенного в шапке.
Отличия:
1. Добавлены горячие клавиши от 0 до Z, далее просто выравнивание пробелами.
2. Выбор элемента означает не переход в директорию, а переход на директорию — об этом напоминает отсутствие разделителя (‘\’) на концах путей.
3. При попытке перехода на саму букву диска открывается меню дисков.
4. Макрос назначен на AltPgUp.
Last edited by HaRT on Tue 10 May, 2016 18:49, edited 1 time in total.
Reason: Добавлен и анонс скрипта GoUp

User avatar
Kerberos464
Posts: 1238
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 17 times
Been thanked: 1 time

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

Postby Kerberos464 » Mon 18 Jul, 2011 12:16

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: 1705
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

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

Postby Wave » Mon 18 Jul, 2011 12:31

Не работает на нефайловых панелях. В частности, на RegBrowser. Ну и на Bs лично у меня висит гораздо более привычный CtrlPgUp. Этот повесил на CtrlBs в обвязке с ещё одним.
Пользуюсь ФАРом больше 15 лет © собирательный.

User avatar
HaRT
Moderator
Posts: 7953
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

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

Postby HaRT » Mon 18 Jul, 2011 12:38

Лично у меня подобное дано назначено на AltPgUp.
Фар есть инструмент, а не нянька. © 2009 DrKnS

DV
Posts: 280
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 1 time
Been thanked: 2 times

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

Postby DV » Mon 18 Jul, 2011 13:04

HaRT wrote:Лично у меня подобное дано назначено на AltPgUp.

Но где же сам макрос? ;)

User avatar
HaRT
Moderator
Posts: 7953
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

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

Postby HaRT » Mon 18 Jul, 2011 13:26

DV wrote:Но где же сам макрос? ;)
У меня не макрос, а скрипт для SHPCE (мир его праху).
Да к тому же вроде бы похожая функциональность уже была реализована в плагине HotDir.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Maximus5
Posts: 3291
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Postby Maximus5 » Mon 18 Jul, 2011 14:19

макрос, поддерживающий плагиновые панели
Attachments
ParentUp.fml.7z
(611 Bytes) Downloaded 140 times

User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

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

Postby DAtaMan » Mon 18 Jul, 2011 20:17

: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)

Postby igor_andreev » Tue 19 Jul, 2011 07:09

Вах, как сразу удобно стало, всем спасибо :)

User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

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

Postby DAtaMan » Wed 20 Jul, 2011 20:55


1. Добавлены хоткеи.
2. Возможна пометка нескольких путей. Тогда 1-ый отмеченный сверху - путь для активной панели, 2-ой - для пассивной.
2B OR NOT 2B = FF (Иногда code - это просто код. Почти Дйерф Омолш Днумзигис)
To ban or not to ban, that is the question. ©

User avatar
Wave
Posts: 1705
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

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

Postby Wave » Wed 20 Jul, 2011 22:18

Макролиб ругается на FSPLIT_NAME (подозреваю, что следом ругнётся и на FSPLIT_EXT).
Пользуюсь ФАРом больше 15 лет © собирательный.

User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

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

Postby DAtaMan » Wed 20 Jul, 2011 23:06

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: 280
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 1 time
Been thanked: 2 times

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

Postby DV » Thu 21 Jul, 2011 08:38

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

Что умеет: находясь внутри архива (плагин arclite) или же реестра (плагин registry), показывает двойной список "родительских" папок - сначала для плагиновой панели, потом для файловой панели, позволяя "выпрыгнуть" из архива в любую реальную папку выше. Также добавлена некоторая "магия" для исключения элементов "\" и "\\" из списка для плагина network.
Не умеет: показывать буквы дисков, но это можно прикрутить по желанию :)

DV
Posts: 280
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 1 time
Been thanked: 2 times

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

Postby DV » Fri 13 Dec, 2013 16:41

Портировал ли кто этот (или подобный) макрос под FAR3?

Shmuel
Posts: 4997
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 132 times

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

Postby Shmuel » Fri 13 Dec, 2013 16:55

DV wrote:Портировал ли кто этот (или подобный) макрос под FAR3?

Только что, конвертером.

Shmuel
Posts: 4997
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 132 times

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

Postby Shmuel » Sun 15 Dec, 2013 18:28

DV wrote:Портировал ли кто этот (или подобный) макрос под FAR3?

Независимая реализация той же функциональности + выравнивание по правому краю слишком длинных пунктов меню:

Примечание модератора:
Код макроса перенесён в шапку темы.
Last edited by John Doe on Wed 18 Dec, 2013 12:07, edited 1 time in total.
Reason: Edit


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

Who is online

Users browsing this forum: No registered users and 1 guest