はじめに
AIコーディングアシスタント(Codex、Claude Code)を使い始めたものの、以下のような課題に直面していませんか?
- Codex CLIで改行がうまくできない
- 画像を添付できない
- VS Codeのチャット欄が狭すぎて長文が書きづらい
- Windows環境だけどUbuntuのコマンドラインに慣れている
- ローカルファイルを自在に編集したい
本記事では、これらの課題を一挙に解決する「Windows 11 Pro + WSL2 + VS Code」による統合開発環境の構築方法を、実際のトラブルシューティングを交えながら詳しく解説します。
目次
Codex CLIの基本的な問題と解決策
問題1: 改行がうまくできない
Codex CLIはマルチライン入力まわりで既知の不具合があります(貼り付けで1行目だけ送信される等)。
解決策
方法1: ファイル経由で渡す(最も確実)
# prompt.md に複数行の指示を書く
codex "$(cat prompt.md)"
引数一つに改行を含んだ文字列として渡せるので、貼り付け暴発を回避できます。
方法2: インタラクティブTUIを使う
# そのまま起動してコンポーザー(入力欄)に書く
codex
方法3: 端末の正しい貼り付け
多くのLinux/WSL端末では Ctrl+Shift+V
が必要です。
方法4: 最新版へ更新
npm install -g @openai/codex@latest
# または
brew upgrade codex
問題2: 画像を添付できない
解決策
正式な方法: --image
フラグを使う
codex -i screenshot.png "このエラーを説明して"
codex --image graph.png,ui.jpg "図を要約して"
WSLでの注意点:
- 画像はWSL側のファイルパス(例:
/home/…/img.png
)を渡す - クリップボード直貼りは端末/WSL組合せで通らない例があるため、ファイル指定が最も確実
VS Codeでの快適な環境構築
チャット欄を広くする方法
VS Codeで「書き込み欄が小さい」問題は、以下の方法で大幅に改善できます。
1. パネルを右側に移動
Ctrl+Shift+P → "View: Toggle Panel Position"
右パネルにすると縦方向が広くなり、長文入力が楽になります。
2. パネル最大化トグルを設定
Ctrl+Shift+P → "View: Toggle Maximized Panel"
これを好みのキー(例: Ctrl+Alt+M
)に割り当てると、ワンキーで全画面チャット↔元の表示を切り替えられます。
keybindings.jsonへの追加例:
[
{ "key": "ctrl+alt+m", "command": "workbench.action.toggleMaximizedPanel" },
{ "key": "alt+up", "command": "workbench.action.increaseViewSize" },
{ "key": "alt+down", "command": "workbench.action.decreaseViewSize" }
]
3. セカンダリ・サイドバーを活用
Ctrl+Alt+B → "View: Toggle Secondary Side Bar Visibility"
これにより、横長レイアウトが作れます:
- 左: Explorer
- 中央: エディタ・ターミナル
- 右: Codex/Claude Codeチャット
4. ターミナルをエディタ領域に移動
ターミナルタブを右クリック → "Move Terminal Into Editor Area"
これでターミナルをエディタのタブとして広々扱えます。
推奨settings.json設定
.vscode/settings.json
に以下を追加:
{
"workbench.panel.defaultLocation": "right",
"workbench.editor.openSideBySideDirection": "right",
"editor.wordWrap": "on"
}
WSL2との完全統合
なぜWSL2が最強なのか?
Ubuntuのコマンドライン操作に慣れた開発者がWindows環境で作業する場合、VS Code + WSL2の組み合わせが最適解です。
メリット:
-
Ubuntuと同じ感覚:
bash
/apt
/pip
/nvm
が素直に動く - ファイルI/Oが速い: WSL側にプロジェクトを置けば高速
- GPU/GUIも対応: WSLgで簡単なGUI、CUDA/AI推論も可能
- Windowsの良さも活用: ブラウザ・Office・各種ドライバはWindows側で
ステップ1: Remote-WSL拡張のインストール
- VS Codeの拡張ビューで「Remote - WSL」を検索してインストール
- 拡張ID:
ms-vscode-remote.remote-wsl
ステップ2: WSL窓でプロジェクトを開く
重要: ウィンドウ左下のステータスバーが WSL: Ubuntu
になっていることを確認してください。Local
の場合、拡張がWindows側で動いてしまいます。
方法A: コマンドパレットから
Ctrl+Shift+P → "WSL: New WSL Window"
→ "Open Folder" で \\wsl$\Ubuntu\home\<あなた>\ 配下を選択
方法B: WSLシェルから直接
# WSL(Ubuntu)のシェルで
cd ~/work/myproject
code .
方法C: 既存のウィンドウを開き直す
Ctrl+Shift+P → "WSL: Reopen Folder in WSL"
ステップ3: プロジェクトをWSL側に配置
推奨: /home/<user>/work/...
に配置
避けるべき: /mnt/d/...
などのWindowsドライブ直下(速度・権限の問題)
# Windowsドライブからホームディレクトリへ移動
mkdir -p ~/work
rsync -avh /mnt/d/your_project/ ~/work/your_project/
ステップ4: ターミナル設定の最適化
.vscode/settings.json
に以下を追加:
{
"terminal.integrated.defaultProfile.windows": "Ubuntu (WSL)",
"terminal.integrated.cwd": "${workspaceFolder}",
"workbench.panel.defaultLocation": "right"
}
効果:
- デフォルトターミナルが常にWSL(Ubuntu)になる
- 新規ターミナルは常にワークスペース直下で開く
- パネルが右側に配置される
ステップ5: Gitの設定
WSL内で以下を実行:
git config --global core.autocrlf input # 改行をLFで統一
git config --global core.filemode false # 不要なら権限差分を無視
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
Codex/Claude Codeの導入と設定
Codexの導入(VS Code拡張)
- WSL窓で拡張ビューを開く
- "Codex – OpenAI's coding agent" を検索
- "Install in WSL" をクリック(重要!)
これでCodexの実行主体もWSL側になり、PowerShell経由にならなくなります。
Claude Codeの導入(VS Code拡張)
- WSL窓で拡張ビューを開く
- "Claude Code" (Anthropic公式) を検索
- "Install in WSL" をクリック
- 画面の案内に従ってサインイン(またはAPIキー設定)
作業ディレクトリの把握と切り替え
現在地の確認
- ターミナルで
pwd
- VS Codeのタイトルバー(ウィンドウ上部)
- Explorerの一番上のフォルダ名
作業ディレクトリの変更方法
方法1: File → Open Folderで別フォルダを開く
方法2: マルチルートワークスペース
File → Add Folder to Workspace...
複数フォルダを一つの.code-workspace
に束ねる。指示でフォルダを明示すれば迷わない。
方法3: プロンプトで相対パスを明示(最も確実)
「./apps/web/src/App.tsx の X を Y に変更して」
「packages/shared 以下の *.ts から unused export を削除」
エクスプローラーとの連携
-
Ctrl+Shift+E
でExplorer表示 - エディタ上で右クリック → "Reveal in Explorer"(ファイルの場所をツリーで表示)
- Explorer上でフォルダ右クリック → "Open in Integrated Terminal"(その場所でWSLシェルが開く)
最終的な最強構成
完全版settings.json
.vscode/settings.json
:
{
// WSL設定
"terminal.integrated.defaultProfile.windows": "Ubuntu (WSL)",
"terminal.integrated.cwd": "${workspaceFolder}",
// UI最適化
"workbench.panel.defaultLocation": "right",
"workbench.editor.openSideBySideDirection": "right",
"editor.wordWrap": "on",
// Python設定(該当する場合)
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
// フォーマット設定
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}
完全版keybindings.json
keybindings.json
:
[
// パネル最大化
{ "key": "ctrl+alt+m", "command": "workbench.action.toggleMaximizedPanel" },
// ビューサイズ調整
{ "key": "alt+up", "command": "workbench.action.increaseViewSize" },
{ "key": "alt+down", "command": "workbench.action.decreaseViewSize" },
// セカンダリサイドバー
{ "key": "ctrl+alt+b", "command": "workbench.action.toggleSecondarySideBarVisibility" }
]
Dev Containers(任意だが超推奨)
プロジェクトをどのマシンでも同じ依存関係に固定できます。
Ctrl+Shift+P → "Dev Containers: Add Dev Container Configuration Files..."
テンプレート(Python/Node/…)を選ぶと .devcontainer/devcontainer.json
が生成され、VS Codeがコンテナ内で再オープンします。
効果:
- 環境差でコケない
- チーム全員が同じ環境で作業できる
- CI/CDとの整合性が高まる
日常の運用パターン(失敗しない型)
-
課題の骨子をまず投げる
「/api/users にページング追加。既存E2Eテストを緑に保ったまま、 クライアントのUserTableも対応」
-
影響範囲を要約させる(設計ズレ防止)
-
小刻み差分で進める(1コミット=1意図)
- 「まずバックエンドの型だけ」
- 「次にAPI実装」
- 「最後にフロント修正→統合テスト」
-
CI/タスクをVS Codeに登録(
.vscode/tasks.json
){ "version": "2.0.0", "tasks": [ { "label": "dev", "type": "shell", "command": "npm run dev", "problemMatcher": [] }, { "label": "test", "type": "shell", "command": "npm test", "problemMatcher": [] } ] }
-
長文は"骨子→展開"(チャット欄の改行・貼り付け事故を減らす)
トラブルシューティング
Q1: "WSL: Reopen Folder in WSL" が見つからない
原因: Remote-WSL拡張が入っていないか、VS Codeの再起動が必要
解決策:
- Remote-WSL拡張をインストール
- VS Codeを再起動
- コマンドパレットを再度開く
Q2: チャットはWSLだがビルドが遅い
原因: /mnt/d/...
など、Windowsドライブ直下で作業している
解決策:
# WSL側のホームディレクトリに移動
mkdir -p ~/work
rsync -avh /mnt/d/your_project/ ~/work/your_project/
cd ~/work/your_project
code .
Q3: Codex/Claudeが別の場所を触る
原因: 作業ディレクトリが不明確
解決策: 指示に相対パスを必ず含める
「./apps/web/src/App.tsx を修正」
「packages/shared 配下の *.ts から unused export 削除」
Q4: 改行の長文が打ちづらい
解決策:
- パネル最大化(
Ctrl+Alt+M
) - 右パネル化
- 必要ならZen Mode(
Ctrl+K Z
)
Q5: 画像が添付できない(WSL)
原因: クリップボード貼り付けが不安定
解決策: ファイル指定を使う
codex --image ~/screenshots/error.png "このエラーを説明して"
環境別セットアップ手順
Python環境
# venv作成
sudo apt update && sudo apt install -y python3-venv
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
# VS Codeで選択
# Ctrl+Shift+P → "Python: Select Interpreter" → .venv を選択
Node.js環境
# nvmでNode管理
curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.nvm/nvm.sh
nvm install --lts
node -v && npm -v
まとめ
この構成の強み
- Ubuntuの快適さ: Linux標準のツールチェーンがそのまま使える
- Windowsの利便性: ブラウザ、Office、各種ドライバはWindows側で
- 統合された開発体験: VS CodeがWSLとシームレスに連携
- AIアシスタントの最大活用: Codex/Claude Codeが安定動作
- 再現性の高い環境: Dev Containersでどこでも同じ環境
最終チェックリスト
- Remote-WSL拡張をインストール
-
WSL窓で開く(左下が
WSL: Ubuntu
) -
プロジェクトを
~/work/...
に配置 - settings.jsonを設定
- keybindings.jsonを設定
- Codex/Claude CodeをWSLにインストール
- ターミナルの既定をWSLに
- Git設定を完了
- Dev Containers導入(推奨)
次のステップ
- tasks.json / launch.jsonで開発タスクを自動化
- AGENTS.mdでプロジェクト固有の作法を定義
- CI/CDとの統合
- チーム全体への展開
この環境があれば、Windows 11 ProでもUbuntuと同等以上の快適な開発体験が得られます。AIアシスタントを最大限活用しながら、効率的な開発を進めていきましょう!
参考リンク
執筆日: 2025年10月
対象環境: Windows 11 Pro, WSL2 (Ubuntu), VS Code 1.98+