みるべあのエンジニア日記

勉強したことについてTwitterとガチブログの中間くらいのスタンスで書く日記

PowerShellでElixirを使おうとしたらIExを1回しか実行できない

Windows7のサポート終了前にWindows10に買い替えたので、Elixirをインストールしてみました。
こちらからインストーラーでインストールしました。

前提

  • Windows10
  • VSCode
  • Elixir 1.10.1
C:\Users\username>elixir -v
Erlang/OTP 21 [erts-10.3] [64-bit] [smp:6:6] [ds:6:6:10] [async-threads:1]

Elixir 1.10.1 (compiled with Erlang/OTP 21)

IExを起動

Elixirの対話シェルIExを起動してみます。
ご挨拶に "Hello" と入力してみましょうか。

PowerShellの場合

VSCodeのターミナルを起動すると、特に何も設定していない限りPowerShellが起動します。

PS C:\Users\username> iex

コマンド パイプライン位置 1 のコマンドレット Invoke-Expression
次のパラメーターに値を指定してください:
Command: "Hello"
Hello

PS C:\Users\username>

あれ?挨拶を返してくれたのは良かったんですがIExが自動終了してしまいました🙁
PowerShellじゃなくてコマンドプロンプトだったら大丈夫かな?

コマンドプロンプトの場合

VSCodeのメニュー[ファイル]→[基本設定]→[設定]から terminal.integrated.shell.window と検索すると、
以下の画像の項目が一番上に表示されるので、「settings.json で編集」を選択します。

f:id:milkybear814:20200218011742p:plain

settings.json に以下を追加して保存します。

"terminal.integrated.shell.windows": "C:/Windows/System32/cmd.exe",

ターミナルを開き直してIExを起動します。

C:\Users\d0802>iex
Interactive Elixir (1.10.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> "Hello" 
"Hello"
iex(2)>

お!きちんと対話が続けられました😃めでたしめでたし👏