ESP-IDFをWindows Terminalで開く


はじめに

Windows Terminalがv1.0リリースされて、私も最近使い始めました。せっかくなので、ESP-IDFをWindows Terminalで開けるようにしてみようかなと思います。

スタートメニューに追加する方法と、Windows Terminal内の新規タブに追加する方法の2通り紹介します。

準備するもの

Windows Terminal内のcmd.exeの名前

Windows Terminalのコマンドプロンプトの設定にあるNameの中身をコピーします。

ESP-IDF用コマンドプロンプトのプロパティ

ESP-IDF用コマンドプロンプトのプロパティの『リンク先』『作業フォルダ』の中身をコピーします。『リンク先』に関しては、/kパラメーター以降の.batファイルのパスがあれば大丈夫です。

インストール時のデフォルトではそれぞれこんな感じだった気がします。適宜置き換えて読み進めてください。

  • リンク先:C:\WINDOWS\system32\cmd.exe /k ""C:\Users\USERNAME\.espressif\idf_cmd_init.bat"
  • 作業フォルダ:C:\Users\USERNAME\Desktop\esp-idf\

ESP-IDF用コマンドプロンプトのあるディレクトリはWindowsの検索窓とかから探せます。

スタートメニューにショートカットを追加する

先と同じ要領で、ESP-IDF用コマンドプロンプトのあるディレクトリを開きます。
ショートカットを新規作成します:右クリック→新規作成→ショートカット

項目の場所には以下のように入力します。
wt -p <cmd.exeの名前> -d <作業ディレクトリ> cmd /k <idf_cmd_init.batの場所>
はWindows Terminal上のcmd.exeの名前、<作業ディレクトリ>はESP-IDFの作業フォルダ、はESP-IDFのリンク先の/kパラメーター以降の部分です。

実際にそれぞれ代入するとこんな感じになります。
wt -p "Command Prompt" -d "C:\Users\USERNAME\Desktop\esp-idf\" cmd /k "C:\Users\USERNAME\.espressif\idf_cmd_init.bat"

入力したら次へ。
ショートカットの名前は適当に分かりやすいものを入れればOKです。

完了したら、スタートメニューのESP-IDFフォルダに先程作ったショートカットが追加されています。ここから、Windows TerminalでESP-IDFを開けます。

Windows Terminalのタブに追加する

新しいプロファイルを追加します:Windows Terminal → Settings → Profiles → Add new

Nameは自分がわかるようにお好みで、Command lineはESP-IDFの『リンク先』をそのまま全部ペースト、Starting directoryはESP-IDFの『作業フォルダ』をそのままペーストすればOKです。
Starting directoryを編集するときに、下の「Use parent process directory」チェックボタンを外すことを忘れないようにしましょう。

Settings.jsonからも同様に設定できます。\"のエスケープし忘れに注意です。

Settings.json
{
    "profiles":
    {
        "list":
        [
            {
                "name": "ESP-IDF 4.2 CMD",
                "commandline": "cmd.exe /k \"C:\\Users\\USERNAME\\.espressif\\idf_cmd_init.bat\"",
                "startingDirectory": "C:\\Users\\USERNAME\\Desktop\\esp-idf\\"
            }
        ]
    },
}

おわりに

今回はコマンドプロンプトでの紹介でしたが、PowerShellでも同じようにできます。
VSCodeもあるので、ここまでやっておいて使うかは微妙な気もしますが。

まあ、ショートカットで入力したコマンドはそのままコマンドプロンプトやbatchファイルで通用するので、Windows Terminalのコマンドライン引数に関しては収穫があったかなと。

最後が大分適当になってしまいましたが、参考になれば幸いです。ではでは。

参考