「VS CodeでYAMLファイルを編集しているけど、構造がわかりにくい…」
「どんな階層になっているかパッと見てわからない」
「JSONのようにツリー表示で確認できたら楽なのに」
「大きなKubernetesマニフェストで迷子になる」
複雑なYAMLファイルを編集していて、こんなふうに感じたことはありませんか?
実は、VS Codeには適切な拡張機能を使うことで、YAMLの内容を視覚的にプレビューして確認できる方法がいくつかあります。
ツリー表示、JSON変換、アウトライン表示など、様々なアプローチでYAMLファイルの構造を理解しやすくできます。
この記事では、VS CodeでYAMLをプレビューするおすすめ拡張機能を、具体的な使い方と一緒にわかりやすく紹介します。
YAMLプレビューが必要な理由

YAMLファイルの構造的課題
YAMLファイルを扱う際によくある問題:
課題 | 問題点 | 影響 |
---|---|---|
階層の深さ | ネストが深くて構造が見えない | 編集ミス、理解困難 |
ファイルサイズ | 数百行〜数千行のファイル | 全体像の把握困難 |
複雑な配列 | リストの中にオブジェクトが混在 | 対応関係の混乱 |
キーの重複 | 似たようなキーが複数箇所に存在 | 編集箇所の特定困難 |
プレビュー機能で解決できること
Before(標準のVS Code):
# 長いYAMLファイルの一部しか見えない
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
labels:
app: my-app
version: v1.0.0
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
# ... さらに続く深い階層
After(プレビュー機能使用):
- ツリー構造で全体像を把握
- クリックで該当箇所にジャンプ
- 折りたたみ表示で必要な部分のみ表示
- JSON変換で別の視点から確認
必須のYAMLプレビュー拡張機能
1. YAML Viewer – ツリー構造の可視化
基本情報
項目 | 内容 |
---|---|
拡張機能名 | YAML Viewer |
開発者 | Adam Voss |
主な機能 | サイドバーでのツリー表示 |
対応ファイル | .yml, .yaml |
主な機能
🌳 階層ツリー表示
- YAMLの構造をサイドバーにツリー形式で表示
- 折りたたみ・展開が自由自在
- 深いネストも一目瞭然
🎯 ジャンプ機能
- ツリーのノードをクリックで該当行にジャンプ
- 編集とプレビューの連携がスムーズ
🔍 リアルタイム更新
- ファイルを編集すると即座にツリーも更新
- 常に最新の構造を表示
インストールと使用方法
インストール手順:
- VS Codeの拡張機能パネル(Ctrl+Shift+X)を開く
- 「yaml viewer」で検索
- 「YAML Viewer」を選択してインストール
使用方法:
- YAMLファイルを開く
- サイドバーに自動的にYAMLツリーが表示される
- ツリーのノードをクリックして該当箇所にジャンプ
実例での活用
Kubernetesマニフェストの場合:
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
env:
- name: ENV_VAR
value: "production"
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
YAML Viewerでの表示例:
📁 deployment.yaml
├── 📄 apiVersion: "apps/v1"
├── 📄 kind: "Deployment"
├── 📁 metadata
│ ├── 📄 name: "nginx-deployment"
│ └── 📁 labels
│ └── 📄 app: "nginx"
├── 📁 spec
│ ├── 📄 replicas: 3
│ ├── 📁 selector
│ │ └── 📁 matchLabels
│ │ └── 📄 app: "nginx"
│ └── 📁 template
│ ├── 📁 metadata
│ └── 📁 spec
│ └── 📁 containers[0]
│ ├── 📄 name: "nginx"
│ ├── 📄 image: "nginx:1.21"
│ ├── 📁 ports[0]
│ ├── 📁 env[0]
│ └── 📁 resources
2. YAML ♥ JSON – 形式変換とプレビュー
基本情報と機能
主な機能:
- YAMLとJSONの相互変換
- 変換結果の新しいタブ表示
- JSONフォーマッターとの連携
使用方法
変換手順:
- YAMLファイルを開いた状態で右クリック
- 「Convert YAML to JSON」を選択
- 新しいタブにJSON形式で表示される
- VS CodeのJSONツリー表示機能が使える
逆変換も可能:
- JSONファイルからYAMLへの変換
- 「Convert JSON to YAML」で実行
実例
元のYAMLファイル:
name: my-app
version: 1.0.0
dependencies:
- express
- mongoose
- dotenv
config:
database:
host: localhost
port: 27017
name: mydb
server:
port: 3000
cors: true
JSON変換後:
{
"name": "my-app",
"version": "1.0.0",
"dependencies": [
"express",
"mongoose",
"dotenv"
],
"config": {
"database": {
"host": "localhost",
"port": 27017,
"name": "mydb"
},
"server": {
"port": 3000,
"cors": true
}
}
}
3. Outline Map – ドキュメント構造の俯瞰
機能概要
VS Code標準のアウトライン機能を強化して、YAMLファイルの構造をミニマップ形式で表示します。
設定方法
{
// settings.json
"outline.showFiles": true,
"outline.showModules": true,
"outline.showClasses": true,
"outline.showProperties": true,
// YAMLアウトライン表示の強化
"yaml.format.enable": true,
"editor.minimap.enabled": true,
"editor.minimap.showSlider": "always"
}
活用例
サイドバーの「OUTLINE」パネルに、YAMLの主要なキーが階層構造で表示されます:
OUTLINE
├─ apiVersion
├─ kind
├─ metadata
│ ├─ name
│ └─ labels
└─ spec
├─ replicas
├─ selector
└─ template
高度なプレビューテクニック

