ESP-IDFをWindows Terminalで開く

# はじめに

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

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

# 準備するもの

## Windows Terminal内のcmd.exeの名前

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1091433/65272ad7-5c25-c53a-d743-c8ddba469190.png)

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

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

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1091433/b9ef48f9-b8e0-fe3a-2497-205aa6f5de66.png)

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

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

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1091433/21ef93e0-b7dd-5425-b287-b4c46e2d208f.png)

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

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

項目の場所には以下のように入力します。
`wt -p <cmd.exeの名前> -d <作業ディレクトリ> cmd /k <idf_cmd_init.batの場所>`
<cmd.exeの名前>はWindows Terminal上のcmd.exeの名前、<作業ディレクトリ>はESP-IDFの作業フォルダ、<idf_cmd_init.batの場所>は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です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1091433/cc0e9859-1811-045e-ddc1-c24ffad39896.png)

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1091433/2f5e2474-4483-209b-3f2d-f3b58f5d779f.png)

# Windows Terminalのタブに追加する

新しいプロファイルを追加します：Windows Terminal &rarr; Settings &rarr; Profiles &rarr; Add new

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1091433/114bd065-43fd-f97a-555c-87676d94ee14.png)

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

```jsonc: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のコマンドライン引数に関しては収穫があったかなと。

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

# 参考

* [Windows Terminalをコマンドで実行し、更に、その中でコマンド実行。](https://qiita.com/SFITB/items/3044145e62457e896983)
* [Using command line arguments for Windows Terminal](https://docs.microsoft.com/en-us/windows/terminal/command-line-arguments?tabs=windows)

<!-- アイコン変更
* [Windows Terminalをショートカットキーで起動したい](https://kabukawa.hatenablog.jp/entry/2020/12/05/004958)
-->