環境
Windows7
Cmder 1.3.6
MSYS2
背景
Windowsで快適なターミナル環境を整えるため、あれこれ設定していてぶつかった問題。
- こちらの記事を参考に Cmder (1.3.6) を導入。
- SublimeText のプラグイン Terminal を導入。
- Terminal はデフォルトだと PowerShell で起動するため、Terminal の Package Settings にて
"terminal": "path/to/cmder"
などとして Cmder に変更(こちらを参考)。 - 引数を渡す必要があるため、
"parameters": ["/START", "%CWD%"]
も設定。 - 上記を設定しても
Open Terminal Here...
で所定のディレクトリで Cmder が開かず、必ずホームディレクトリで開いてしまうことに気づく。 - ふと、エクスプローラーのコンテキストメニューから
Cmder Here
してみると、同様にホームディレクトリで開いてしまうことを確認/(^o^)\
対処方法
Cmder の Tasks 設定で下記のように指定したところ解決しました(もともとの Task は {bash::bash} からの流用ですが、MSYS2付属の bash を指定しています)。
CHERE_INVOKING=1
を設定するのがポイントのようです。
cmd /c "set CHERE_INVOKING=1 & "C:\msys64\usr\bin\bash.exe" --login -i"
Windows のターミナル環境に疎いこともあり良く分かっていないのですが、下記あたりが関連していそうです。
- use /dir Switch instead of CMDER_START (previously #921)
- Cmder now opens in the in the current working dir
※上記の方法でとりあえずは解決したため /dir については未検証です。
参考
https://github.com/cmderdev/cmder/issues/1803
https://conemu.github.io/en/CygwinStartDir.html
https://zyzyz.github.io/en/2017/10/Integrate-MSYS2-into-Cmder/