4. YAML Path + プレビューの組み合わせ
設定例
{
// YAML Pathをステータスバーに表示
"yaml.telemetry.enabled": false,
"yaml.trace.server": "off",
// ブレッドクラム表示を有効化
"breadcrumbs.enabled": true,
"breadcrumbs.showFiles": true,
"breadcrumbs.showSymbols": true
}
実用例
大規模なYAMLファイルで現在の編集位置を把握:
# カーソル位置: spec.template.spec.containers[0].resources.limits.memory
# ステータスバー表示: spec → template → spec → containers[0] → resources → limits → memory
5. カスタムスニペットでプレビュー機能強化
YAMLスニペットの作成
// snippets/yaml.json
{
"Kubernetes Deployment": {
"prefix": "k8s-deploy",
"body": [
"apiVersion: apps/v1",
"kind: Deployment",
"metadata:",
" name: ${1:app-name}",
" labels:",
" app: ${1:app-name}",
"spec:",
" replicas: ${2:1}",
" selector:",
" matchLabels:",
" app: ${1:app-name}",
" template:",
" metadata:",
" labels:",
" app: ${1:app-name}",
" spec:",
" containers:",
" - name: ${1:app-name}",
" image: ${3:nginx:latest}",
" ports:",
" - containerPort: ${4:80}"
],
"description": "Kubernetes Deployment template"
}
}
実践的なワークフロー
大規模YAMLファイルの編集ワークフロー
ステップ1:全体構造の把握
- YAML Viewerでツリー表示
- ファイルを開いて全体構造を確認
- 主要なセクションを把握
- Outlineパネルで概要確認
- 主要なキーの一覧を表示
- 編集が必要な箇所を特定
ステップ2:詳細編集
- ツリーから該当箇所にジャンプ
- YAML Viewerのノードをクリック
- 編集したい箇所に素早く移動
- YAML Pathで現在位置確認
- ステータスバーで正確な位置を把握
- 深いネストでも迷子にならない
ステップ3:検証とプレビュー
- JSON変換で構造確認
- YAML ♥ JSONで変換
- JSONツリー表示で構造を再確認
- Lintでエラーチェック
- YAML拡張機能のLint機能
- リアルタイムでエラーを検出
CI/CDパイプライン設定のプレビュー例
GitHub Actionsワークフローの編集:
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
env:
NODE_VERSION: '18'
PYTHON_VERSION: '3.9'
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16, 18, 20]
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: |
npm run test:unit
npm run test:integration
- name: Upload coverage
uses: codecov/codecov-action@v3
with:
file: ./coverage/lcov.info
build:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build application
run: |
npm ci
npm run build
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: build-files
path: dist/
プレビューでの確認ポイント:
- ジョブの依存関係(
needs: test
) - マトリックス戦略の設定
- ステップの順序と条件
トラブルシューティング

