RubyMine 2026.3 Help

YAML

RubyMine で YAML ファイル( .yml 、 .yaml )の操作が可能になり、次の機能がサポートされます:

エディターで利用可能な YAML 固有の機能をいくつか見てみましょう。

アンカーとエイリアス

RubyMine ではアンカーとエイリアスの利用がサポートされています。 YAML ファイルで新しいアンカーを指定すると、エディターはこのアンカーがどのノードでも使用されていないという警告を表示します。

YAML: 未使用のアンカー警告

エディターを使用すると、このアンカーのエイリアスを 完成させることができます。

YAML: 完全なエイリアス

アンカーの使用箇所をすばやく見つけるには、アンカー上にキャレットを置き、 Ctrl+B を押します。

YAML: エイリアスに移動する

RubyMine ではアンカーとエイリアスに対する リネームリファクタリングがサポートされています。キャレットをアンカーに置いて Shift+F6 を押してください。 またはアンカーを右クリックして リファクタリング | 名前の変更 を選択します。

renaming the YAML anchor

構造 ツールウィンドウ (Alt+7) を使用して、YAML ファイル内をすばやく移動します。 構造 ツールウィンドウで再利用されたアンカーの要素を表示または非表示にするには、 表示オプション use エイリアスサブツリー をクリックします。

YAML 構造ビュー

JSON スキーマ

RubyMine では、JSON スキーマを用いた YAML ファイルのコード補完やインスペクションをサポートしています。 RubyMine はスキーマを自動的に(ファイルの場所や構造に基づいて)推測できますし、 手動で選択することもできます。 たとえば、 .github/workflows ディレクトリに GitHub Actions ワークフローファイルがある場合、RubyMine は schemastore.org から自動的に読み込まれる github-workflow.json スキーマに基づいてオプションの補完を提案します:

YAML: スキーマに基づいて完成

設定 ダイアログ (Ctrl+Alt+S) の 言語 & フレームワーク | スキーマと DTD | リモート JSON スキーマ ページを使用して、JSON スキーマのロードを管理できます。

必要に応じて、 言語 & フレームワーク | スキーマと DTD | JSON スキーママッピング で必要なスキーマファイルへのパスを指定できます。

ファイルの JSON スキーマを選択する

特定のファイルにカスタムスキーマを指定できます。

  1. ステータスバーのスキーマスイッチャーをクリックします。

    ファイルのスキーマを選択する
  2. 表示されたリストで、提案されたスキーマのいずれかを選択するか、 新規スキーママッピング… をクリックします。 これにより、ファイルのローカルスキーマまたはリモートスキーマを指定できる JSON スキーママッピング 設定が開きます。

スキーマからプロパティを取得する

RubyMine が YAML ファイルのスキーマを検出した場合、専用アクションですべてのプロパティをそのファイルにすばやく挿入できるので、手動入力は不要です。

  • スキーマに必須のプロパティが含まれており、これらの特定のプロパティのみを挿入したい場合は、ファイル内の任意の場所で Alt+Enter (コンテキストアクションの表示) を押し、 欠落しているプロパティを追加する を選択します。

  • スキーマで使用可能なすべてのプロパティを挿入する場合は、ファイル内の任意の場所で Alt+Enter (コンテキストアクションの表示) を押し、 JSON スキーマからすべてのプロパティを入力してください を選択します。

$schema キーワードを使用する

