Page 1 of 2

переключение вкладок в порядке последнего использования

Posted: Fri Mar 25, 2011 1:00 am
by timd
поискал форум, но так и не нашел четкого ответа на вопрос

можно ли добиться в AkelPad, чтобы по нажатию Ctrl+Tab вкладки переключались в порядке последнего использования (last used order tab switching)? Еще бы хорошо было списочек вкладок при этом видеть. Т.е. одно нажатие указанного сочетания клавиш переключает на послдений файл, двойное - на предпослений и т.д.

На сегодняшний день такое поведение является де-факто промышленным стандартом, потому что большинство крупных продуктов либо поддерживают его (e.g. FireFox), либо используют по умолчанию (e.g. Windows Task Switcher, NetBeans, Opera,...). А также наиболее продуктивным способом работы с множеством документов.

Находил подобную тему на форуме, но она уже почти 2х летней давности. Там ни к чему не пришли. Потом были какие-то близкие по теме обсуждения, но ясности они не внесли.

AkelPad нам очень нравится, но без этой функции у нас нет шансов на его внедрене в работу в нашем коллективе. Отсутствие данной функции, с нашей точки зрения, делает данный программный продукт слишком непродуктивным.

спасибо.

Posted: Fri Mar 25, 2011 7:11 am
by VladSh
Попробуйте поиграться опциями: Окно -> Вкладки -> "Следующая-Предыдущая" и "Правая-Левая".
Также есть скрипты TabSwitch.js, tabsRightLeft.js, tabsNextPrevious.js, tabsSwitchAlt.js.
Думаю, что сможете подобрать что-то для себя.

Posted: Fri Mar 25, 2011 11:54 am
by timd
Спасибо за помощь.
Предложенные Вами опции не позволяют достичь желаемого эффекта. При попытке запуска скрипта выдается ошибка "script engine for file type .js not found". Плагины scripts и macros включены. Но сюдя по исходному коду, эти скрипты просто вызывают единоразовое переключение с как будто бы включенной той или иной опцией в главном меню.


Вот некоторое разъяснение

Опция "Следующая-Предыдущая" ислледовалась мною и ранее, но я так и не смог выяснить алгоритм ее работы. Проблема в том, что после переключения на вкладку, список вкладок как будто-бы не перестраивается, и со включенной опцией "Следующая-Предыдущая" порядок вкладок всегда остается один и тот же. Это похоже на то, как если бы с этой опцией редактор выстраивал список вкладок в порядке внесений первых изменений во вкладках, и далее использовал этот список на постоянной основе.

Смысл именно в том, чтобы каждый раз при переключении вкладок предыдущая активная вкладка динамически попадала на вершину списка. Если мы "прыгаем" на несколько вкладок "назад", то эта вкладка выдергивается из своей позиции в списке и помещается на самый верх, а все остальные просто сдвигаются вниз и т.д. И теперь если будет вызвано очередное переключение, то вкладки будут листаться "сверху-вниз" в этом списке. Алгоритм ведь очень простой; для любого языка программирования есть библиотеки, реализующие контейнеры с подобным поведением.

Если это объяснение всё равно недоходчиво, предлагаю провести следующий эксперимент: запустить много программ под виндовс (как минимум 4) и открыть такое же число вкладок в редакторе. Затем сравнить поведение переключателя задач виндовс по альт-таб и переключение вкладок в редакторе по ктрл-таб.

Posted: Fri Mar 25, 2011 2:49 pm
by Instructor
timd
Для вашего запроса подходит уже указаный скрипт TabSwitch.js.
"script engine for file type .js not found"
viewtopic.php?p=11623

Posted: Sat Mar 26, 2011 6:46 pm
by timd
да дейсвтительно, то что нужно.
спасибо огромное за помощь и за терпение непонятливого пользователя!

