VS Codeを立ち上げたときに任意のコマンドを実行する拡張機能 「Terminals Manager」を試す

2024.06.06

はじめに

VS Codeの起動時にコマンド実行してほしいことがあります。調べてみるとちょうど良さそうな拡張機能を見つけたので試してみました。

ユースケース

起動時にコマンドが実行されて嬉しい場面は以下のようなときでしょうか。

  • workspace化してルートを複数持っているフロントエンド構成で各パッケージのnpm installとかrun dev
  • Pythonアプリケーションのvenvのactivate
  • git fetchとか

ほかにも使い方はいくらでもあると思います。

インストール

VS Codeの拡張機能タブから、Terminals Managerで検索すると出てきます。インストールして下さい。

設定

コマンドパレット(mac: ⌘+⇧+p, windows: ctrl+shift+p)で Terminals: Edit Configuration を探して実行します。するとterminals.jsonが作られるので、これを変更して設定していきます。

例として、ワークスペースを開いたときにワークスペース名の仮想環境に入る、みたいな感じでやってみます。

前提

  • ~/venv/[workspace_name]/ にvenvの仮想環境がある。
  • ~/.zshrc (なんでもOK)を以下のように設定している。

前回紹介したように、VS Codeとvenvが若干相性悪い部分があるので起動のたびにrun commandsで$PATHと$PS1を作り直します。

~/.zshrc

PS1="%n@%m %1~ %# "
PATH=...

こんな感じのファイルを作っておきます。

設定ファイル作成

terminals.jsonは、

terminals.json

{
  "autorun": true,
  "terminals": [
    {
      "name": "venv",
      "focus": true,
      "commands": ["source ~/.zshrc", "source ~/venv/[workspaceFolderBasename]/bin/activate"]
    }
  ]
}

という感じにしてみました。ほぼ最低限の項目だけ使っています。[workspaceFolderBasename]はTerminals Managerで用意されている変数で、ワークスペース名に変換されます。ほかの設定項目など詳しくは拡張機能のページを見てみてください。基本的には、terminalsの配列の要素に1つずつターミナルウィンドウが対応するイメージです。タブで横並びにしたり、コマンド実行後にウィンドウは破棄する設定などもできます。

この状態で、コマンドパレットから Terminals: Run をやって、venvの仮想環境に入れれば成功です。

autorunもtrueなので、次回からVS Codeを起動するだけでvenvが有効になります。ほかにもパラメータがたくさんあってカスタマイズ性が高いので、気になった人はぜひ試してみてはいかがでしょうか。

終わりに

拡張機能さえ入っていれば同じようにうごくので、チーム開発でも役にたつかもしれません。