なか日記

一度きりの人生、楽しく生きよう。

msysgit(1.7.0.2) の git bash here で開くシェルを ckw に変更する

以前書いたエントリ*1にもあるように「git bash here で開くシェルを ckw に変更する - ぐるぐる〜」を参考にckwが使えるように設定していたのですが、最新の Git-1.7.0.2-preview20100309.exe にアップデートしたら、レジストリの設定が変わってて、同じ方法が通用しなくなってました。

というわけで、前と同じように設定する方法をメモ

結論

C:\Program Files\Git\Git Bash.lnk というショートカットがあります。

この

C:\WINDOWS\system32\cmd.exe /c ""C:\Program Files\Git\bin\sh.exe" --login -i"

"C:\Program Files\Git\bin\ckw.exe"

に変更しましょう。

おしまい。*2


これで終わるのもあんまりなので、補足というか調べた結果を載せておきます。

レジストリ

HKEY_CLASSES_ROOT\Directory\shell\git_shell\command を見ると、

wscript "C:\Program Files\Git\Git Bash.vbs" "%1"

パスを渡してVBスクリプトを起動しています。

VBスクリプト

レジストリの中に設定されてる「C:\Program Files\Git\Git Bash.vbs」は以下のような感じ。

' If there is an argument, use it as the directory to change to.
If WScript.Arguments.Length=1 Then
    Set WshObj = CreateObject("WScript.Shell")
    WshObj.CurrentDirectory = WScript.Arguments(0)
End If

' Launch the shortcut in the current directory which has the same
' base name as this script.
Set AppObj = CreateObject("Shell.Application")
AppObj.ShellExecute(Replace(WScript.ScriptFullName, ".vbs", ".lnk"))
  1. 引数が1つ指定されていれば、カレントディレクトリを変更する。
  2. 自分の拡張子を「.lnk」に変更したファイルを起動する。

やってることはこれだけのことみたい。

まとめ

というわけで、結論に書いたとおり、単純にショートカットの中身を書き換えるだけでいい訳です。
カレントディレクトリの変更もVBスクリプトの中で行っているので、あらためて指定する必要もありません。

レジストリをごにょごにょしなくても好きなシェルが使えるようになったのは楽でいいですね。

*1:[http://d.hatena.ne.jp/nakaji999/20091122/1258898345:title]

*2:俺はレジストリを触りたいんだ!って人は、前と同じようにレジストリを「"C:\Tools\ckw\GitBash.exe" --chdir "%1"」に書き換えてもOK