ファイル自体でスキーマを参照することもできます。

  1. ファイルの先頭に # $スキーマ: と入力します。

  2. スキーマファイルの名前の入力を開始します。 schemastore.org から読み込まれたスキーマ名の補完を利用できます。≤br/≥

    ローカルスキーマファイルを使用する場合は、スキーマを使用するファイルに対する相対パスを指定します (例: # $スキーマ: ./my-schema.json)。 これにより、インスペクション、補完、プロパティ入力アクションなど、リモートスキーマを使用する場合と同じコーディング支援が可能になります。

    Completion from local schema

キーのコピー

RubyMine では、YAML ファイルで指定された特定のオプションへのフルパスをコピーできます。 たとえば、 これはローカライゼーションファイル(英語)からキーパスをコピーするときに役立ちます。 これは 2 つの方法で実行できます。

  • 必要なキーにキャレットを置き、 Ctrl+Alt+Shift+C を押します。

  • 必要なキーにカーソルを合わせ、右クリックして 参照をコピー を選択します。

YAML: 参照をコピー

例: 上のイメージでは、 default.サーバー.port がコピーされます。

入力ハンドラー

YAML ファイルを編集するとき、RubyMine はインデント、シーケンスマーカー、角括弧、引用符を維持します。 次の例では、 <caret> はキャレット位置を示します。

シーケンスマーカー

シーケンス項目の後で Enter を押すと、RubyMine は新しい項目を開始し、 - マーカーを自動的に挿入します:

services: - nginx<caret>
services: - nginx - <caret>

空の項目で Enter をもう一度押すと、RubyMine はマーカーを削除し、ネストされたシーケンス内も含めて、キャレットを親のインデントレベルに移動します。

シーケンス項目にマッピングが含まれている場合、 Enter を押すと、マーカー挿入が有効な場合でも、2 つ目のマーカーを追加せずに新しいインデント行でマッピングを続行します:

services: - name: web<caret> - name: db
services: - name: web <caret> - name: db

空の項目を削除するには、 - マーカーに続くスペースの後で Backspace を押します。 RubyMine は - とそれに続くスペースを 1 回のアクションで削除します。 同じ行で値がマーカーの後に続く場合でも、RubyMine はマーカーをスペースと一緒に削除し、値をそのまま残します:

services: - <caret>nginx
services: <caret>nginx

インデント

Enter を押すと、RubyMine は現在の構造に一致するインデントレベルで新しい行を維持します:

  • 値のないキーの後では、新しい行が 1 レベル深くインデントされます。

  • キーと値のペアの後では、新しい行は同じレベルに留まります。

  • ブロックスカラーインジケーター (|) の後では、新しい行が 1 レベル深くインデントされ、以降の行はそのレベルに留まります。

database:<caret>
database: <caret>

ブロックスカラー内では、新しい行は標準のブロックインデント、つまりキーの 1 レベル下に配置されます。 現在の行が手動で過剰にインデントされている場合でも、新しい行は過剰にインデントされたテキストに揃えるのではなく、標準のブロックインデントを使用します。

完了したエントリの下にある空白のみを含む行で Enter を押すと、RubyMine は新しい行を再整列するのではなく、手動で設定したインデントを維持します。

まだ項目がないシーケンス内の空行で - に続けてスペースを入力すると、RubyMine はマーカーのインデントを修正します。 インデントシーケンス値 オプションが有効な場合、マーカーは親キーより 1 レベル深い位置に配置されます; オプションが無効な場合、マーカーは親キーに揃えられます。 シーケンスにすでに項目が含まれている場合、マーカーは現在のインデントを維持します。 このオプションは、 エディター | コードスタイル | YAML ページの 設定 ダイアログ (Ctrl+Alt+S) で確認できます。

角括弧と引用符

キーまたは値の位置では、RubyMine はフローコレクションと引用符付きスカラーを自動的に閉じます。 [、 {、 " 、または ' を入力すると、RubyMine は対応する文字を挿入し、ペアの間にキャレットを置きます:

ports: <caret>
ports: [<caret>]

自動クローズは、新しいキーまたは値の位置や既存のフローコレクション内の位置など、文字が YAML 構造トークンを開始する場所にのみ適用されます。 キャレットがプレーンスカラーテキスト内またはその直後にある場合、RubyMine はその文字を通常のテキストとして挿入し、何も閉じません。

同じ文字の直前で閉じる ]、 } 、または引用符を入力すると、RubyMine は重複を挿入せずに、その文字の後ろへキャレットを移動します。 ただし、次の文字がペアになっていない引用符の場合、同じ引用符文字を入力すると、既存の引用符を越えて移動するのではなく、新しいペアが作成されます。

空のペアを削除するには、2 つの文字の間で Backspace を押すと、RubyMine が両方を削除します。

キーと項目の移動

キー、ネストされたブロック、またはシーケンス項目を移動するには、その上にキャレットを置き、 Ctrl+Shift+Up または Ctrl+Shift+Down を押します。 RubyMine はネストされた内容を含むエントリ全体を移動し、インデントを正しく維持します:

services: web<caret>: image: nginx db: image: postgres
services: db: image: postgres web<caret>: image: nginx

複数のエントリを選択すると、RubyMine は選択範囲をエントリ全体に拡張し、グループとして移動します。

貼り付け

YAML ファイルに内容を貼り付けると、RubyMine はターゲット構造に合わせて調整します:

  • シーケンスに貼り付けられたプレーン行は個別の項目になり、それぞれに独自の - マーカーが付きます。

  • 貼り付けた行が - で始まる場合、またはプレフィックス付きの行とプレフィックスなしの行が混在している場合、RubyMine は各行にマーカーが正確に 1 つあるようにマーカーを正規化します。

  • spring.datasource.url などのドット付きパスは、ネストされたキーに展開されます。

  • 複数行ブロックは、最初の行がキャレットのインデントに一致するように再インデントされ、内部の行は相対的なインデントを維持します。 空行は空のままです。

  • 既存のキーの直前に貼り付けると、RubyMine は貼り付けたブロックを再インデントし、既存のキーを元の列に維持します。

たとえば、マッピング位置に spring.datasource.url を貼り付けます:

config: <caret>
config: spring: datasource: url:<caret>

ドット付きキーの展開を有効または無効にするには、 貼り付け時にキーシーケンスを自動展開する オプションを エディター | 一般 | スマートキー | YAML ページの 設定 ダイアログ (Ctrl+Alt+S) で使用します。

2026 年 11 月 9 日