Cursorは、VS Codeをベースに開発されたAIネイティブなコードエディタです。VS Codeの拡張機能ではなく独立したIDEとして動作し、AIによるコード補完・複数ファイルの一括編集・コードベース全体への質問など、AIを前提に設計された機能が揃っています。Stripe・OpenAI・NVIDIAなど多くのテック企業の開発者が使い始めており、「Copilotの次のステップ」として注目されています。
この記事では、Cursorのインストールから実務レベルの活用までを一気通貫で解説します。VS Codeからの移行方法・各機能の使いどころ・TypeScript開発での実践テクニック・プロジェクト規約の自動反映・GitHub Copilotとどう使い分けるかまで網羅します。
- Cursorとは何か・VS Codeとの違い
- 料金プラン(Free/Pro/Teams)の違いと選び方
- インストール方法・VS Codeの設定を1クリックで移行する手順
- Tab補完・Cmd+K(インライン編集)・Composer・Chat 各機能の使い方
@記法でファイル・ドキュメントをAIに参照させる方法.cursor/rulesでプロジェクト固有のAIルールを設定する方法- TypeScript開発で生産性が上がる実践テクニック
- GitHub Copilotとの違いと正しい使い分け方
- 動作が遅い・補完が出ないときの対処法
CursorとはどんなAIエディタか
CursorはVS Codeのソースコードをフォーク(複製・改変)して作られています。そのためVS Codeとほぼ同じ操作感・拡張機能・テーマが使えますが、AIとの連携が拡張機能ではなくエディタ本体に深く組み込まれている点が異なります。
| 比較項目 | Cursor | VS Code + GitHub Copilot |
|---|---|---|
| 形態 | VS Codeフォークの独立IDE | VS Code本体 + 拡張機能 |
| AIモデル | Claude・GPT-4o・Geminiなど複数から選択 | GitHub提供モデル(Copilot専用) |
| 複数ファイル編集 | Composerで強力に対応 | Copilot Editsで対応 |
| コードベース参照 | @ で任意のファイル・フォルダを指定 | 開いているファイルが中心 |
| プロジェクトルール | .cursor/rules に記述 | .github/copilot-instructions.md |
| 月額 | $20/月(Pro) | $10/月(Pro) |
VS Codeとの互換性が高いため、使い慣れた操作感のままAIを強化できるのが強みです。既存のVS Code設定・拡張機能・キーバインドをほぼそのまま持ち込めます。
料金プランの選び方
| プラン | 月額 | 主な対象 | 特徴 |
|---|---|---|---|
| Hobby(無料) | $0 | 試用・学習 | 制限付きのAIリクエスト。Tab補完・Composer・Chatを試せる |
| Pro | $20/月 | 個人開発者 | 無制限Tab補完・AIリクエスト。Claude・GPT-4oなど複数モデル選択可 |
| Teams | $40/ユーザー/月 | チーム | 共有チャット・一元管理・使用分析・SAML/OIDC SSO対応 |
| Enterprise | 要問合せ | 大企業 | カスタム契約・請求書払い・SCIM管理・優先サポート |
まずHobby(無料)で機能を試し、毎日使うようになったらProへ移行するのが鉄板です。業務コードを扱う場合は入力したコードがAI学習に使われるかどうかをポリシーで確認してください。年間払いにすると20%割引が適用されます。
インストールとVS Codeからの移行
インストール手順
- cursor.com にアクセスし「Download」をクリック
- Mac:ダウンロードした
.dmgを開いてApplicationsフォルダにドラッグ - Windows:インストーラーを実行してセットアップウィザードを完了
- 初回起動時にアカウント作成(GitHubアカウントでも登録可)
VS Codeの設定を1クリックで移行する
初回起動時に「VS Codeの設定をインポートしますか?」というダイアログが表示されます。「Import from VS Code」を選ぶと、拡張機能・キーバインド・テーマ・設定が自動で移行されます。後から移行する場合は以下の手順で行えます。
Ctrl + Shift + P(Mac:Cmd + Shift + P)でコマンドパレットを開く- 「Cursor Settings」または
Ctrl + Shift + Jで設定画面を開く - 「General」→「VS Code Import」から「Import」をクリック
CursorはVS Codeとは別のIDEのため、Microsoftのマーケットプレースのみで配布されている一部の拡張機能は利用できないことがあります。Open VSX Registryに登録されている拡張機能は問題なく使えます。主要な言語サポート(TypeScript・Python・Go等)はほぼすべて移行できます。
推奨初期設定
インストール後、以下の設定を済ませておくとスムーズに使い始められます。Ctrl + Shift + J(Mac: Cmd + Shift + J)で Cursor Settings を開いてください。
| 設定項目 | 推奨値 | 理由 |
|---|---|---|
| Models | claude-3.5-sonnet(デフォルト) | コーディング精度が高く安定している |
| Privacy Mode | Enabled(Teamsプラン以上) | 業務コードを学習に使わせない |
| Cursor Tab | Enabled | Tab補完を有効化(デフォルトON) |
| Docs | TypeScript / Node.js等を追加 | @Docs で公式ドキュメントを参照可能に |
Tab補完(Cursor Tab)の使い方
Cursor TabはCopilotの補完に近い機能ですが、直前の編集・カーソル位置・ファイル全体の構造を組み合わせて補完するため、文脈をより深く理解した提案が出やすいとされています。
| 操作 | ショートカット(Windows/Linux) | ショートカット(Mac) |
|---|---|---|
| 補完を受け入れる | Tab |
Tab |
| 補完を無視する | そのまま入力 | そのまま入力 |
| 単語単位で受け入れ | Ctrl + → |
Cmd + → |
| 補完を手動トリガー | Alt + \ |
Option + \ |
- 型定義を先に書く:インターフェースや型エイリアスを定義してから実装を書き始めると精度UP
- 関数名を具体的にする:
process()よりvalidateAndSaveUser()の方が意図が伝わる - コメントで意図を補足:「// ページネーション付きで返す」のような一行コメントが効果的
- テストファイルを先に書く:テストコードがあると実装の補完精度が大幅に上がる
Cmd+K(インライン編集)の使い方
Ctrl + K(Mac: Cmd + K)を押すと、その場にプロンプト入力欄が出現して、選択箇所の書き換えや新しいコードの生成ができる機能です。コードを選択してから押すと選択箇所を書き換え、何も選択せずに押すと新しいコードをカーソル位置に挿入します。チャットパネルを開かずにピンポイントで操作できます。
代表的な使い方
| やりたいこと | プロンプト例 |
|---|---|
| コードの書き直し | 「for文をArray.reduceで書き直して」 |
| 型の追加 | 「この関数に引数と戻り値の型を追加して」 |
| エラー修正 | 「TypeScript TS2345エラーを修正して」 |
| コメント追加 | 「このロジックにJSDocコメントを日本語で追加して」 |
| コードの最適化 | 「このループをO(n)で実装し直して」 |
| コードの翻訳 | 「このJavaScriptをTypeScriptに変換して」 |
Cmd+K の操作フロー
- 修正したいコードを選択
Ctrl + K(Mac:Cmd + K)を押す- プロンプト欄に指示を入力してEnter
- 提案されたコードをdiff形式でプレビュー確認
Ctrl + Enterで受け入れ、Ctrl + Backspaceで拒否
ターミナルで Ctrl + K を押すと、ターミナル内でコマンドをAIに生成させる機能も使えます。「現在のディレクトリのTypeScriptファイルをすべてコンパイルするコマンド」のように頼めます。
Composerで複数ファイルを一括編集する
Composerは複数ファイルにまたがる変更を自然言語で指示できる機能です。「新しいAPIエンドポイントを追加して、型定義・サービス・コントローラー・テストも一緒に作って」といった大きな変更を、ファイルをまたいで実行できます。
Composerの開き方とモード
Ctrl + I(Mac: Cmd + I)でComposerパネルが開きます。画面右側にチャット形式のパネルが出現し、プロジェクト内のファイルを参照しながら編集を進められます。
| モード | 特徴 | 向いているケース |
|---|---|---|
| Agentモード(デフォルト) | AIが自律的にファイルを作成・編集・コマンド実行まで行う | 新機能の追加・大規模リファクタリング |
| Askモード(Manual) | 変更を提案するが自動実行しない。確認しながら進められる | 特定ファイルの変更・慎重に確認したいリファクタ |
Composerの使い方手順
Ctrl + I(Mac:Cmd + I)でComposerを開く- 関係するファイルを
@ファイル名で参照に追加する(省略可) - 変更内容を具体的に指示する
- AIが提案した変更をファイルごとにdiffで確認
- 「Accept All」で全変更を適用、または個別に承認・拒否
精度が上がる指示の書き方
Composerに指示するときは、「何を・どのように・既存のどこと整合させて」を明示するほど精度が上がります。
| NG(曖昧な指示) | OK(具体的な指示) |
|---|---|
| 「認証機能を追加して」 | 「JWTを使ったログイン機能を追加して。`src/auth/` に `AuthService`・`AuthController` を作成し、`UserSchema`(@src/schemas/user.ts)を使ってください」 |
| 「テストを書いて」 | 「@src/services/payment.ts の `processPayment()` に対してVitestのユニットテストを書いて。正常系・金額0・負数・APIエラーのケースを含めて」 |
| 「型を直して」 | 「@src/api/client.ts の `fetchUser()` の戻り値型を `Promise<User | null>` に変更して、呼び出し元(@src/pages/)も合わせて修正して」 |
AgentモードのAIはファイルの作成・削除・コマンド実行まで自律的に行います。本番環境や重要なファイルを操作するときは必ずdiffを確認してから承認してください。Gitでコミットしておくと、万が一のときにすぐ戻せます。
Chat機能と@参照でコードベースに質問する
Chat(Ctrl + L / Mac: Cmd + L)はコードを変更せずに質問・相談・解説を受けられる機能です。Composerとの違いは「自動でコードを書き換えない」点で、設計の相談・エラーの原因調査・仕様の確認などに使います。
@記法でコンテキストを指定する
ChatやComposerで @ を入力すると参照メニューが表示されます。これによりAIが正確なコンテキストを持った状態で回答できます。
| 記法 | 参照できるもの | 使い方の例 |
|---|---|---|
@ファイル名 |
特定のファイル | @src/auth/service.ts の仕様を教えて |
@フォルダ名 |
フォルダ以下全ファイル | @src/components/ の命名規則を分析して |
@Codebase |
プロジェクト全体 | @Codebase でUserという型が定義されている場所を教えて |
@Docs |
登録した外部ドキュメント | @TypeScript Docs のmapped typesの使い方を教えて |
@Web |
Web検索結果 | @Web 最新のNode.js 22のLTS対応状況 |
@Git |
Gitの変更差分 | @Git 直近のコミットで変更した箇所を教えて |
@Docs:公式ドキュメントをAIに読ませる
@Docs は特に便利な機能です。TypeScript・React・Next.jsなどの公式ドキュメントURLを登録しておくと、最新の公式情報に基づいた回答が得られます。ハルシネーション(誤情報)の頻度が下がり、「このAPIは最新バージョンで廃止されていませんか?」のような確認にも使えます。
- Cursor Settingsを開く(
Ctrl + Shift + J) - 「Features」→「Docs」タブを選択
- 「+ Add new doc」をクリックしてURLを入力(例:typescriptlang.org/docs)
- インデックスが作成されると
@Docsで参照できるようになる
.cursor/rules でプロジェクト規約をAIに覚えさせる
Cursorにはプロジェクト固有のAIルールを定義できる仕組みがあります。チームの命名規則・禁止パターン・使用ライブラリなどを書いておくと、ComposerでもChatでもすべての回答・生成コードに自動で反映されます。
ファイルの配置方法
プロジェクトルートに .cursor/rules/ フォルダを作り、.mdc 拡張子のファイルを配置します。ファイルの先頭にfrontmatterを書くことで、適用するファイルパターン(glob)を指定できます。
---
description: TypeScript プロジェクト全体のコーディング規約
globs: **/*.ts, **/*.tsx
alwaysApply: true
---
# TypeScript コーディング規約
## 型定義
- `any` 型は絶対に使わない。代わりに `unknown` を使い、型ガードで絞り込む
- すべての関数に引数・戻り値の型注釈を必須とする
- `interface` より `type` を優先する(ただし拡張が必要な場合は `interface`)
- ジェネリクスの型変数名は意味のある名前にする(`T` 単体より `TItem`・`TResponse`)
## 命名規則
- 変数・関数:camelCase
- 型・インターフェース・クラス:PascalCase
- 定数:UPPER_SNAKE_CASE
- ファイル名:kebab-case
## エラーハンドリング
- `throw` は使わず Result 型パターンを使う
```ts
type Result<T, E = Error> = { ok: true; value: T } | { ok: false; error: E };
```
- 外部APIのエラーは必ず catch して意味のあるメッセージに変換する
## 禁止事項
- `eval()` および `new Function()` の使用禁止
- `as any` キャストの禁止
- `console.log()` を本番コードに残さない(`console.error()` は許可)
--- description: Vitest テスト規約 globs: **/*.test.ts, **/*.spec.ts alwaysApply: false --- # テスト規約 ## フレームワーク - テストフレームワーク:Vitest - アサーション:`expect` を使う(`assert` は使わない) ## 構造 - `describe` でテスト対象の関数・クラス名をグループ化 - `it` の説明は「〜すると〜になる」の形式で日本語で書く - 正常系・異常系・境界値のすべてをカバーする ## モック - `vi.mock()` でモジュールをモック - 外部APIは必ずモックし、実際のネットワークアクセスをしないこと ## 禁止 - `it.only()` をコミットに含めない - `it.skip()` は TODO コメントとセットで書く
Cursor Settings →「Rules for AI」に書いた内容は、どのプロジェクトのChat・Composerにも常時適用されます。「日本語で回答してください」「コードにコメントを必ず付ける」など、個人の好みをここに書いておくと毎回入力する手間が省けます。
TypeScript開発での実践活用テクニック
テクニック1:型定義とインターフェースから実装を生成させる
型定義を先に書いてからComposerに「この型を実装するクラスを作って」と指示すると、TypeScriptの型情報を最大限活用した実装が生成されます。型ファースト → 実装の順番がCursorとの相性がよいです。
// 1. まず型・インターフェースを書く
export interface CacheStore<T> {
get(key: string): T | undefined;
set(key: string, value: T, ttlSeconds?: number): void;
delete(key: string): boolean;
clear(): void;
size(): number;
}
// 2. Composerに「CacheStoreを実装するMemoryCacheクラスを作って。
// TTL(有効期限)を持ち、期限切れのキーは自動削除すること」と指示
// → 型に準拠した実装が自動生成される
テクニック2:エラーメッセージをそのままComposerに貼る
TypeScriptのコンパイルエラーやランタイムエラーのメッセージをそのままComposerのプロンプトに貼り付けるだけで、原因の説明と修正コードを一緒に提案してくれます。特に型エラーは長いメッセージでも正確に解釈してくれます。
// こんなエラーメッセージをComposerに貼る:
// Type '{ id: string; name: string; }' is not assignable to type 'User'.
// Property 'email' is missing in type '{ id: string; name: string; }'
// but required in type 'User'. ts(2741)
// Composerの指示例:
// 「以下のエラーを修正して。@src/types/user.ts の型定義も参照して。
// [エラーメッセージをペースト]」
テクニック3:既存コードのパターンを学習させてから生成
プロジェクト内の既存コードをComposerに参照させながら「同じパターンで作って」と指示すると、プロジェクトの一貫したスタイルを維持したコードが生成されます。特にリポジトリパターン・サービス層・エラーハンドリングなどで効果的です。
// Composerへの指示: // 「@src/repositories/user.repository.ts と同じパターンで、 // Productエンティティの CRUD リポジトリを作成して。 // 型定義は @src/types/product.ts を参照すること」 // Cursorが既存のUserRepositoryの構造を読んで、 // 同じパターン・エラーハンドリング・型定義スタイルでProductRepositoryを生成する
テクニック4:テスト駆動でAIに実装させる
テストを先に書いてからComposerに「このテストが通る実装を書いて」と指示するテスト駆動開発(TDD)との相性が非常によいです。テストがAIへの仕様書として機能するため、意図した動作の実装が得られやすくなります。
// 1. まずテストを書く(Composerの前に)
describe("formatJapaneseDate", () => {
it("Dateオブジェクトを日本語の日付文字列に変換する", () => {
const date = new Date("2026-03-23");
expect(formatJapaneseDate(date)).toBe("2026年3月23日");
});
it("月・日が1桁の場合はゼロパディングしない", () => {
const date = new Date("2026-01-05");
expect(formatJapaneseDate(date)).toBe("2026年1月5日");
});
it("無効な日付はnullを返す", () => {
expect(formatJapaneseDate(new Date("invalid"))).toBeNull();
});
});
// 2. Composerに指示:
// 「@src/utils/date.test.ts のテストをすべて通す
// formatJapaneseDate 関数を src/utils/date.ts に実装して」
GitHub CopilotとCursorの使い分け方
「CopilotかCursorか」という議論をよく見かけますが、どちらが優れているかではなく、何を重視するかで選ぶのが正解です。両者のそれぞれの強みを理解して使い分けましょう。
| シナリオ | おすすめ | 理由 |
|---|---|---|
| VS Codeをそのまま使い続けたい | GitHub Copilot | 拡張機能として追加するだけ。既存環境を変えない |
| コスト重視(月$10以下) | GitHub Copilot Pro | $10/月でCursor Proの半額 |
| 複数ファイルにまたがる大きな変更 | Cursor | Composer Agentが複数ファイルを自律的に編集 |
| 使うAIモデルを自分で選びたい | Cursor | Claude・GPT-4o・Geminiなど複数から選択可 |
| チームで規約を一元管理したい | どちらも可 | CopilotはGitHub連携が強み、Cursorはrulesが細かく設定可 |
| GitHubとの深い連携が重要 | GitHub Copilot | PR・Issues・Codespaces等GitHub機能との統合が自然 |
| AIに自律的に作業させたい | Cursor | Agent modeがコマンド実行まで行う |
実務ではCursorをメインエディタにしつつ、GitHub ActionsやPRレビューはCopilotを活用する使い方も増えています。Copilotの強みはGitHubプラットフォームとの統合。Cursorの強みはエディタ内でのAI操作の深さです。GitHub Copilotの使い方も合わせてご覧ください。
よくあるトラブルと対処法
| 症状 | 原因 | 対処法 |
|---|---|---|
| 補完が出ない・遅い | インデックス未完成 or モデルへの接続遅延 | ステータスバーのCursorアイコンを確認。インデックス中なら完了まで待つ |
| Composerが途中で止まる | 大きすぎる変更・コンテキスト超過 | 変更を小さく分割して指示。@ファイル指定を絞る |
| 拡張機能が使えない | Microsoft専有拡張機能 | Open VSX版の代替拡張機能を探す |
| 起動が重い・クラッシュ | キャッシュ破損 or 拡張機能の競合 | ~/.cursor/cacheを削除後に再起動。不要な拡張機能を無効化 |
| 社内ネットワークで接続できない | プロキシ・SSL検査 | Cursor SettingsのProxy設定を確認。VPN経由での接続を試す |
| Agentが意図しないファイルを変更 | コンテキストが広すぎる | 指示に@でファイルを明示的に指定。AgentからAskモードに切り替えて実行 |
.cursorignore で大きなファイルをAIの対象外にする
ビルド成果物・node_modules・大きなデータファイルがプロジェクトに含まれていると、インデックスが遅くなりComposerの品質も下がります。.cursorignore ファイルに除外対象を書いておきましょう。
# ビルド成果物 dist/ build/ .next/ out/ # 依存関係 node_modules/ # 大きなデータファイル *.csv *.parquet *.sqlite # 機密情報 .env .env.local secrets/
まとめ
Cursorは、VS Codeの操作感を保ちながらAIを開発フローの中心に据えたエディタです。Tab補完・インライン編集・Composer・Chatとそれぞれ使い分けることで、作業の性質に応じた最適なAI活用ができます。
| 機能 | ショートカット | 使い所 |
|---|---|---|
| Tab補完 | Tab |
関数の実装・ボイラープレート |
| Cmd+K(インライン編集) | Ctrl/Cmd + K |
選択箇所のピンポイント修正・変換 |
| Composer(複数ファイル) | Ctrl/Cmd + I |
新機能追加・大規模リファクタ |
| Chat(質問・相談) | Ctrl/Cmd + L |
設計相談・エラー解析・仕様確認 |
| @参照 | @ファイル/Codebase/Docs |
AIへのコンテキスト提供 |
| .cursor/rules | 設定ファイル | プロジェクト規約の自動反映 |
AIエディタの活用と合わせて、APIからAIを直接呼び出す実装も学んでおくと応用が広がります。Claude APIをTypeScriptで使う方法やOpenAI APIをTypeScriptで使う方法も参考にしてください。
よくある質問
QVS Codeの設定・拡張機能・テーマはそのまま使えますか?
A初回起動時の「VS Code Import」機能でほぼそのまま移行できます。テーマ・キーバインド・ほとんどの拡張機能は問題なく動きます。一部のMicrosoft専有拡張機能のみOpen VSX版を探す必要がありますが、TypeScript・ESLint・Prettier など主要ツールはすべて使えます。
Q無料プランと有料プランの違いは実際どのくらいありますか?
A無料プラン(Hobby)はAIリクエスト数に制限があるため、1日中使っているとすぐに上限に達します。毎日使う開発者ならProプラン($20/月)がほぼ必須です。年払いで20%割引されるので年間$192となります。
QCursorに入力したコードはAIの学習に使われますか?
Aデフォルト設定では、コードがCursorのサーバーを通じてAIモデルに送信されます。機密情報が含まれるコードを扱う場合は、Settings → Privacy Mode を有効化するか、Teams/Enterpriseプランを検討してください。Teamsプラン以上はデータがAI学習に使用されないポリシーが適用されます。
Q.cursorrules と .cursor/rules はどちらを使えばよいですか?
A新規プロジェクトは .cursor/rules/*.mdc 形式を推奨します。glob指定・複数ファイル分割・frontmatterによる適用条件の制御など、柔軟に設定できます。ただし旧来の .cursorrules ファイルも後方互換として引き続き動作します。
QGitHub CopilotとCursorを同時に使えますか?
A技術的には可能ですが、同時に使っても補完が競合したり混乱の元になります。どちらかをメインにして使い分けるのが一般的です。VS Codeを使い続けてGitHub PR連携を重視するならCopilot、エディタ内でのAI操作を深く使いたいならCursorを選ぶとよいでしょう。
QComposer(Agent)が意図した通りに動かないときはどうすればよいですか?
A①変更を小さく分割して1ステップずつ指示する、②@ファイル名で参照ファイルを明示する、③AgentモードからAskモードに切り替えて自律行動を制限する、④違うAIモデルに切り替えてみる(Claude→GPT-4o等)の4つが有効です。一度に大きな変更を頼むより、段階的に進める方が最終的に速く完成します。

