任意のフォルダを右クリックして、Cygtermで開く

ちょっとしたテキスト処理やwgetなどをやるとき、ちょこちょこCygwinを起動するのだが、それまではExploreでファイル操作してて、そこのファイルをCygwinで処理したいときにいちいち起動してからフォルダ名を指定する必要がある。それがあまりに面倒臭かったので、Exploreの右クリックからCygwin(Cygterm)を開けるようにした。

手順

  1. VBSファイルを用意
  2. レジストリエディタを開く
  3. キー追加1
  4. 規定値追加1
  5. キー追加2
  6. 規定値設定2
  7. /etc/profile, ~/.bashrcの変更
VBSファイルを用意

内容は下記のとおりにし、任意の場所に保存する。(例:C:\cygwin\local\bin\open_cygwin_window_here.vbs)

Option Explicit
Dim objArg
Set objArg = WScript.Arguments
Dim objSh
Set objSh = CreateObject("WScript.Shell")
objSh.CurrentDirectory = objArg(0)
objSh.Run """<Cygtermのファイルパス>"""
レジストリエディタを開く

Winキー + rキーで、「ファイル名を指定して実行」ウィンドウを表示して、"regedit"と打ち込む。

キー追加1

"HKEY_CLASSES_ROOT\Directory\shell" を開き、「右クリック → 新規 → キー」でキーを追加する。名前は任意だが、ひとまず"cygwin"とつけた。

規定値追加1

追加した"cygwin"キーの文字列値(規定)をダブルクリックし、編集画面を開く。値のデータに右クリックした際に表示される文字列を入れる。(例: Open Cygwin Window Here )

キー追加2

追加した"cygwin"キーを開いた状態で、「右クリック → 新規 → キー」でキーを追加する。名前は"command"にする。ここは任意ではないので注意。

規定値設定2

追加した"command"キーの文字列値(規定)をダブルクリックし、編集画面を開く。値のデータに「wscript.exe <最初に用意したVBSファイルへのパス> "%L"」と入れる。参考サイトでは、"wscript.exe"を最初に書くようにとは書かれていないが、これを書かないとvbsスクリプトが実行されない(おそらくこの方は、vbsファイルとwscript.exeとを関連付けているのかもしれない)。

/etc/profile, ~/.bashrcの変更

/etc/profileや~/.bashrcに "cd $HOME" という箇所があると、「Cygterm起動 → 該当フォルダにcd → cd $HOMEが実行」みたいな流れになるようで、意図したフォルダで起動してくれないので、これらのファイルから "cd $HOME" というコマンドをコメントアウトする。俺の場合、 /etc/profile 内の "cd ${HOME}"はコメントアウトしなくても動いた。代わりに、 ~/.bashrc に自分で追加した "cd $HOME" をコメントアウトした。ただし、これをコメントアウトすると、cygtermを直で開いた時に、"/usr/local/bin" からのスタートとなるので注意が必要。