| この記事の要点 |
|
「複数ワークスペース」とは
ここで言うワークスペースはエディタ/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 プロジェクトが基本。複数プロジェクトを並行する方法:
- File → Open で別プロジェクトを選択
- ダイアログで 「New Window」を選ぶ(「This Window」は現在のを置き換え)
- 切替は 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 でデスクトップを複数作り、プロジェクト毎にウィンドウを配置すると視認性が上がります:
- Mission Control(
Ctrl+↑または 3 本指上スワイプ)でデスクトップ追加 - ウィンドウを右クリック → 「すべてのデスクトップ」 / 「このデスクトップ」を指定
- Ctrl+→ / Ctrl+← でデスクトップ切替
- 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 <<EOF
export DATABASE_URL=postgres://localhost/api_dev
export AWS_PROFILE=dev
source .venv/bin/activate
EOF
direnv allow .
# 以後、cd するだけで自動有効化、cd で抜けたら無効化
ショートカット早見表
| 動作 | キー |
|---|---|
| Mission Control | Ctrl+↑ |
| デスクトップ切替 | 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.openFoldersInNewWindow を on にする。または 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」。
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38