Visual Studio Code のターミナルのプルダウンに Anaconda Prompt を追加する

## この記事を読むとできること

1. WindowsのVisual Studio Codeにて、ターミナル選択のプルダウンからAnaconda Promptを選択できるようにする

1. また、それを既定のターミナルにするかも選べるようにする。

1. ついでにコマンドプロンプトかPowerShellどっちも選べるようにしよう。

こんな感じ



## 背景

既存記事の通り行ったが、既定のターミナルを強制的に変更する方法で、プルダウンで選ぶことはできなかった。

https://qiita.com/_meki/items/5b4f06318f1a0986c55c

また、方法は推奨されてないと黄色い波線も出たため、Microsoftの言う通りにやってみることにする。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1623593/bdc17009-6765-dc5a-9adb-8a05e9c6f2eb.png" width="400px">

## 環境

- Windows10
- Anacondaインストール済み
- VSCodeインストール済み

## 方法

### (1)Anaconda Promptのコマンドを持ってくる

[既存記事](https://qiita.com/_meki/items/5b4f06318f1a0986c55c#%E6%96%B9%E6%B3%95)を参考にした。

`スタート -> Anaconda3 -> Anaconda Promptを(右クリック) -> その他 -> ファイルの場所を開く`

エクスプローラーが開くため、パスと引数を控える。

#### コマンドプロンプト

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1623593/0ea42f03-2b61-7cb8-f4bd-400926773d5a.png" width="400px">

`右クリック　->　プロパティ`を押下したのち、リンク先をコピー

**例**

`%windir%\System32\cmd.exe "/K" C:\ProgramData\Anaconda3\Scripts\activate.bat C:\ProgramData\Anaconda3`

私は全てCドライブだったが、Dドライブに入ってる場合もあるようなので要確認

#### PowerShell

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1623593/83904a14-354e-13f3-e8f7-87505e782b06.png" width="400px">

`右クリック　->　プロパティ`を押下したのち、リンク先をコピー

**例**

`%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\ProgramData\Anaconda3' "`

### (2)VSCodeのターミナル構成を追加

ここからは[VSCode公式リファレンス](https://code.visualstudio.com/docs/editor/integrated-terminal#_configuring-profiles)を参考にしています。

`VSCode -> 基本設定` 検索欄に`terminal.integrated.profiles.windows`と入力

Settings.jsonを開く

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1623593/6e8f49a4-5c6a-9689-5def-a01ee1f27afd.png" width="500px">

#### コマンドプロンプト
下記の通り入力、保存

**`\`はエスケープのため`\\`にする必要あり**

```json
{
    "terminal.integrated.profiles.windows": {
      "Anaconda Prompt (cmd)": {
        "path": "コマンドプロンプトのPath",
        "args": [
          "第一引数",
          "第二引数",
          "第三引数(以下ある場合は同じように書く)"
        ]
      }
    },
  }
```

**コマンドプロンプトの例**

```json
{
    "terminal.integrated.profiles.windows": {
      "Anaconda Prompt (cmd)": {
        "path": "C:\\Windows\\system32\\cmd.exe",
        "args": [
          "/K",
          "C:\\ProgramData\\Anaconda3\\Scripts\\activate.bat",
          "C:\\ProgramData\\Anaconda3"
        ]
      }
    },
  }
```

#### PowerShell

下記の通り入力、保存

**`\`はエスケープのため`\\`にする必要あり**

```json
{
    "terminal.integrated.profiles.windows": {
      "Anaconda Prompt (cmd)": {
        "source": "PowerShell",
        "args": [
          "第一引数",
          "第二引数",
          "第三引数(以下ある場合は同じように書く)"
        ]
      }
    },
  }
```

**PowerShellの例**

```json
{
    "terminal.integrated.profiles.windows": {
      "Anaconda Prompt (PS)": {
        "source": "PowerShell",
        "args": [
          "-ExecutionPolicy",
          "ByPass",
          "-NoExit",
          "-Command",
          "C:\\ProgramData\\Anaconda3\\shell\\condabin\\conda-hook.ps1",
          "; conda activate 'C:\\ProgramData\\Anaconda3"
        ]
      }
    },
  }
```

#### (補足)どっちも入れる場合

コマンドプロンプトとPowerShellどちらも入れる場合は、`    "terminal.integrated.profiles.windows": {`の中に入れ子を作ってください。

**例**

```json
{
    "terminal.integrated.profiles.windows": {
      "Anaconda Prompt (cmd)": {
        "path": "C:\\Windows\\system32\\cmd.exe",
        "args": [
          "/K",
          "C:\\ProgramData\\Anaconda3\\Scripts\\activate.bat",
          "C:\\ProgramData\\Anaconda3"
        ]
      },
      "Anaconda Prompt (PS)": {
        "source": "PowerShell",
        "args": [
          "-ExecutionPolicy",
          "ByPass",
          "-NoExit",
          "-Command",
          "C:\\ProgramData\\Anaconda3\\shell\\condabin\\conda-hook.ps1",
          "; conda activate 'C:\\ProgramData\\Anaconda3'"
        ]
      },
    },
  }
```
---

保存すると、プルダウンに入力したターミナル名が現れると思います。

（SSH接続してMacから動かしてるので、表示違うのは目をつぶってください）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1623593/46cb6e99-1bd5-9952-8be7-a8296394b143.png" width="300px">

### (3 -任意)追加した設定を既定のターミナルにする

先ほど編集していた`Settings.json`に以下を追加

```json
"terminal.integrated.defaultProfile.windows": "自分でつけたターミナル名"
```

**例(PowerShellのAnaconda Promptをデフォルトにする)**

```json
{
    "terminal.integrated.profiles.windows": {
      "Anaconda Prompt (cmd)": {
        "path": "C:\\Windows\\system32\\cmd.exe",
        "args": [
          "/K",
          "C:\\ProgramData\\Anaconda3\\Scripts\\activate.bat",
          "C:\\ProgramData\\Anaconda3"
        ]
      },
      "Anaconda Prompt (PS)": {
        "source": "PowerShell",
        "args": [
          "-ExecutionPolicy",
          "ByPass",
          "-NoExit",
          "-Command",
          "C:\\ProgramData\\Anaconda3\\shell\\condabin\\conda-hook.ps1",
          "; conda activate 'C:\\ProgramData\\Anaconda3'"
        ]
      },
    },
    "terminal.integrated.defaultProfile.windows": "Anaconda Prompt (PS)"
  }
```

## まとめ

Anaconda PromptをVSCodeに無事設定することができました。

改善点や間違いがあったら、コメントや編集リクエスト送っていただけたら嬉しいです！

## 参考文献

https://qiita.com/_meki/items/5b4f06318f1a0986c55c

https://qiita.com/Takuya-Shuto-engineer/items/d233e5686b0508cdf9ab

https://code.visualstudio.com/docs/editor/integrated-terminal#_configuration)%E3%80%82