Задать вопрос
andead
@andead
друпал девелопер, фрилансер

Как в Total Commander забиндить хоткей на открытие следующей/предыдуще папки?

Например есть такая стуктура:

C:\
-- dir1
---- dir2
---- dir3
---- dir4


Хочу, находясь в C:\dir1\dir3, с помощью хоткея перемещаться между соседними папками. Т.е. нажал например Ctrl+→, открылась следующая директория C:\dir1\dir4; нажал Ctrl+←, открылось предыдущая C:\dir1\dir2.
  • Вопрос задан
  • 154 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
andead
@andead Автор вопроса
друпал девелопер, фрилансер
Написал простенький скрипт на php, открывающий в командере следующую/предыдущую директорию - https://gist.github.com/xandeadx/6ca1b50235b93b4f9...
Ну а дальше добавил две кнопки - вперёд, назад:

5c83e2f61854a128513989.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DrYukon
@DrYukon
Администратор Комикслейта
Эти клавиши привязаны к клонированию пути текущей панели в неактивную и это часто бывает полезно. Лучше занимать менее важные клавиши, например, F9-F12. Следующая грань - Тотал не может делать такие вещи, как переход на соседа, поэтому тут помогает только скрипт на любом языке автоматизации (cron, AutoIt и им подобные). Скрипт на Автоите вот такой:
HotKeySet('{F9}', 'Prev')
HotKeySet('{F10}', 'Forv')
HotKeySet('{F11}', 'Stop')

While 1 ; цикл вечного ожидания действий
	Sleep(10)
WEnd

Func Prev()
	WinActivate("Total Commander") ; перейти в ТК
	Send("^{HOME}") ; выход в начало папки
	Send("{ENTER}") ; выход из папки
	Send("{UP}") ; переход выше
	Send("{ENTER}") ; заход в следующую папку
EndFunc

Func Forv()
	WinActivate("Total Commander") ; перейти в ТК
	Send("^{HOME}") ; выход в начало папки
	Send("{ENTER}") ; выход из папки
	Send("{DOWN}") ; переход ниже
	Send("{ENTER}") ; заход в следующую папку
EndFunc

Func Stop()
	Exit
EndFunc
Как следует из скрипта, по кнопке F9/F10 (учтите, это глобальный хоткей, до иных программ это нажатие не дойдёт) он будет переводить фокус на Тотал, в текущей панели (не проверяя, справа она, или слева; хотя это тоже можно добавить) перезаходить в предыдущую/следующую папку и снова ждать действий. По F11 скрипт выгружается, что видно по пропаже значка Автоита в системном трее.

Сохранить процитированное в файл "заход в соседние папки.au3", установить Автоит https://www.autoitscript.com/site/autoit/downloads/, запустить au3-файл, на вопрос о программе для открытия, как обычно, указать путь к экзешнику. Этот язык способен также управлять мышкой, получать вводные указания через диалоговые окна, заполнять формы и запускать метеоракеты с Байконура. Не шутка.

// Поправил скрипт. Только сейчас разглядел, что вопрос про передвижение в обе стороны ≺(⊙‿⊙)≻

Вместо команд Home + Enter в обеих функциях можно использовать
Send("^cm_GoToParent") ; выход из папки
	Send("{ENTER}") ; выполнить
но сути это не меняет
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы