「Cursorを使い始めたけど、設定がよくわからない」「AIが的外れな提案をしてくる」「なんだか動作が重い…」
そんな悩みを抱えていませんか?
Cursorは非常に強力なAIコードエディタですが、初期設定のまま使っていると、思わぬトラブルに見舞われることがあります。秘密情報がAIに読み取られてしまったり、巨大なnode_modulesをインデックスして動作が重くなったり、AIの提案がプロジェクトの規約と合わなかったり…。
この記事では、Cursorを「安全に・軽く・賢く」使うための設定テンプレートを完全網羅しています。VS Code互換のsettings.jsonを中心に、Cursor特有の.cursorignoreや.cursorindexingignore、そしてRulesまでセットで整理しました。
この記事を読み終える頃には、あなたのCursor環境は見違えるように快適になっているはずです。
この記事でわかること
- Cursorの設定ファイルの種類と配置場所
- 秘密情報をAIから守る
.cursorignoreの書き方 - 動作を軽くする
.cursorindexingignoreの設定 - AIの精度を上げるRulesの作り方
settings.jsonのおすすめテンプレート(User用・Workspace用)- WordPress/PHP案件向けの追加設定
- よくあるトラブルとその解決法
最初にやること(チェックリスト)
設定を始める前に、まずはこの順番で整えていきましょう。この順番を守ることで、失敗しにくくなります。
ステップ1:秘密情報をAIに見せない
.cursorignoreを作成して、.envファイルや認証キー、顧客データなどをAIのアクセス対象から除外します。これが最も重要なステップです。
ステップ2:重い生成物をインデックスから外す
.cursorindexingignoreを作成して、node_modulesやdist、buildなどの生成物をインデックス対象から除外します。これだけで体感速度が大きく変わります。
ステップ3:AIの流儀を固定する
Rulesファイル(.cursor/rules/*.mdc)を設置して、プロジェクトの方針をAIに伝えます。差分最小・規約順守・安全確認などの基本ルールを入れておきましょう。
ステップ4:settings.jsonで土台を固める
検索除外、watcherExclude、formatOnSave、Workspace Trustなどの基本設定を整えます。
ステップ5:(必要に応じて)Agentの自動実行を抑える
ターミナル実行は基本的に「毎回確認」運用にしておくと、意図しないコマンド実行を防げます。
Cursorの設定ファイル配置(User / Workspace)
CursorはVS Code互換のエディタです。そのため、設定ファイルは大きく2種類に分かれます。この違いを理解しておくことで、「設定したのに反映されない」といったトラブルを防げます。
User settings(個人用設定)
User settingsは、あなた個人の好みや作法を設定する場所です。どのプロジェクトを開いても共通で適用されます。
User settingsで設定すべき項目の例:
- フォントの種類やサイズ
- 行の折り返し設定
- 自動保存の有無
- 保存時に末尾改行を追加する
- 末尾の空白を削除する
Workspace settings(プロジェクト用設定)
Workspace settingsは、特定のプロジェクト固有の設定を記述する場所です。プロジェクトルートの.vscode/settings.jsonに配置し、Gitで管理してチーム全員で共有するのが一般的です。
Workspace settingsで設定すべき項目の例:
- フォーマッタの固定(誰が触っても同じ整形になるように)
search.excludeによる検索対象の制限files.excludeによるエクスプローラー表示の制限files.watcherExcludeによるファイル監視の制限
重要な点として、Workspace settingsはUser settingsよりも優先されます。つまり、同じキーが両方に存在する場合、Workspace側の値が使われます。
.cursorignore と .cursorindexingignore(漏れ防止&軽量化)
Cursorには、通常の.gitignoreとは別に、AI専用の除外ファイルが2種類あります。これらを適切に設定することで、セキュリティと快適性を両立できます。
.cursorignore(AIに絶対見せないファイル)
.cursorignoreは、AIが絶対にアクセスしてはいけないファイルを指定します。秘密情報や個人データはここで確実にブロックしましょう。
たとえば、以下のようなファイルは必ず除外すべきです:
.envファイル(環境変数、APIキーなど)- 秘密鍵や証明書(
.key、.pem、id_rsaなど) - 顧客データやバックアップ
- トークンやパスワードを含むファイル
以下は、推奨する.cursorignoreのテンプレートです:
# Secrets / credentials(秘密情報・認証情報)
**/.env
**/.env.*
**/credentials.json
**/secrets.json
**/*.key
**/*.pem
**/id_rsa
**/*token*
**/*secret*
**/*password*
# Private / customer data(個人データ・顧客データ)
**/data/**
**/backups/**
**/private/**
このファイルはプロジェクトルートに配置してください。たとえ開発中に便利だからといって、秘密情報をAIに見せることは絶対に避けるべきです。
.cursorindexingignore(インデックスから外すファイル)
.cursorindexingignoreは、インデックス対象から外すファイルを指定します。.cursorignoreとは異なり、こちらはセキュリティではなくパフォーマンス向上が主な目的です。
重い生成物や検索ノイズの原因となるファイルをここで除外することで、体感速度が大幅に改善されます。
以下は、推奨する.cursorindexingignoreのテンプレートです:
# 依存パッケージ
node_modules/
vendor/
# ビルド成果物
dist/
build/
.next/
.nuxt/
# キャッシュ・カバレッジ
.coverage/
.cache/
# その他の重いファイル
*.log
*.zip
*.pdf
特にnode_modulesとvendorは、ファイル数が膨大になりがちです。これらをインデックスから外すだけで、検索や補完の速度が目に見えて向上します。
Rules(AIのブレを減らす「プロジェクトの前提」)
CursorのRulesは、AIへの「恒久的な前提条件」を定義できる仕組みです。プロジェクトの方針や開発ルールを事前に伝えておくことで、毎回チャットで同じことを説明する手間が省けます。
さらに重要なのは、AIの提案品質が安定するということです。ルールがないと、AIは毎回異なるアプローチを取る可能性がありますが、Rulesを設定しておけば一貫した提案が得られます。
まず入れるべき最小ルール(テンプレート)
プロジェクトルートに.cursor/rules/ディレクトリを作成し、その中にproject-basics.mdcファイルを配置します。
---
description: プロジェクトの基本方針
alwaysApply: true
---
- 変更は最小差分で。不必要なリファクタは禁止。
- 既存の規約(lint/formatter)に必ず合わせる。
- 破壊的操作(削除・上書き・移行)は、実行前に確認を取る。
- 秘密情報(鍵・トークン・個人情報)に触れる可能性がある場合は作業を止めて警告する。
- 変更後は「動作確認手順(テスト/ビルド/確認項目)」を必ず提示する。
このルールを入れておくだけで、AIの挙動が大きく改善されます。
Rulesを書くときのコツ
効果的なRulesを作成するためのポイントをいくつか紹介します。
1. ルールは短く、簡潔に
長すぎるルールはAIが正しく解釈できない可能性があります。1ファイルに詰め込みすぎず、シンプルに保ちましょう。
2. alwaysApplyは必要なものだけに
alwaysApply: trueを設定すると、すべてのAI操作にそのルールが適用されます。本当に常に必要なルールだけに限定してください。
3. 関心ごと別にファイルを分ける
フロントエンド、バックエンド、インフラなど、関心領域ごとにRulesファイルを分けると管理しやすくなります。たとえば:
frontend-rules.mdc:React/Vue関連のルールbackend-rules.mdc:API・DB関連のルールsecurity-rules.mdc:セキュリティ関連のルール
settings.json おすすめ(ユーザー設定)
いよいよ本題のsettings.jsonです。CursorはVS Code互換なので、まずは安定したキーを中心に組むのが安全です。
Cursor固有のAI設定はUIで変わることがあるため、settings.jsonでは土台となる設定に集中するのがおすすめです。
以下は、User settings.json(個人用)のおすすめテンプレートです。
{
// ===== 見た目・読みやすさ =====
"editor.fontFamily": "JetBrains Mono, Menlo, Monaco, 'Courier New', monospace",
"editor.fontSize": 14,
"editor.lineHeight": 22,
"editor.fontLigatures": true,
"editor.minimap.enabled": true,
"editor.lineNumbers": "on",
"editor.wordWrap": "on",
// 視認性:括弧・インデント
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": true,
"editor.guides.indentation": true,
"editor.renderWhitespace": "selection",
// ===== 保存時の作法(事故防止+差分をきれいに) =====
"files.insertFinalNewline": true,
"files.trimTrailingWhitespace": true,
"files.eol": "\n",
// 自動保存(好みで調整)
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000,
// ===== フォーマット =====
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
// import整理など
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
},
// ===== 検索 =====
"search.useIgnoreFiles": true,
// ===== セキュリティ:Workspace Trust =====
"security.workspace.trust.enabled": true,
"security.workspace.trust.untrustedFiles": "prompt"
}
このテンプレートの狙い
上記のテンプレートには、以下のような意図があります。
見やすさの向上
括弧のカラー化、インデントガイド、選択時の空白表示など、コードの可読性を高める設定を入れています。特にbracketPairColorizationは、ネストが深いコードを読むときに非常に役立ちます。
差分をきれいに保つ
files.insertFinalNewlineとfiles.trimTrailingWhitespaceは、Gitの差分を綺麗に保つための設定です。ファイル末尾の改行有無や余分な空白でdiffが荒れるのを防ぎます。
保存時の自動整形
formatOnSaveを有効にすることで、保存するたびにコードが整形されます。チーム開発では特に重要で、誰が編集しても同じスタイルになります。
検索ノイズの削減
search.useIgnoreFilesを有効にすると、.gitignoreなどの除外ファイルが検索時にも尊重されます。
セキュリティの確保
Workspace Trustを有効にすることで、不明なワークスペースを開いたときに確認ダイアログが表示されます。悪意のあるプロジェクトから身を守る基本的な対策です。
settings.json おすすめ(プロジェクト設定)
プロジェクト側の設定は、重さ対策(監視/検索/表示の除外)を先に固めるのがコストパフォーマンス最強です。特にモノレポやWordPress案件(vendorとnode_modulesが混在するケース)では効果絶大です。
重さ対策テンプレート
以下の設定を.vscode/settings.jsonに配置します。
{
// ===== Explorerに表示しない(視界のノイズ削減) =====
"files.exclude": {
"**/.git": true,
"**/.DS_Store": true,
"**/node_modules": true,
"**/dist": true,
"**/build": true,
"**/.next": true,
"**/.nuxt": true,
"**/vendor": true,
"**/.cache": true
},
// ===== 検索対象から除外(速度&精度UP) =====
"search.exclude": {
"**/node_modules": true,
"**/dist": true,
"**/build": true,
"**/.next": true,
"**/.nuxt": true,
"**/vendor": true,
"**/.cache": true,
"**/*.min.*": true
},
// ===== ファイル監視から除外(CPU/メモリに効く) =====
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/node_modules/**": true,
"**/dist/**": true,
"**/build/**": true,
"**/.next/**": true,
"**/.nuxt/**": true,
"**/vendor/**": true,
"**/.cache/**": true
}
}
3つの除外設定の違い
この設定には3種類の除外設定が含まれていますが、それぞれ役割が異なります。
files.exclude(エクスプローラーから隠す)
サイドバーのファイルツリーから該当ファイルを非表示にします。視覚的なノイズを減らし、必要なファイルを見つけやすくします。ただし、ファイル自体は存在しているため、パスを直接指定すれば開けます。
search.exclude(検索から除外)
「ファイル内検索」や「ファイル名検索」の対象から除外します。node_modules内の大量のファイルが検索結果に表示されるのを防ぎ、検索速度と精度が向上します。
files.watcherExclude(ファイル監視から除外)
エディタのファイル監視機構から除外します。これが最もパフォーマンスに効く設定です。ファイル数が多い案件ほど効果が顕著で、CPU使用率とメモリ消費を大幅に削減できます。
重要なポイントは、これらを「3重で」設定することです。特にnode_modules、vendor、dist、buildは、監視・検索・表示のすべてから除外するのがベストプラクティスです。
フォーマッタの固定(言語別)
チーム開発で一番揉めやすいのがフォーマットの揺れです。「誰かがファイルを保存しただけで大量のdiffが発生した」という経験はありませんか?
これを防ぐには、言語ごとにeditor.defaultFormatterを固定するのが効果的です。
Prettierを使う場合のテンプレート
{
"editor.formatOnSave": true,
"[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[css]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }
}
フォーマッタ設定のポイント
プロジェクトの既存設定に合わせる
すでにESLintやBiomeを使っているプロジェクトなら、そちらに寄せるのもアリです。大切なのはチーム全員が同じフォーマッタを使うことです。
formatOnSaveはONのまま
保存時整形の機能自体はONにしておき、フォーマッタだけを差し替えるのが安定します。これにより、誰が編集しても同じスタイルでコードが整形されます。
言語ごとの設定はWorkspace設定に
言語別のフォーマッタ設定は、User設定ではなくWorkspace設定(.vscode/settings.json)に入れるのがおすすめです。プロジェクトによって使うフォーマッタが異なる場合があるためです。
WordPress / PHP案件向け追加設定
WordPress案件は「PHP+JavaScript+JSON+Markdown」のマルチ言語環境になりがちです。さらにvendor/ディレクトリが重い。
そのため、基本方針は以下の3ステップです:
- 除外設定を強める(前述のテンプレートを適用)
- PHPの診断機能を安定化させる
- PHP整形は慎重に(プロジェクトの流儀が固まるまでOFF)
PHPの検証設定(ローカルPHPのパスを指定)
PHP構文チェックを有効にするには、ローカル環境のPHPパスを指定する必要があります。環境によってパスが異なるため、自分の環境に合わせて設定してください。
{
"php.validate.enable": true,
"php.validate.run": "onType",
// macOS(Homebrew)の場合
"php.validate.executablePath": "/opt/homebrew/bin/php"
// Windowsの場合(例)
// "php.validate.executablePath": "C:/xampp/php/php.exe"
// Linuxの場合(例)
// "php.validate.executablePath": "/usr/bin/php"
}
PHPのformatOnSaveは一旦OFF
PHPの自動整形は、プロジェクトによって流儀が大きく異なります。WordPress Coding Standardsを使うプロジェクトもあれば、PSR-12を採用しているプロジェクトもあります。
運用が固まるまでは、PHPのformatOnSaveをOFFにしておくのが無難です。意図せずコードスタイルが変わってしまう事故を防げます。
{
"[php]": {
"editor.formatOnSave": false
}
}
チームでコーディング規約が決まり、CI/CDでもlintが走る環境が整ったら、改めてformatOnSaveを有効にしましょう。
ありがちな詰まりどころと対処法
最後に、Cursorの設定でよくあるトラブルとその解決法をまとめました。
Q1. settings.jsonに書いたのに反映されない
設定が反映されない場合、以下の点を確認してください。
UserとWorkspaceのどちらに書いたか確認する
Workspace設定(.vscode/settings.json)はUser設定よりも優先されます。User設定に書いたつもりが、Workspace側で上書きされている可能性があります。
.vscode/settings.jsonが別に存在していないか確認する
プロジェクトルートに.vscode/settings.jsonがある場合、そちらの設定が優先されます。
キーが正しいか確認する
まずは「Default Settings(JSON)」を開いて、そのキーが存在するか確認しましょう。キー名のタイポは意外と多いミスです。
Q2. Cursorが重い(起動・検索・補完が遅い)
動作が重い場合は、以下の対策を試してください。
.cursorindexingignoreで生成物を除外する
node_modules、dist、build、vendorなどをインデックス対象から外します。
3重の除外設定を確認する
.vscode/settings.jsonでfiles.watcherExclude、search.exclude、files.excludeの3つすべてに生成物ディレクトリを追加します。
特に効果が大きいのはwatcherExclude
ファイル監視の除外は、CPU使用率とメモリ消費に直接影響します。ファイル数が多い案件ほど効果が顕著です。
Q3. AIの提案が的外れ
AIの精度が低い場合は、以下の点を見直してください。
インデックスにノイズが多い
生成物、ログファイル、minifiedファイルなどがインデックスに含まれていると、AIの理解が阻害されます。.cursorindexingignoreで除外しましょう。
Rulesがない
プロジェクトの前提条件がAIに伝わっていないと、毎回異なるアプローチで提案されます。alwaysApply: trueで最小ルールを入れましょう。
大きい変更を丸投げしている
AIに大規模な変更を一度に依頼すると、精度が落ちやすいです。「小さく分割して依頼する」のが最短ルートです。
まとめ
この記事では、Cursorを「安全に・軽く・賢く」使うための設定を網羅的に解説しました。
ポイントをおさらいすると:
- .cursorignoreで秘密情報をAIから守る
- .cursorindexingignoreで生成物を除外して軽量化
- RulesでAIの挙動を安定させる
- settings.jsonで土台となる設定を固める
- 3重の除外設定(watcherExclude / search.exclude / files.exclude)で重さ対策
- フォーマッタを言語別に固定してチーム開発を円滑に
これらの設定を一度整えてしまえば、日々の開発体験が大きく向上します。ぜひこの記事のテンプレートを参考に、あなたのCursor環境を最適化してみてください。
設定ファイルのテンプレートは、必要に応じてプロジェクトの特性に合わせてカスタマイズしてお使いください。


コメント