Тема: Cygwin/Bash: Запуск Cygwin в заданном каталоге из Проводника
В иностранной литературе это называется Cygwin Here. По сути - запуск Cygwin в заданном каталоге из Проводника.
Мне надоело запускать Cygwin и переходить до нужного каталога. Алиасы специально создавать я не хотел. Гугл помог. Более того, я собрал все решения Интернета и реализовал новое. На мой взгляд стало чуточку лучше.
Я набросал небольшой пакетный скрипт, который позволяет мне запускать Cygwin несколькими способами:
-- правым кликом из ПРоводника (а также файл-менеджеров таких как Total Commander, Double Commander и прочих)
-- из командной строки
-- из пользовательского меню FAR
Исходный код
По ссылке тот же код, но без купюр - с английскими комментариям.
@echo off
if /i "%~1" == "/HELP" (
echo:Cygwin Here
echo:
echo:Usage:
echo:%~n0 [/HELP ^| /INSTALL ^| /UNINSTALL ^| /LIST ^| "folder"]
goto :EOF
)
if /i "%~1" == "/INSTALL" (
for %%p in ( "Drive" "Directory" "Directory\Background" ) do (
reg add "HKEY_CLASSES_ROOT\%%~p\shell\Cygwin Here\command" /ve /d "\"%~f0\" \"%%V\"" /f
)
goto :EOF
)
if /i "%~1" == "/UNINSTALL" (
for %%p in ( "Drive" "Directory" "Directory\Background" ) do (
reg delete "HKEY_CLASSES_ROOT\%%~p\shell\Cygwin Here" /f
)
goto :EOF
)
if /i "%~1" == "/LIST" (
for %%p in ( "Drive" "Directory" "Directory\Background" ) do (
reg query "HKEY_CLASSES_ROOT\%%~p\shell\Cygwin Here" /s
)
goto :EOF
)
if not "%~1" == "" pushd "%~1" || goto :EOF
start "Cygwin Here" "%~dp0mintty.exe" -i /Cygwin-Terminal.ico -h start "%~dp0bash.exe" -l -c "cd '%CD%' ; exec bash"
popd
Описание
параметры командной строки
/HELP - вывод справки
/INSTALL - инсталлировать скрипт в Проводик
/UNINSTALL - деинсталлировать скрипт из Проводника
/LIST - вывести список измененных записей в реестре
Другие значения подразумеваются как путь до каталога, в котором Cygwin должыен быть запущен. Пустой список параметров значит запуск Cygwin в текущем каталоге.
На мой взгляд, у этого решения два явных преимущества
1. манипуляции с реестром скрыты от конечного пользователя
2. один скрипт для нескольких целей (запуск из разных источников, установка и удаление)
Установка скрипта для Проводника
1. открыть каталог Cygwin, содержащий бинарные файлы (обычно C:\cygwin\bin)
2. создать файл cyghere.bat и вставить скрипт из примера выше
3. сохранить его и запустить команду
c:\cygwin\bin\cyghere.bat /install
Если ваша капия Cygwin установлена в другом месте - просто подкорректируйте путь.
Установка для FAR
1. запустить FAR
2. подредактировать пользовательское меню: F2, Ins, ENTER (кнопка Добавить команду)
3. В диалоге ввести следующее (все символы латинские)
горячая клавиша: C
метка: Cygwin Here
команды: C:\cygwin\bin\cyghere.bat
4. закрыть диалог, нажав OK