RecentScreens — переключение между окнами как в MS Windows™
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
RecentScreens — переключение между окнами как в MS Windows™
В большинстве приложений, которые я использую, переключение между окнами происходит в порядке их использования (MRU order).
Но не во всех, пример исключений: FAR manager, Google Chrome.
Для решения этой проблемы в фаре был когда-то такой плагинчик RecentScreens — меню «Экраны» в порядке использования
Вашему вниманию предлагается LuaMacro-реализация подобной функциональности.
Переключение окон-экранов по умолчанию заменяет LCtrlTab (только левый Ctrl).
В отличии от обычного переключения экранов — в процессе переключения может отображаться список окон (до тех пор, пока удерживается Ctrl).
Требуется FAR3 build 5547 или новее.
[download] https://chiselapp.com/user/johnd0e/repo ... creens.lua
Но не во всех, пример исключений: FAR manager, Google Chrome.
Для решения этой проблемы в фаре был когда-то такой плагинчик RecentScreens — меню «Экраны» в порядке использования
Вашему вниманию предлагается LuaMacro-реализация подобной функциональности.
Переключение окон-экранов по умолчанию заменяет LCtrlTab (только левый Ctrl).
В отличии от обычного переключения экранов — в процессе переключения может отображаться список окон (до тех пор, пока удерживается Ctrl).
Требуется FAR3 build 5547 или новее.
[download] https://chiselapp.com/user/johnd0e/repo ... creens.lua
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Latest post of the previous page:
Это обрезание так упрощёно работает, строка 198Пометил себе.
Update
Нет, с обрезанием всё в порядке.
А описанный эффект возникает от того, что курсор стоит на элементе ".."
Нажмите F12, увидите.
Предлагаю такое решение:
Code: Select all
local name = (w.Type==F.WTYPE_PANELS) and APanel.Path.."\\" or w.Name
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: RecentScreens — переключение между окнами как в MS Windo
F12 показывает элемент под курсором, ему простительно. А сабж показывает текущую папку, независимо от элемента под курсором, следовательно, это - баг.John Doe wrote:описанный эффект возникает от того, что курсор стоит на элементе ".."
Нажмите F12, увидите.
Я абсолютно в код не заглядывал. Мне (как пользователю) надо, чтоб правильно работало.John Doe wrote:Предлагаю такое решение: [....]
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Вроде я указал как и где можно 'исправить' этот т.н. 'баг', не?
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: RecentScreens — переключение между окнами как в MS Windo
1. Если "т.н.", то вы не считаете это багом?John Doe wrote:Вроде я указал как и где можно 'исправить' этот т.н. 'баг', не?
2. Такими вещами не занимаюсь, то-есть при наличии развивающегося плагина/скрипта, я не буду править что-то сам, а затем делать merge с новыми версиями. Либо беру готовое, либо не пользуюсь.
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
1. Баг это когда функция работает иначе, чем заявлено. А заявлено было не много.
Для меня это вообще не функция, но раз люди просят, почему бы и нет
2. У себя я исправил.
Для меня это вообще не функция, но раз люди просят, почему бы и нет
2. У себя я исправил.
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: RecentScreens — переключение между окнами как в MS Windo
Мне одному кажется, что “MS Windows™” в заголовке темы не слишком удачно?
Во-первых, реализованный способ не специфичен для Винды; во-вторых, не вполне ясно, в каком смысле “как” (например, где трёхмерные аэро-эффекты?!).
Я бы предложил термин MRU order. К сожалению, общепринятого русскоязычного термина не знаю, Майкрософт тоже не блещет.
Во-первых, реализованный способ не специфичен для Винды; во-вторых, не вполне ясно, в каком смысле “как” (например, где трёхмерные аэро-эффекты?!).
Я бы предложил термин MRU order. К сожалению, общепринятого русскоязычного термина не знаю, Майкрософт тоже не блещет.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
'MRU' настолько устойчиво ассоциируется с 'list', что я с удивлением обнаружил что предложенный вами термин тоже используется.
А для русского языка тем более нет термина, так что приходится на пальцах, "как в Opera", "как в Visual Studio", "как в Windows".
"Переключение между окнами в порядке их использования" тоже коряво.
Я исходил из того, что разницу в порядке переключения окон в фаре и в Windows видят все (а фар и Windows есть у каждого).
А для русского языка тем более нет термина, так что приходится на пальцах, "как в Opera", "как в Visual Studio", "как в Windows".
"Переключение между окнами в порядке их использования" тоже коряво.
Я исходил из того, что разницу в порядке переключения окон в фаре и в Windows видят все (а фар и Windows есть у каждого).
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: RecentScreens — переключение между окнами как в MS Windo
Согласен.John Doe wrote:"Переключение между окнами в порядке их использования" тоже коряво.
Можно что-нибудь в духе порядок «недавние первее», или «недавние выше» или «недавние ближе»…
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Вы находите это лучше?HaRT wrote:Можно что-нибудь в духе порядок «недавние первее», или «недавние выше» или «недавние ближе»…
И кто поймёт?2useven10 wrote:LRU и MRU переводить не надо, как и Windows.
RecentScreens и то понятнее
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
RecentScreens r2.11
r2.11
- для панелей отображается текущий путь, независимо от элемента под курсором
- теперь игнорируются события QView
PS
- для панелей отображается текущий путь, независимо от элемента под курсором
- теперь игнорируются события QView
PS
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
RecentScreens — переключение между окнами как в MS Windo
На плагиновых панелях F12 показывает чёрт-те что (баг там).Shmuel wrote:F12 показывает элемент под курсором, ему простительно. А сабж показывает текущую папку, независимо от элемента под курсором
А макрос показывает путь от корня плагиновой панели.
Если у вас иное видение, то дайте знать.
Желательно вместе с кодом.
Re: RecentScreens — переключение между окнами как в MS Windo
Code: Select all
╔═══════════════════════════════════════════════════════════════ LuaMacro ════════════════════════════════════════════════════════════════╗
║ ...\FAR3\Profile\Macros\scripts\SimSU\RecentScreens.lua:261: View0/Просмотр0 ║
║ stack traceback: ║
║ ○[C]: in function 'assert' ║
║ ○...\FAR3\Profile\Macros\scripts\SimSU\RecentScreens.lua:261: in function <...\FAR3\Profile\Macros\scripts\SimSU\RecentScreens.lua:257> ║
╟─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║ { OK } ║
╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
Проблема фары №1: нет печати "из коробки"
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
RecentScreens r2.15
r2.15
- исправлена работа при языках интерфейса отличных от English
Есть косметический дефект, вызванный неюникодностью функции format.
Пока не трогаю, возможно стоит исправить format.
Update
Временный фикс.
Перед строкой 205 надо вставить это:
Update 2
Функция format исправлена в FAR build 3349
- исправлена работа при языках интерфейса отличных от English
Есть косметический дефект, вызванный неюникодностью функции format.
Пока не трогаю, возможно стоит исправить format.
Update
Временный фикс.
Перед строкой 205 надо вставить это:
Code: Select all
w.TypeName = w.TypeName..(" "):rep(10-w.TypeName:len())
Функция format исправлена в FAR build 3349
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
RecentScreens r3
r3
- Пользовательские настройки теперь хранятся в базе LuaMacro, сохраняются при любом изменении.
- Изменить их можно интерактивно, делается это прямо в списке окон,
горячие клавиши (цифровая клавиатура) перечислены на рамке, помощь доступна по F1
/Возможно у кого-то на клавиатуре отсутствует NumPad, дайте знать, добавлю другие хоткеи/ - Если даже отображение списка отключено, то его всегда можно вызвать по CtrlF12
/Кроме того меню всегда показывается при вызове из единственного окна, и в модальных редакторах/вьюверах/ - При закрытии какого-либо окна перемещаемся в "предыдущее" (в смысле MRU)
- Окна "нумеруются" как в Screens: 0-9,A-Z
Первые 36 окон можно вызвать по хоткею /[RL]Ctrl\w/ - Панели в списке дополнительно помечаются
- При загрузке проверяется билд фара (в последних билдах были важные исправления)
/Если хотите остаться на "стабильном" 3355 - можно изменить значение minfarbuild, в начале скрипта/
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: RecentScreens — переключение между окнами как в MS Windo
Code: Select all
local switchInstant = S.switchInstant==nil and true or S.switchInstant
Code: Select all
local Lock = { ['Num']=0, ['Caps']=1, ['Scroll']=2 }
Code: Select all
local Lock = { Num=0, Caps=1, Scroll=2 }