RecentScreens — переключение между окнами как в MS Windows™
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 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: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
P.S.
В тексте осталась пара ассертов, думаю не повредят.
В тексте осталась пара ассертов, думаю не повредят.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Если не отображать список, то теряется обратная связь, и тогда может раздражать кажущаяся непредсказуемость переключения.
"Кажущаяся" в том смысле, что за годы использования CtrlTab неизбежно сложился стереотип, и визуальный контроль помогает его преодолеть.
К тому же во всех известных мне приложениях список отображается.
Но я подумаю о такой опции.
P.S.
Без списка было бы в 2 раза меньше кода )
"Кажущаяся" в том смысле, что за годы использования CtrlTab неизбежно сложился стереотип, и визуальный контроль помогает его преодолеть.
К тому же во всех известных мне приложениях список отображается.
Но я подумаю о такой опции.
P.S.
Без списка было бы в 2 раза меньше кода )
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: RecentScreens — переключение между окнами как в MS Windo
Обычно, если отображается список, то переключение происходит в момент отпускания префиксной клавиши. А в Вашем макросе переключение происходит сразу, т.ч. непредсказуемости нет.John Doe wrote:К тому же во всех известных мне приложениях список отображается
-
- Posts: 6834
- 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:Если не отображать список, то теряется обратная связь, и тогда может раздражать кажущаяся непредсказуемость переключения.
"Кажущаяся" в том смысле, что за годы использования CtrlTab неизбежно сложился стереотип, и визуальный контроль помогает его преодолеть.
К тому же во всех известных мне приложениях список отображается.
2. SciTE и ZeroBrane Studio - при переключении список окон не отображается.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Действительно.Max Rusov wrote:Обычно, если отображается список, то переключение происходит в момент отпускания префиксной клавиши. А в Вашем макросе переключение происходит сразу, т.ч. непредсказуемости нет.
Значит сделаем.
P.S.
Эх, надеялся что всё уже, а теперь ещё придётся подумать над третьим вариантом (переключением в момент отпускания)
:-)
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Как же выходите из положения?Shmuel wrote:Я так и не смог привыкнуть к родной последовательности переключения Фара
И действительно ли список раздражает? (вопрос ко всем)
-
- Posts: 6834
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: RecentScreens — переключение между окнами как в MS Windo
Работаю в редакторе SciTE.John Doe wrote:Как же выходите из положения?Shmuel wrote:Я так и не смог привыкнуть к родной последовательности переключения Фара
Если переключаемых окон всего 2, например, то список вообще лишний. Поэтому и раздражает, и кроме того, он ярче фона редактора. Мелькает зря.John Doe wrote:И действительно ли список раздражает? (вопрос ко всем)
Но когда открытых окон больше, список становится более полезен.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
А если так?Shmuel wrote:Если переключаемых окон всего 2, например, то список вообще лишний.
Code: Select all
action=function()
if #Screens==2 then Keys("CtrlTab") return end
...
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: RecentScreens — переключение между окнами как в MS Windo
Меня больше раздражает то, что строка "Panels:..." заканчивается именем файла (текущего файла в панели). Это делает ее трудноотличимой от собственно файла, и я путаюсь. Было бы логичнее, чтобы "Panels:..." содержал только имя каталога. Это относится и к диалогу F12, конечно, но там она всегда первая - легче ориентироваться.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Согласен.
Подправить:
А перед ней добавить
Подправить:
Code: Select all
w.text = ("&%d. %-9s %1s %s"):format(w.Pos-1,w.TypeName,EditorSaved==0 and "*" or "" ,name)
Code: Select all
local name = (w.Type == F.WTYPE_PANELS) and mf.fsplit(w.Name,0x1+0x2) or w.Name
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: RecentScreens — переключение между окнами как в MS Windo
Еще пожелание: если пользоваться макросами прямого переключения окон (Alt1, Alt2...) то переключение через RecentScreens ломается. Если возможно, хотелось бы, чтобы макросы прямого переключения окон были интегрированы в RecentScreens и совместимы с ним.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
RecentScreens — переключение между окнами как в MS Windo
Я ими не пользуюсь, потому как они конфликтуют с быстрым поиском.
Но попробуйте так: P.S.
Плохо что в фаре не предусмотрены события при переключении экранов.
Есть GOTFOCUS, но только для редактора/вьювера (не в панелях), и срабатывает на кучу всего лишнего (закрытие диалогов)
Но попробуйте так: P.S.
Плохо что в фаре не предусмотрены события при переключении экранов.
Есть GOTFOCUS, но только для редактора/вьювера (не в панелях), и срабатывает на кучу всего лишнего (закрытие диалогов)
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
RecentScreens r1
Обновил шапку, с учётом приведённых выше изменений, пусть это будет r1
Макрос-замена AltScreens.lua находится в конце, кому надо раскомментируйте, добавлением ещё одного минуса перед --[[
Макрос-замена AltScreens.lua находится в конце, кому надо раскомментируйте, добавлением ещё одного минуса перед --[[