【VSCode】ターミナル起動時のパス(PATH)を変更する方法
更新日:2023/02/06
VSCode内だけでターミナルのパス設定を変更したいときがあります。
今回はその方法を解説します。
setting.json にひな型を作成
ターミナルのPATH設定は、setting.jsonで行います。
手入力でもいいのですが、ひな型があったほうが楽なので、次の手順でひな型を作成しましょう。
- VSCodeの左下の歯車アイコンをクリック
- 表示されたメニューから「設定」を選択
- 設定パネルの検索欄に「terminal.integrated.profiles」と入力
Linux、Osx、Windowsのプロファイル設定項目が表示されます。
※プロジェクトごとに設定を変更したいときは、検索欄の下の「ワークスペース」を選択してください。
- 目的のOSの settings.json で編集をクリック
setting.jsonが表示され、ひな型が挿入されます。
"env"プロパティでPATH設定
PATHの設定は、"env"プロパティで行います。
"env"は、ターミナル起動時の環境変数を設定するパティです。
"env" : { 環境変数 : 値 , 環境変数 : 値 , ・・・ }
実際には、次のように記述します。
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe"
],
"env": {
"PATH":"c:\\nodejs;${env:path}"
},
"args": [],
"icon": "terminal-cmd"
},
上のコードの${env:path}は、環境変数pathを展開しています。
pathの部分を他の環境変数に変更すると、その変数が展開されます。
"env"プロパティで変更できない場合
setting.jsonの変更内容を上手く反映してくれないことがあるので、VSCodeを再起動してみてください。
それでも上手くいかない場合は、"arg"プロパティにパス設定コマンドを記述します。
Windowsのコマンドプロンプトなら、次のようになります。
"args": ["/K","set PATH=c:\\nodejs;%PATH%"],
/K は、後に続くコマンドを実行して、コマンドプロンプトを終了せずに続行する起動オプションです。
他のターミナルでも、同様の起動オプションを指定してください。
なお、この設定を行うとタスクやデバッグ実行時にエラーが表示されます。
対処法は、タスクやデバッグ実行時のターミナルを定義する terminal.integrated.automationProfile を記述します。
"terminal.integrated.automationProfile.windows": {
"path": "${env:windir}\\System32\\cmd.exe",
"args": [],
"icon": "terminal-cmd"
},
terminal.integrated.automationProfileは、使用するターミナルのひな型をコピペします。
"path"プロパティは文字列で指定するので、ひな型が配列のときは変更しましょう。
"path"ではなくて"source"が使用されているときは、実行ファイルのパスを調べて"path"を使用します。
PATHの変更は、tasks.json や launch.json でおこないます。
"comannd"プロパティに記述するのが手っ取り早いかもしれません。
tasks.json
"tasks": [
{
"label": "echo",
"type": "shell",
"command": "set PATH=c:\\nodejs;%PATH%;node test.js",
}
]
更新日:2023/02/06
関連記事
スポンサーリンク
記事の内容について
こんにちはけーちゃんです。
説明するのって難しいですね。
「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。
裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。
掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。
ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php
このサイトは、リンクフリーです。大歓迎です。