Page 1 of 2
Закрытие вкладки + закрытие редактора
Posted: 09.10.2023 19:47
by berserker
Пытаюсь прикрутить CudaText вместо редактора Far Manager, возникла проблема с захламлением вкладок. В файловом менеджере (Far, Total Commander) часто открываешь много разных файлов, редактируешь (или не редактируешь) пару символов и закрываешь. Использование обычно такого вида: выбрал файл, нажал F4, подправил что-то, Esc, перешёл к другому файлу, F4, отредактировал, вышел. Проблема в том, что если включить в CudaText выход по Esc, то вкладка открытого файла всё-равно остаётся и при следующем открытии. Таким образом если пройтись по десятку-другому файлов то в сессии накапливается десяток-другой вкладок. Это неудобно.
Можно ли как-то сделать так (плагином, например), чтобы при выходе из редактора по Esc, закрывался не только редактор, но и активная вкладка?
С такой ф-цией было бы удобно использовать CudaText как основной редактор файлового менеджера - если какой-то файл требуется оставить для редактирование, то назад в файловый менеджер переключается по Alt+Tab, а если это быстрое редактирование то выходим по Esc и следы этого файла в сессии не остаются.
Re: Закрытие вкладки + закрытие редактора
Posted: 11.10.2023 17:14
by main Alexey
да, можно так сделать. это все по опциям.
опции которые надо подергать (менять в user.json):
ui_reopen_session_cmdline (может хватить этой одной)
ui_reopen_session
ui_auto_save_session
Re: Закрытие вкладки + закрытие редактора
Posted: 12.10.2023 07:30
by berserker
Основная загвоздка, которую я не понимаю как реализовать без форка самого редактора это как повесить такое действие на Esc? Ведь по Esc там куда других действий в зависимости от контекста - закрытие окна поиска, отмена лишних курсоров, итд. Так то просто закрытие вкладки + закрытие редактора можна и плагином сделать.
Re: Закрытие вкладки + закрытие редактора
Posted: 12.10.2023 07:38
by main Alexey
не пойму, а вы видели опции:
ui_esc_close
ui_esc_close_console
ui_esc_close_finder
? они же работают, да?
Re: Закрытие вкладки + закрытие редактора
Posted: 12.10.2023 10:19
by berserker
Работают, в том то и дело, но они конфликтуют с тем, что я хочу.
Если описать проще, я хочу, чтобы при выходе из редактора по Esc закрывалась текущая открытая вкладка в нём, то есть Esc = закрытие вкладки + выход. Закрытия вкладки + выход я так понимаю можно сделать без проблем и макросами и плагином, проблема возникает, когда я это комбинированное действие пытаюсь назначить на Esc - оно конфликтует с этими другими действиями - закрытие файндера, итд. Как назначить своё действие на Esc, но не терять возможность закрывать по Esc файндер, лишние курсоры, итд?
Re: Закрытие вкладки + закрытие редактора
Posted: 13.10.2023 08:25
by main Alexey
реацкия на Esc зашита в код. конфликт будет всегда. хотя можно попробовать обработать VK_ESCAPE (=27, см модуль cudatext_keys.py) в событии on_key.
лучше всего поменяйте опцию "сохранять сессию на выходе" (одна из опций которую я уже привел выше). это поможет?
Re: Закрытие вкладки + закрытие редактора
Posted: 16.10.2023 08:04
by berserker
main Alexey wrote: ↑13.10.2023 08:25
реацкия на Esc зашита в код. конфликт будет всегда. хотя можно попробовать обработать VK_ESCAPE (=27, см модуль cudatext_keys.py) в событии on_key.
Да, это то что мне нужно, т.к. мне ещё при выходе скорее всего для удобство понадобится вернуть фокус на Far Manager.
Я так понимаю в обработке VK_ESCAPE мне нужно проверить, открыт ли finder, открыта ли консоль, и есть ли множественные курсоры, и только в таком случае выполнить своё действие? Или on_key не сработает если одно из этих условий выполняется?
Re: Закрытие вкладки + закрытие редактора
Posted: 16.10.2023 09:25
by main Alexey
в обработке VK_ESCAPE мне нужно проверить, открыт ли finder, открыта ли консоль, и есть ли множественные курсоры, и только в таком случае выполнить своё действие?
нет, не надо это проверять, можно просто реагировать на on_key.
и потом нет АПИ для проверки "открыт ли finder".
для "открыта ли консоль" есть app_proc().
Или on_key не сработает если одно из этих условий выполняется?
наверное сработает всегда.
Re: Закрытие вкладки + закрытие редактора
Posted: 16.10.2023 11:26
by berserker
а как сделать, чтобы в плагине метод on_key вызывался? Я добавил в класс Command метод def on_key(self, ed_self, key, state):
не не похоже, чтобы он вызывался. нужно что-то где-то ещё прописать?
Re: Закрытие вкладки + закрытие редактора
Posted: 16.10.2023 14:23
by main Alexey
да, прописать в файле install.inf.
так же как это делает плагин MakePlugin в делаемых плагинах.