12.

macOS で複数の VS Code / IntelliJ ワークスペースを並行起動する方法

編集
この記事の要点
  • VS Code: code -n で新ウィンドウ、Cmd+Shift+N でも可。.code-workspace ファイルで複数フォルダを 1 つの作業セットとして保存
  • IntelliJ IDEA: File → Open で別プロジェクトを追加 → 「New Window」で並列起動。Window メニューで切替
  • Mac の Mission Control / Spaces でワークスペース毎に仮想デスクトップを割り当てると視認性が高い
  • Stack Workspaces 等の Mac アプリで「アプリ群」をまとめて起動・終了
  • ターミナルでは tmux / iTerm2 のワークスペース機能で復元、シェル設定は direnv でプロジェクト毎に切替

「複数ワークスペース」とは

ここで言うワークスペースはエディタ/IDE で複数のプロジェクトを並行して開くこと、または関連ファイル群をまとめた作業セットを指します。Mac 上で複数のプロジェクトを行ったり来たりするとき、起動・切替・整理の方法を整理します。

VS Code: 複数ウィンドウとワークスペース

新規ウィンドウで開く

# ターミナルから(code コマンドが有効化済の前提)
code -n                            # 空ウィンドウ
code -n ~/projects/api             # フォルダを新ウィンドウで
code -n ~/projects/api ~/projects/web  # 2 つのフォルダを別々のウィンドウで

# code コマンドが無い場合は VS Code 上で
# Cmd+Shift+P → "Shell Command: Install 'code' command in PATH"

VS Code 内では Cmd+Shift+N で新ウィンドウ、Cmd+` でウィンドウ切替。

マルチルート ワークスペース(.code-workspace)

関連する複数フォルダ(フロントエンド + バックエンド + インフラ)を1 つのウィンドウでまとめて開きたい場合:

// myproject.code-workspace
{
    "folders": [
        { "name": "API",      "path": "../api" },
        { "name": "Frontend", "path": "../frontend" },
        { "name": "Infra",    "path": "../infra" }
    ],
    "settings": {
        "editor.tabSize": 2,
        "files.exclude": {
            "**/node_modules": true
        }
    },
    "extensions": {
        "recommendations": [
            "dbaeumer.vscode-eslint",
            "esbenp.prettier-vscode"
        ]
    }
}
# ファイルを開く
code myproject.code-workspace

# メニューから: File → Open Workspace from File...
# 保存:        File → Save Workspace As...

IntelliJ IDEA / PyCharm / WebStorm

JetBrains 系 IDE は1 ウィンドウ = 1 プロジェクトが基本。複数プロジェクトを並行する方法:

  1. File → Open で別プロジェクトを選択
  2. ダイアログで 「New Window」を選ぶ(「This Window」は現在のを置き換え)
  3. 切替は Window メニュー または Cmd+`

「Project Structure(モジュール追加)」で 1 ウィンドウに複数プロジェクトを取り込むことも可能ですが、依存関係が混ざるので別ウィンドウ推奨

# ターミナルから(Toolbox で生成される CLI ラッパ)
idea ~/projects/api
idea ~/projects/web   # 別ウィンドウで開くか聞かれる

# Toolbox App の Settings → Tools → "Generate shell scripts" を ON

Mac の Spaces(仮想デスクトップ)で整理

macOS のMission Control / Spaces でデスクトップを複数作り、プロジェクト毎にウィンドウを配置すると視認性が上がります:

  1. Mission ControlCtrl+↑ または 3 本指上スワイプ)でデスクトップ追加
  2. ウィンドウを右クリック → 「すべてのデスクトップ」 / 「このデスクトップ」を指定
  3. Ctrl+→ / Ctrl+← でデスクトップ切替
  4. Dock のアイコンを右クリック → オプション → 割り当て先 → このデスクトップ で固定可能

Stack Workspaces / Workspaces App

「プロジェクト A のアプリ群(VS Code + ターミナル + Chrome + Slack)」をまとめて起動するアプリ:

アプリ特徴
Stack Workspacesシンプル、無料版あり
Workspaces (Apptorium)多機能、有料
Bunch (bunchapp.co)テキストファイルでスクリプト化、無料
Raycast の Workspaces 拡張Raycast ユーザに最適
# Bunch の例: ~/.bunches/work.bunch
# 1 行 1 アプリ。コメントは #
Slack
Google Chrome
Visual Studio Code
Terminal
1Password 7

# Raycast / Spotlight から bunch 名を実行で一括起動

ターミナル: tmux と iTerm2 ウィンドウアレンジメント

# tmux: 1 ターミナル内で複数セッション
tmux new -s api          # api セッション開始
# ペイン分割: Ctrl+b %, Ctrl+b "
# セッション一覧: tmux ls
# 復帰: tmux attach -t api

# iTerm2 のウィンドウアレンジメント
# Window → Save Window Arrangement... で保存
# Window → Restore Window Arrangement で復元
# Cmd+Shift+S で保存

プロジェクト毎の環境変数: direnv

プロジェクト毎に Python venv や環境変数を自動切替:

brew install direnv
echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc

# プロジェクト直下に .envrc
cd ~/projects/api
cat > .envrc <

ショートカット早見表

動作キー
Mission ControlCtrl+↑
デスクトップ切替Ctrl+← / Ctrl+→
アプリ切替Cmd+Tab
同アプリのウィンドウ切替Cmd+`
VS Code 新ウィンドウCmd+Shift+N
VS Code コマンドパレットCmd+Shift+P
Finder 新ウィンドウCmd+N
ターミナル新タブCmd+T

FAQ

Q: VS Code でフォルダを開くと既存ウィンドウが置き換わる
A: 設定 window.openFoldersInNewWindowon にする。または code -n で明示。

Q: IntelliJ で複数プロジェクトのコードジャンプを共有したい
A: 1 つのプロジェクトに Module として追加(File → Project Structure → Modules)。ただし依存関係や検索範囲が混ざるので注意。

Q: 起動時に毎回同じワークスペースを開きたい
A: VS Code は window.restoreWindows: "all"、JetBrains は Settings → Appearance & Behavior → System Settings → 「Reopen last project on startup」。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. Pleades導入方法(Windows)
  2. Tomcatの起動ボタンを表示
  3. 色・テーマの変更
  4. Tomcatプロジェクトのディレクトリ構成
  5. プロジェクトをTomcatプロジェクトとして認識させる方法
  6. Webアプリケーションのデプロイ方法
  7. 便利ショートカット一覧
  8. エラー一覧
  9. サーバーの設定
  10. サーバーとプロジェクトの紐づけ
  11. Tomcatの起動時のログがconsole上に表示されない時の対応
  12. macOSで複数のワークスペースを起動させる方法