Предлагаю вашему вниманию
нестандартное (читай "
извращённое") использование плагина Named Folders!
Какое-то время назад здесь проскочила мысля делать файлы *.cd с ассоциацией cd:!
Мол, тогда при нажатии на такой файл произойдёт переход в именованную папку, псевдоним которой совпадает с именем файла *.cd.
Поскольку у меня на системе установлен ShadowUser, пользоваться плагином не очень удобно. Из-за того, что всё хранится в реестре. Конечно, можно было бы запускать ФАР через батник, который заодно вносит в реестр файл с нужными мне вещами. Или макрос, который при старте ФАРа делает то же самое. Можно пользоваться *.lnk файлами и соответствующим плагином.
Но мы не ищем лёгких путей!
Значит так. Ассоциация на *.cd такая (четыре пробела в начале, чтобы не заносилось в историю команд плагина AltHistory):
____PR:CtrlAltDelEsc
Соответственно, должен стоять плагин PostMacro. Другие способы заставить выполняться макрос - wellcome! FARcmds.
Макрос CtrlAltDelEsc в реестре выглядит так:
[HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\CtrlAltDelEsc]
"Sequence"="ShiftF6 End BS BS $Text \"reg\" Enter $Text \"____sl:regedit /s \" $Text APanel.Current Enter ShiftF6 End BS BS BS $Text \"cd\" Enter $Text \"____cd:\" $Text APanel.Current BS BS BS Enter"
"Description"="_Использование NamedFolders файлов"
Про четыре пробела я уже упоминал. Замените прочерки на пробелы, или удалите их, если кто мой способ захочет использовать. sl: - это префикс плагина Smart Launch (шикарный запуск) - часть необязательная, вообще разницы нет, использовать его или не надо. Так что это просто прихоть.
В макросе нет проверок на плагиновость панели, на пустоту комстроки (собсно, и не надо) и т.п. Желающие сами допишут. По минутному размышлению и экспериментальной проверке оказалось, что переименовывать *.cd в *.reg и обратно в макросе тоже не обязательно. Но пусть уж так будет.
И главная часть способа! В файле, который так проассоциировали, должно быть вот что:
REGEDIT4
[HKEY_CURRENT_USER\Software\Far\Plugins\NamedFolders\keys]
"псевдоним"="полный путь к папке без финального слеша"
Псевдоним, естественно, должен совпадать с именем *.cd файла. У кого там ФАР запускается от имени кого-то, тот сам поправит. Кто захочет добавить наворотов (открытие именованной папки в противоположной панели, диалоги, и т.п.) - поделитесь со мной потом, плиз. Ну и можно не в реестре макрос хранить, а в каком-то определённом файле (%FARHOME%\Macros\named_folders.macro) или сразу в ассоциации файлов его.
Таким образом можно топтать файлики, указывающие на именованные папки, не находящиеся в реестре. Это полезно очень ограниченному кругу людей, у которых трудности с внесением изменений в оный. Мне, например, для перманентности изменения нужно перезагрузиться дважды, в промежутке внеся в систему нужные изменения.
Возможные спотыкаловки: у кого-то может не успеть внестись в реестр содержимое файла до того, как вступит в действие Named Folders. Тогда придётся топнуть файл ещё раз.
Других граблёв не фижу.
P.s. Просто задать ассоциацию можно...
____PM:$Text "____sl:regedit /s " $Text APanel.Current Enter $Text "____cd:" $Text APanel.Current BS BS BS Enter
Лень лезть смотреть, как в макросе организовать задержку. Можно было бы четверть секунды между внесением в реестр и дальнейшим...