Cursor エディタ パワーユーザーガイド:Composer、コンテキスト管理、そしてプロダクション向けワークフロー

Dev.to / 2026/4/7

💬 オピニオンTools & Practical Usage

要点

  • Cursorは、コードベースのインデックス作成、インラインの差分表示、そしてエージェント型のマルチファイル・ワークフロー(Composer)によって差別化された、AIファーストのVS Codeベースのエディタとして提示されています。
  • パワーユーザーは、Cmd+K を使って、自然言語の指示によりインラインかつ選択範囲にスコープを限定した編集を行い、キーボードショートカットで変更の採用/却下ができます。
  • Cmd+L は、インデックス済みリポジトリ全体を活用するチャットを可能にし、関連するファイルと行番号を引用して回答し、特定のドキュメントやコードを対象にするための @ メンションにも対応しています。
  • Composer(Cmd+I)は、複数ファイルにまたがる協調的な変更を必要とする、より大規模なプロダクション作業向けに位置付けられており、単一の機能に対する編集ではなく、エンドツーエンドの機能開発に適しています。

Cursor は、VS Code 上に構築された「AI-first」のコードエディタです。Copilot だけではありません。コンテキスト認識、多ファイル編集、そしてエージェントモードによって、コードベース全体にわたって計画し実行できます。実運用で効果的に使う方法を紹介します。

何が Cursor と違うのか

VS Code + Copilot:オートコンプリートと単一ファイルのチャット。

Cursor

  • Cmd+K:自然言語によるインライン編集
  • Cmd+L:コードベースのコンテキスト付きでチャット
  • Cmd+I:Composer — マルチファイルのエージェントモード
  • @ メンション:特定のファイル、ドキュメント、Webページを参照
  • 自動コードベースインデックス:Claude がプロジェクト全体を把握

Cmd+K:インラインエディタ

任意のコードを選択し、Cmd+K を押して、変更内容を説明します:

Selected: the getUserById function
Prompt: "ユーザーが存在しない場合のエラーハンドリングを追加してください。 
         lib/errors.ts から NotFoundError をスローしてください"

Cursor は差分をインラインで表示します。Tab で受け入れ、Esc で却下できます。

新しいコードの場合:

Cursor in empty function body, Cmd+K:
"ID でデータベースからユーザーを取得し、セッションの userId に対して所有権を検証し、
 return user または UnauthorizedError をスローする"

Cmd+L:コンテキスト付きでチャット

チャットのサイドバーは、コードベース全体にアクセスできます:

"Stripe の支払いが失敗したときのフローは?
 webhook ハンドラからデータベース更新、メール送信まで順に説明して。"

Cursor はコードベースをインデックス化して、関連するファイルを見つけます。回答には、行番号付きで実際のコードが引用されます。

@ を使って特定のコンテキストを追加します:

"@lib/errors.ts でのエラー処理はどうすべき?
 @app/api/users/route.ts のパターンに従う形で。"

Composer:マルチファイルのエージェントモード

複数ファイルにまたがる大きなタスクの場合:

Cmd+I:
"招待機能をチームに追加してください。ユーザーがメールで別のユーザーを招待したら:
1. データベースに招待レコードを作成
2. 既存のメール設定を使って Resend 経由でメールを送信
3. 受信者がリンクをクリックしてチームに参加
4. 有効期限切れの招待を処理(48hr TTL)

@app/[orgSlug] の既存のチーム管理コードを参照してください"

Composer は変更内容を計画し、要約を表示した後、関連するすべてのファイルに対して反映します。

コンテキスト管理

Cursor の @ メンションにより、より正確に指示できます:

@app/api/webhooks/stripe/route.ts  -- 特定のファイルを参照
@prisma/schema.prisma              -- スキーマを参照
@Stripe docs                       -- Stripe のドキュメントを取り込む
@https://docs.resend.com           -- 任意の URL を参照

.cursorrules

Cursor における CLAUDE.md 相当:

# .cursorrules
これは TypeScript の Next.js 14 App Router プロジェクトです。

Stack:
- データベース:Prisma + Neon(PostgreSQL)
- 認証:NextAuth v5(Google + GitHub)
- 決済:Stripe
- UI:Tailwind + shadcn/ui
- テスト:Vitest + Testing Library

Conventions:
- Server Components を優先し、「use client」は必要なときだけ使用
- API 境界では Zod で入力をすべて検証する
- lib/logger.ts の logger を使う(console.log ではない)
- すべてのユーティリティ関数に対してテストを書く

ワークフロー:コードレビュー

After writing code, Cmd+L:
"@app/api/checkout/route.ts に直前に書いたコードをレビューしてください。
確認してほしいこと:セキュリティ上の問題、エラーハンドリングの不足、
競合状態(race condition)、そして本番で失敗しそうなこと。"

ワークフロー:デバッグ

Cmd+L with error pasted:
"TypeError: Cannot read properties of undefined (reading 'id')
 at getUserById (/app/lib/users.ts:23:15)

 こちらが関数です:@app/lib/users.ts
 エラーが起きるのは @app/api/webhooks/stripe/route.ts からの webhook を処理するときです"

プライバシー設定

専有コードベースの場合は、テレメトリとコード送信を無効化します:
Cursor Settings → Privacy → 「Do not use my codebase for training」

whoffagents.com の Ship Fast Skill Pack は、Cursor と Claude Code の両方で動作します — スキルは認証、決済、デプロイに対して AI エディタに特化したコンテキストを提供します。$49 の一回払い。