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

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

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

Post by 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:
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 » 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: 1770
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

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

Post by Wave » Mon 18 Jul, 2011 12:31

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

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

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

Post by HaRT » Mon 18 Jul, 2011 12:38

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

DV
Posts: 367
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 12 times
Been thanked: 3 times

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

Post by DV » Mon 18 Jul, 2011 13:04

HaRT wrote:Лично у меня подобное дано назначено на AltPgUp.
Но где же сам макрос? ;)

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

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

Post by HaRT » Mon 18 Jul, 2011 13:26

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

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

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

Post by Maximus5 » Mon 18 Jul, 2011 14:19

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

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

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

Post by 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)

Post by igor_andreev » Tue 19 Jul, 2011 07:09

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

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

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

Post by 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: 1770
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

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

Post by Wave » Wed 20 Jul, 2011 22:18

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

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

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

Post by 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: 367
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 12 times
Been thanked: 3 times

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

Post by DV » Thu 21 Jul, 2011 08:38

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

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

DV
Posts: 367
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 12 times
Been thanked: 3 times

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

Post by DV » Fri 13 Dec, 2013 16:41

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

Shmuel
Posts: 5897
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 218 times

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

Post by Shmuel » Fri 13 Dec, 2013 16:55

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

Shmuel
Posts: 5897
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 218 times

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

Post by Shmuel » Sun 15 Dec, 2013 18:28

DV wrote:Портировал ли кто этот (или подобный) макрос под FAR3?
Независимая реализация той же функциональности + выравнивание по правому краю слишком длинных пунктов меню:

Примечание модератора:
Код макроса перенесён в шапку темы.
Last edited by Shmuel on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Edit

Post Reply

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