Edited at
NCCDay 17

IntelliJ IDEAのTerminalウィンドウでmsys2を使う

More than 1 year has passed since last update.


はじめに

IntelliJのTerminalがcmd.exeのままだと何かと不便だったりするので変更してみたのですが苦労したので記録を残しておきます。

環境

win10

IntelliJ IDEA 2017.3


インストール

http://www.msys2.org/ ここからmsys2をインストールしてください。

フォルダを解答したら任意の場所にmsys64フォルダを置いてください。

このあと環境変数にmsys_rootのような名前でパスを通しておくと便利です。

環境変数を追加したあとに再起動するのを忘れないで下さいね。


とりあえず設定を変更する

file > Settings > Tools > Terminal からShell Pathをmsys2.exeに変更してみます。

そのあとIntelliJ上でTerminalを開こうとすると、

別ウィンドウでmsys2が開いてしまいました。

違う……そうだけど、そうじゃないんだ……


結論

結論としては、msys64フォルダまでのパスをmsys_rootとして環境変数にパスを通したあとで、file > Settings > Tools > Terminal から設定画面を出し、

Shell pathを

cmd.exe

から

"cmd.exe" /k ""%msys_root%\usr\bin\bash.exe"" --login -i

に変更するとTerminal画面の中でmsysが動きます。

これでlsとか使えるようになるよ!やった!

ただしこのやり方だとカレントディレクトリがホームになってしまうので作業ディレクトリまで自分で移動しないといけません。色々試してみたのですがいい解決方法が見つかりませんでした。もっといいやり方をご存知の方がいらしたら教えいただけると幸いです。


追記

コメントで教えていただいたVisual Studio Code 15.1の統合シェルをMSYS2のbashにするの記事を参考にカレントディレクトリを作業ディレクトリにすることができました!

  # Start MSYS in selected folder

# c:\msys\usr\bin\bash -c "cd '%curdir'; export
# CHERE_INVOKING=1; exec /usr/bin/bash --login -i"
#
# Make sure we start in home unless invoked by CHERE
if [ ! -z "${CHERE_INVOKING}" ]; then
unset CHERE_INVOKING
else
cd "${HOME}" || echo "WARNING: Failed attempt to cd into ${HOME}!"
fi
}

上記の記述にあるように、CHERE_INVOKINGという変数がシェルの起動時にHOMEディレクトリに行くかどうかを決めているようなので、環境変数にCHERE_INVOKING1で設定するといい感じに作業ディレクトリでシェルが開いてくれました!


参考

https://syon.github.io/refills/rid/1498646/

https://qiita.com/rnurakami/items/59355faaac2f6698cc2c

https://qiita.com/nana4gonta/items/717a4508fa585a454690

https://qiita.com/k-takata/items/2220ba2e8dd5bcba3961

https://qiita.com/milu0_0_0/items/86322beac22501c9ddfe

https://meiji-ncc.tech/161026_developent-primer-with-python/contents/Python%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%82%88%E3%81%86/Tips/%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%82%BD%E3%83%95%E3%83%88.html