こんにちは!開発現場の裏側で、日々エンジニアたちが少しでも快適に、そして最高に楽しくコードを書ける環境を整えるのが私の仕事です。
いま、多くの現場で「Cursor」というAI特化型エディタが猛烈な勢いで普及していますよね。
「AIがコードを書いてくれるから、毎日のコーディングが魔法のように楽になる!」
そう期待して導入したものの、しばらく使っているうちにこんな現象に悩まされたことはありませんか?
- 「なんだか最近、エディタ全体の動作がやけに重い……」
- 「タイピングしている最中に、画面がカクついたり突然フリーズする」
- 「AI(ComposerやChat)に質問しても、なぜか的外れな返答が返ってくる」
実はこれ、Cursorのせいだけではありません。長年使い慣れたVS Codeから環境を移行した際に引き継いだ「大量の拡張機能(プラグイン)」と、Cursor独自のAI機能が内部でコンフリクトを起こしているのが最大の原因です。
今回は、数々の開発現場でこの「AIと拡張機能の相性問題」を解決してきたアーキテクトの私が、開発環境をクラッシュさせないための「AI共存設定」と、不要な拡張機能の断捨離基準を徹底的に解説します。
これをマスターすれば、あなたのCursorは見違えるほど軽快になり、AIの精度も劇的に向上しますよ。さあ、一緒に快適なモダン開発環境を手に入れましょう!
—
1. なぜCursorと拡張機能は喧嘩するのか?(アーキテクチャの裏側)
まず、敵を知るためにCursorの構造を少しだけ紐解いてみましょう。
Cursorは、世界中のエンジニアに愛されている「VS Code」のオープンソース版(VS Codiumベース)をフォーク(分岐)して作られています。そのため、VS Code用の拡張機能(`.vsix`)がそのまま動くという素晴らしいメリットがあります。
しかし、ここに落とし穴があります。
リソースの奪い合いと「ダブルフック」の悲劇
VS Codeの拡張機能の多くは、エディタがテキストを描画したり、ファイルを保存したりするイベント(フック)を監視しています。例えば、LSP(Language Server Protocol)を使うリンターやフォーマッター、Git拡張、リアルタイム連携ツールなどです。
そこにCursorの本体が動き出し、「AIによるコードのインデックス化(RAG用ベクトル生成)」や「リアルタイムのコード補完(Tab補完)」をバックグラウンドで並行実行します。
結果として何が起きるか?
- CPUの奪い合い: 複数のバックグラウンドプロセスが常にCPUコアを占有し、ファンの音が爆音になる。
- メモリの枯渇(OOM): Node.jsベースのエディタプロセスが許容量を超え、突然ウィンドウがクラッシュする。
- API競合: コード整形ツール(Prettierなど)とAIの提案が同時にファイルを書き換えようとして、無限ループやパースエラーを引き起こす。
「便利なツールを全部盛りにする」のは、実は開発環境にとって最大の毒なのです。
—
2. 開発環境を救う!拡張機能の「断捨離基準」
では、どの拡張機能を残し、どれを捨てるべきなのか。
判断基準は極めてシンプルです。「AI機能と役割が被っていないか?」、そして「本当に毎秒必要か?」の2点です。
以下の3つのカテゴリに分けて、あなたの拡張機能リストを見直してみてください。
① 即座にアンインストール・無効化すべき「危険な重複・高負荷拡張機能」
- AI系コード補完・チャット拡張機能全般
- 例: GitHub Copilot, Tabnine, Codeiumなど
- 理由: Cursorにはすでに世界最高峰のAIエンジンが組み込まれています。他のAI補完とCursorの「Tab補完」が同時に動くと、お互いの予測を邪魔し合い、エディタが激重になります。今すぐどちらかに絞りましょう(当然CursorのAIを推奨します)。
- 過剰なリアルタイムプレビュー系
- 例: 巨大なMarkdownのリアルタイムプレビュー、重いCSS/Tailwindのリアルタイムビジュアライザ
- 理由: バックグラウンドでのDOM計算コストが高く、メモリリークの原因になります。
- 使っていない言語のLSP/リンター群
- 例: Pythonを書かないのに残っているPython拡張機能スイート
② 「ワークスペースごと」に制限すべき拡張機能
すべてのプロジェクトで毎回すべての拡張機能が動く必要はありません。例えば、フロントエンドの開発時にGo言語用の拡張機能がバックグラウンドで動いているのは無駄です。
③ 残すべき「神・必須拡張機能」
- GitLens(ただし設定に注意): 非常に強力ですが、デフォルトでは重い機能もあるため、後述の設定で軽量化します。
- Docker / Kubernetes系: インフラ操作には不可欠ですが、自動起動を抑制します。
- フレームワーク特化のスニペット: 静的な補完系はCPUを食わないため安全です。
—
3. 現場で実証された!Cursorのパフォーマンス&AI共存設定
ここからが本題です。Cursorの動作を極限まで軽くし、AIの性能を120%引き出すための設定ファイル(`settings.json`)の最適解を公開します。
以下の設定を、Cursorの設定画面(`Ctrl + ,` または `Cmd + ,`)から右上にある「JSONファイルを開くアイコン」をクリックし、`settings.json` に追記してください。
{
// ==========================================
// 1. Cursor AI機能の最適化設定
// ==========================================
// Tab補完を有効にしつつ、不要な遅延を削る
“cursor.cpp.enable”: true,
// AIのコンテキスト(参照範囲)が広がりすぎて重くなるのを防ぐため、
// 無視すべき巨大なディレクトリやビルド成果物を明確に指定する
“cursor.general.ignoredFiles”: [
“/node_modules/“,
“/dist/“,
“/build/“,
“/.next/“,
“/vendor/“,
“/.lock”,
“/package-lock.json”
],
// ==========================================
// 2. 拡張機能の暴走を防ぐ・軽量化設定
// ==========================================
// ワークスペースを開いたときに不要な拡張機能が勝手にバックグラウンドで
// 起動するのを防ぎ、メモリ消費を劇的に抑える
“extensions.autoUpdate”: false,
“extensions.autoCheckUpdates”: false,
// GitLensの重いバックグラウンド処理(リポジトリ全体のヒートマップ等)を無効化
“gitlens.advanced.blame.toggleLocations”: [“status”],
“gitlens.hovers.currentLine.enabled”: false,
// エディタの描画パフォーマンスを維持(ミニマップはメモリを喰うためオフを推奨、お好みで)
“editor.minimap.enabled”: false,
// ==========================================
// 3. 開発体験を爆上げするファイル保存時の作法
// ==========================================
// 保存時にフォーマットを走らせることで、AIが生成した乱雑なインデントを
// 一瞬でプロジェクトの規約に合わせる(Prettier等と連携)
“editor.formatOnSave”: true,
“editor.codeActionsOnSave”: {
“source.fixAll.eslint”: “explicit”
}
}
この設定がもたらす恩恵
- 不要なファイル(`node_modules`やビルド成果物)をAIの参照対象から完全に除外するため、AIの回答精度が上がり、インデックス作成にかかるCPU負荷がゼロになります。
- 拡張機能の自動更新や重いGitアノテーションを抑制することで、アイドル時のメモリ消費量を大幅に削減し、長時間のコーディングでもエディタが重くなりにくくなります。
—
4. 動作確認:AIと拡張機能が調和しているかテストする
設定が完了したら、正しく環境がクリーンに動作しているかを簡単な「HelloWorld」でテストしてみましょう。
今回は、AI(Cursor Composer / `Ctrl + I` または `Cmd + I`)の力を借りて、安全かつ高速に小さなスクリプトを作成・実行してみます。
ステップ1: テスト用ワークスペースの作成
適当な空のディレクトリをCursorで開き、新しいファイル `hello.py` を作成します。
ステップ2: AIにコード生成を指示する
`Ctrl + I` (Windows) または `Cmd + I` (Mac) を押してComposer(インラインAI)を呼び出し、以下のように指示を出します。
> プロンプト入力例:
> `現在の時刻を取得して、綺麗にフォーマットしてコンソールに表示するPythonのHelloWorldスクリプトを書いて。エラーハンドリングも入れてね。`
ステップ3: 実行と確認
AIが瞬時に以下のようなコードを生成してくれます。
import sys
from datetime import datetime
def print_hello_world():
“””
現在時刻を取得し、安全にフォーマットして出力する関数
AI共存設定が正しく機能していれば、このコード生成時にカクつきは起きません。
“””
try:
# 現在のローカル時刻を取得
current_time = datetime.now()
formatted_time = current_time.strftime(“%Y-%m-%d %H:%M:%S”)
print(f”=== 開発環境テスト成功 ===”)
print(f”こんにちは、未来のトップエンジニア!”)
print(f”現在のシステム時刻: {formatted_time}”)
except Exception as e:
print(f”予期せぬエラーが発生しました: {e}”, file=sys.stderr)
sys.exit(1)
if __name__ == “__main__”:
print_hello_world()
ターミナルを開き、以下のコマンドで実行してみましょう。
Pythonスクリプトの実行ログ
$ python hello.py
=== 開発環境テスト成功 ===
こんにちは、未来のトップエンジニア!
現在のシステム時刻: 2026-03-30 14:25:00
一瞬でエラーなく、スムーズに実行できましたね。
この時、ファンが唸ったり、エディタがフリーズしたりする兆候が一切なければ、あなたのCursor環境は完璧に最適化されています。
—
おわりに:道具を整えることが、一流のエンジニアへの近道
プログラミングの世界では、「職人は道具を大切にする」と言います。どれほど優れたAI機能を持っていても、それを動かす土台(エディタ環境)がガタガタでは、あなたの集中力は削がれ、アイデアも台無しになってしまいます。
今回紹介した「拡張機能の断捨離」と「AI共存のためのJSON設定」は、今日からすぐにでも試せるベストプラクティスです。
不要なプラグインを削ぎ落とし、スリムで研ぎ澄まされたCursorを手に入れたとき、あなたの毎日のコーディングは驚くほど軽快になり、まるで自分の思考がそのままコードに変換されるかのような最高のフロー状態(ゾーン)を体験できるはずです。
さあ、今すぐあなたのエディタをチューニングして、快適な開発の旅に出かけましょう!