よくある問題と解決法
1. YAML Viewerに何も表示されない
症状: サイドバーにツリーが表示されない
解決法:
{
// ワークスペース設定で有効化
"yaml.viewer.enabled": true,
// ファイル関連付けの確認
"files.associations": {
"*.yml": "yaml",
"*.yaml": "yaml"
}
}
2. プレビューが更新されない
症状: ファイルを編集してもプレビューが更新されない
解決法:
- VS Codeを再起動
- 拡張機能を無効化→有効化
- 設定の確認:
{
"yaml.format.enable": true,
"yaml.validate": true
}
3. 大きなファイルでパフォーマンスが悪い
症状: プレビュー表示が重い、遅い
解決法:
{
// パフォーマンス最適化
"yaml.maxItemsComputed": 5000,
"yaml.suggest.parentSkeletonSelectedFirst": true,
// 大きなファイルでの制限
"editor.largeFileOptimizations": true
}
デバッグ機能の活用
ログの確認
- コマンドパレット(Ctrl+Shift+P)を開く
- “Developer: Toggle Developer Tools”を選択
- Consoleタブでエラーメッセージを確認
拡張機能の競合確認
# VS Codeの拡張機能フォルダ
# Windows: %USERPROFILE%\.vscode\extensions
# macOS: ~/.vscode/extensions
# Linux: ~/.vscode/extensions
競合する可能性のある拡張機能:
- 複数のYAML拡張機能
- 古いバージョンの残存
- 類似機能の拡張機能
VS Code設定の最適化
プレビュー機能を最大限活用する設定
{
// === YAML プレビュー最適化 ===
"yaml.format.enable": true,
"yaml.validate": true,
"yaml.hover": true,
"yaml.completion": true,
// === ツリー表示設定 ===
"outline.showFiles": true,
"outline.showModules": true,
"outline.showClasses": true,
"outline.showProperties": true,
// === エディタ表示設定 ===
"editor.minimap.enabled": true,
"editor.minimap.showSlider": "always",
"breadcrumbs.enabled": true,
"breadcrumbs.showSymbols": true,
// === ファイル関連付け ===
"files.associations": {
"*.yml": "yaml",
"*.yaml": "yaml",
".github/workflows/*": "yaml",
"docker-compose*.yml": "yaml",
"kustomization.yaml": "yaml"
},
// === パフォーマンス設定 ===
"yaml.maxItemsComputed": 5000,
"editor.largeFileOptimizations": true,
// === 表示設定 ===
"editor.renderWhitespace": "boundary",
"editor.guides.indentation": true,
"editor.bracketPairColorization.enabled": true
}
ワークスペース別設定
プロジェクト固有の設定を.vscode/settings.json
に保存:
{
// Kubernetesプロジェクト用設定
"yaml.schemas": {
"https://raw.githubusercontent.com/instrumenta/kubernetes-json-schema/master/v1.18.0/all.json": "*.k8s.yaml"
},
// プロジェクト固有のファイル関連付け
"files.associations": {
"*.k8s.yml": "yaml",
"*-deployment.yml": "yaml",
"*-service.yml": "yaml"
}
}
まとめ:VS CodeでYAMLプレビューを活用しよう
VS Codeの拡張機能を活用することで、YAMLファイルの編集体験は劇的に向上します。
今回紹介したプレビュー手法
手法 | 用途 | おすすめ度 |
---|---|---|
YAML Viewer | ツリー構造の可視化 | ★★★★★ |
YAML ♥ JSON | JSON変換プレビュー | ★★★★☆ |
Outline Map | ドキュメント構造俯瞰 | ★★★☆☆ |
YAML Path | 現在位置の把握 | ★★★☆☆ |
効果的な活用シーン
Kubernetes開発:
- 複雑なマニフェストの構造把握
- リソース間の関係性確認
- デバッグ時の問題箇所特定
CI/CD設定:
- パイプライン設定の可視化
- ジョブ依存関係の確認
- 設定ミスの早期発見
大規模設定ファイル:
- Ansible Playbook
- Docker Compose
- アプリケーション設定
コメント