👏
Visual Studio Codeで自動的に複数のターミナルを起動しコマンドを実行させる方法
はじめに
プロジェクトを起動するたび、同じ作業を行なっていませんか?
私の場合、起動→名前の変更→コマンドの実行を4回も行っています。
今回はTerminals Managerを使用して、この作業を0にした方法を紹介します。
導入方法
Terminals Managerをインストールする
どちらかを選んでください
- Visual Studio Codeの拡張機能タブから
- 緑のInstallボタンから
設定ファイルを開く
- メニューバーからコマンドパレットを選択
- Terminals: Edit Configurationtを入力と選択
2. .vscodeフォルダとterminals.jsonが作成されます
設定ファイルを記入する
terminalsにHashを追加することで、複数設定できます。
例:自動的に2つのコンソールを起動し片方で rails console を起動する
{
"autorun": true,
"terminals": [
{
"name": "git",
"icon": "logo-github",
"description": "This is a git ",
"command": "",
"onlyMultiple": true,
"focus": true
},
{
"name": "rails c",
"description": "This is a rails console",
"icon": "ruby",
"onlyMultiple": true,
"commands": [
"rails console"
],
"open": true
}
]
}
例:自動的に1つのコンソールを起動し、後からTerminals: Run Singleを使用してrails cを起動する
{
"autorun": true,
"terminals": [
{
"name": "git",
"icon": "logo-github",
"description": "This is a git ",
"command": "",
"onlyMultiple": true,
"focus": true
},
{
"name": "rails c",
"description": "This is a rails console",
"icon": "ruby",
"onlySingle": true,
"commands": [
"rails console"
],
"open": true
}
]
}
terminals.jsに設定できるもの
- 詳しい設定内容はこちらを確認してください
"autorun": true // 起動時またはプロジェクトがワークスペースに追加されたときに自動的にターミナルを起動する
"autokill": true // ワークスペースを削除したときに自動的にターミナルを終了する
"env": { "name": "value" } // 全てのターミナルに適用されるグローバル環境変数
terminals
"name": "hoge"// 名前
"description": "hode is hoge" // 説明
"icon": "hoge" //アイコン
"color": "terminal.hoge" // 色
"cwd": "/Users/hoge/hoge" // 実行したいディレクトリのパスがプロジェクトのパスと違う場合
"command": "echo hoge" // 実行したいコマンド1つの場合
"commands": [ // 実行したいコマンドが複数ある場合
"echo hoge",
"echo hoge 2"
]
"target": "hoge"// インスタンスでコマンドを実行する
"persistent": "hoge" // 閉じてもプロセスを実行し続ける
"substitution": false // 変数置換を無効にする
"recycle": false // 常に新しいターミナルを作成する
"open": true // コマンドを実行した後にターミナルを開く
"focus": true // コマンド実行後にターミナルを開き、ターミナルですぐに入力できるようにする
"execute": false // 最後のコマンドを実行せず入力したままにする
"onlySingle": true // 自動的に実行しない [Terminals: Run]で表示されない
"onlyMultiple": true // [Terminals: Run Single]で表示されない
"onlyAPI": true // 自動的に実行しない [Terminals: Run Single]で表示されない
"shellPath": "/bin/bash" // shellの実行ファイルへのパス
"shellArgs": ["--hoge"] // shellの実行ファイルに渡す引数
"env": { "name": "value" } // ターミナルで適用する環境変数
"envInherit": false // グローバル環境変数を継承しない
コマンドパレットで実行できるコマンド
Terminals: Edit Configuration // terminals.jsonを開く
Terminals: Kill // 全てのターミナルを終了させる
Terminals: Run // onlyMultipleを設定しているものを起動する
Terminals: Run Single // onlySingleを設定しているものを個別に起動させる
Terminals Managerの設定
"terminals.invertCommandsAndDescription": false // quickpickで表示されるターミナルのコマンドとdescriptionを反転させる
"terminals.showCommands": false // コマンドをquickpickに表示する
"terminals.showDescriptions": true // descriptionをquickpick表示する
"terminals.sortTerminals": false // ターミナルをアルファベット順に並べ替える
"terminals.env": {} // 全てのターミナルに適用されるグローバル環境変数
"terminals.multiplexer": "screen" // ターミナルに使用したいマルチプレクサ "screen", "tmux"を使用できます
詳しく知りたいかたはこちら
おわりに
苦ではないけれど自動化できると楽だな..と思う作業を解消することで、
気持ちが少し楽になりました:ok_woman_tone1:
それでは良き開発ライフを!
Discussion