Posted: Wed Oct 29, 2014 12:07 am
by ABTOP
Хотелось бы для опции TabOptionsMDI в ini файле добавить ещё одно значение — "Переключаться между текущей вкладкой и последней использованной", а то крайне неудобно при редактировании двух фалов переключаться между ними по Ctrl +Tab, при условии, что открыто больше двух файлов. Если быть кратким, то сделать переключение между вкладками как в современных браузерах Firefox и т.д. А при отпукании Tab, но удерживание Ctrl выдавать список открытых на данный момент вкладок — опять же по аналогии с FireFox и прочими браузерами, и при последующем нажатии Tab перемещаться на нужную вкладку.
P.S Сейчас не понятна логика работы если TabOptionsMDI выставить в 65536 - GUI (переключаться между вкладками как Следующая-Предыдущая).
У меня при нажатии Ctrl +Tab происходит переключение с текущей вкладки (даже если она не последняя) на самую первую. А при нажатии Ctrl + Shift + Tab отрабатывает корректно. Обратил внимание, что если сначала нажать Ctrl + Shift + Tab, то по Ctrl + Tab переключать начинает корректно.
Но выше описанный вариант мне более предпочтителен.

Posted: Wed Oct 29, 2014 8:12 am
by Instructor
ABTOP
См. всё тот же скрипт TabSwitch.js - похоже он написан специально для вас :)

Posted: Wed Oct 29, 2014 9:11 am
by ABTOP
Instructor, благодарю. Получается, что так, универсальный скрит под мои запросы. :) А какое значение нужно присвоить TabOptionsMDI
65536 - GUI (переключаться между вкладками как Следующая-Предыдущая).
131072 - GUI (переключаться между вкладками как Правая-Левая)
чтобы переключалось как я хочу или это совершенно без разницы если запущен скрипт?
Ещё вопрос — а как заставить скрипт или несколько скриптов автозагружаться при старте AkelPad?

Posted: Wed Oct 29, 2014 8:28 pm
by ABTOP
Окно со списком фалов теперь отображается корректно.
А вот с переключением по Ctrl +Tab какая-то беда. Менял значение CtrlTab с true на false и Next с false на true и на -1, но результата это не дало. Всё равно не желает переключаться как мне надо. :(

Posted: Thu Oct 30, 2014 7:54 am
by Instructor
ABTOP
Просто назначьте скрипт на Ctrl+Tab (CtrlTab должен быть true).

Posted: Thu Oct 30, 2014 8:17 am
by ABTOP
Instructor, благодарю за помощь. теперь всё как надо. Уж простите меня за мою непонятливость, просто раньше не использовал в AkelPad скрипты. Вот и туплю.
P.S. Пользуюсь случаем хочу выразить благодарность за такой замечательный редактор и за высокую скорость реакции на пожелания пользователей. Удачи!

Posted: Fri Oct 31, 2014 5:38 pm
by ABTOP
Instructor, есть два неудобства — 1. При большом кол-ве открытых фалов окно списка выдаваемого по Ctrl + Tab уходит за нижнюю границу экрана и часть названий не видно. Пробовал скрывать "Панель задач", но нижнюю стрелку прокрутки всё равно не видно.
Image


2. Не видно на каком имени установлен курсор пока не нажмёшь ещё раз Ctrl+ Tab/ Ctrl + Shift +Tab, т.к. курсор находится на одну позицию выше самого верхнего видимого имени.

Posted: Sun Nov 02, 2014 6:56 pm
by Instructor
ABTOP wrote:есть два неудобства...
Реализовано. Будет доступно после релиза 4.9.1.

Posted: Thu Sep 03, 2015 8:20 pm
by Cuprum
Хотелось бы какой-то параметр в TabOptionsMDI, когда в фокусе одна вкладка и мы делаем правый клик на другой, чтобы эта вкладка не становилась активной (как в браузерах).

Posted: Thu Sep 03, 2015 8:58 pm
by Skif_off
Cuprum
А как тогда должно работать меню вкладки? А если запустить из него скрипт с %f, %d, или там GetEditWnd, GetEditModified, GetEditDoc, GetEditFile, GetEditModified?