「F12を押しても何も起きない!」 「右クリックメニューの『定義へ移動』がグレーアウトしてる」 「昨日まで動いてたのに、急にジャンプできなくなった」
VSCodeでコーディングする時、定義へ移動(Go to Definition)機能は本当に便利ですよね。関数やクラスの定義元にワンクリックでジャンプできる。でも、これが動かなくなると、めちゃくちゃ不便です。
実はこの問題、使っている言語によって原因が全然違うんです。JavaScriptとPythonでは対処法が異なりますし、TypeScriptには特有の問題があります。
今回は、言語別の解決方法から、全言語共通の対処法まで、完全網羅でお届けします!
🔍 まず確認!どんな症状ですか?

症状を特定しよう
あなたの症状はどれですか?
症状A:完全に反応しない
- F12を押しても何も起きない
- Ctrl+クリックも効かない
- 右クリックメニューがグレーアウト
症状B:「定義が見つかりません」エラー
- 機能は動くがジャンプしない
- 「No definition found」と表示
- ピークは表示されるが移動できない
症状C:一部だけ動かない
- 自分のコードは動くが外部ライブラリは動かない
- 特定のファイルだけ動かない
- プロジェクト内は動くがnode_modulesは動かない
症状D:動作が遅い・不安定
- 数秒待つと動く
- たまに動かないことがある
- CPUが高負荷になる
それぞれで対処法が違うので、順番に見ていきましょう!
⚡ 今すぐ試す!全言語共通のクイック解決法
30秒で試せる基本対処
まずは言語に関係なく、これを試してみてください。
1. VSCodeの再起動
Ctrl + Shift + P (Mac: Cmd + Shift + P)
→ 「Developer: Reload Window」を実行
2. IntelliSenseの再起動
Ctrl + Shift + P
→ 「TypeScript: Restart TS Server」(TypeScript/JavaScript)
→ 「Python: Restart Language Server」(Python)
→ 「Go: Restart Language Server」(Go)
3. 定義へ移動の別の方法を試す
F12 → 定義へ移動
Alt + F12 → 定義をここに表示(ピーク)
Ctrl + クリック → 定義へ移動
右クリック → 定義へ移動
4. ファイルを保存してから試す 未保存の変更があると動かないことがあります。 Ctrl + S
で保存してから再度試してください。
🛠️ 言語別の詳細解決法
JavaScript/TypeScript の場合
原因1:jsconfig.json / tsconfig.json がない
解決方法: プロジェクトのルートにjsconfig.json
を作成
{
"compilerOptions": {
"target": "ES6",
"module": "commonjs",
"allowSyntheticDefaultImports": true,
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"exclude": ["node_modules", "dist"],
"include": ["src/**/*"]
}
TypeScriptの場合はtsconfig.json
:
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"lib": ["ES2020"],
"jsx": "react",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"declaration": true,
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
原因2:型定義ファイルがない
# 必要な型定義をインストール
npm install --save-dev @types/node
npm install --save-dev @types/react # Reactの場合
npm install --save-dev @types/express # Expressの場合
原因3:パスエイリアスの設定ミス
webpack.config.jsやvite.config.jsのエイリアス設定と、tsconfig.jsonのpaths設定を一致させる必要があります。
Python の場合
原因1:Python拡張機能の問題
解決方法:
- Pylanceをインストール(推奨)
- 拡張機能から「Pylance」を検索してインストール
- Microsoft公式の高性能な言語サーバー
- 設定を最適化
// settings.json
{
"python.languageServer": "Pylance",
"python.analysis.autoImportCompletions": true,
"python.analysis.indexing": true,
"python.analysis.typeCheckingMode": "basic"
}
原因2:仮想環境が認識されていない
# 仮想環境を作成・有効化
python -m venv venv
# Windows
venv\Scripts\activate
# Mac/Linux
source venv/bin/activate
VSCodeで仮想環境を選択:
Ctrl + Shift + P
- 「Python: Select Interpreter」
- 仮想環境のPythonを選択
原因3:__init__.pyがない
Pythonパッケージとして認識させるために、各ディレクトリに__init__.py
を配置:
project/
├── src/
│ ├── __init__.py # 空でもOK
│ ├── models/
│ │ ├── __init__.py
│ │ └── user.py
│ └── utils/
│ ├── __init__.py
│ └── helper.py
Go言語 の場合
原因1:gopls(Go言語サーバー)の問題
解決方法:
# goplsを最新版に更新
go install golang.org/x/tools/gopls@latest
# GOPATHを確認
go env GOPATH
# モジュールを初期化
go mod init your-module-name
go mod tidy
原因2:VSCode Go拡張機能の設定
// settings.json
{
"go.useLanguageServer": true,
"go.toolsManagement.autoUpdate": true,
"go.buildOnSave": "workspace",
"go.lintOnSave": "workspace",
"go.formatTool": "goimports"
}
C/C++ の場合
原因:IntelliSense設定が不適切
解決方法:
.vscode/c_cpp_properties.json
を作成:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"C:/MinGW/include/**"
],
"defines": ["_DEBUG", "UNICODE", "_UNICODE"],
"compilerPath": "C:/MinGW/bin/gcc.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
Java の場合
原因:Java拡張機能パックが不完全
解決方法:
- Extension Packをインストール
- 「Extension Pack for Java」を検索してインストール
- プロジェクト構造を正しく設定
project/
├── .vscode/
│ └── settings.json
├── src/
│ └── main/
│ └── java/
│ └── com/example/
└── pom.xml (Maven) または build.gradle (Gradle)
- 設定を追加
// settings.json
{
"java.configuration.updateBuildConfiguration": "automatic",
"java.home": "C:/Program Files/Java/jdk-17",
"java.project.sourcePaths": ["src"]
}
🔧 全言語共通の詳細設定
IntelliSense の最適化
// settings.json
{
// IntelliSense基本設定
"editor.quickSuggestions": {
"other": true,
"comments": false,
"strings": true
},
"editor.suggestSelection": "first",
"editor.wordBasedSuggestions": false,
// 定義へ移動の設定
"editor.gotoLocation.multipleDefinitions": "goto",
"editor.gotoLocation.multipleTypeDefinitions": "goto",
"editor.gotoLocation.multipleDeclarations": "goto",
"editor.gotoLocation.multipleImplementations": "goto",
"editor.gotoLocation.multipleReferences": "peek",
// ファイル除外設定
"files.exclude": {
"**/.git": true,
"**/.DS_Store": true,
"**/node_modules": true,
"**/dist": true
},
// 検索除外設定
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/dist": true
}
}
💡 その他の原因と対処法
拡張機能の競合
確認方法:
# セーフモードで起動
code --disable-extensions
問題が解決したら、拡張機能を1つずつ有効化して犯人を特定。
ワークスペースが大きすぎる
対処法:
- 不要なフォルダを除外
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/node_modules/**": true,
"**/dist/**": true,
"**/build/**": true
}
- ファイル監視の制限を増やす
# Linux/Mac
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
キャッシュの問題
クリア方法:
- VSCodeのキャッシュをクリア
- Windows:
%APPDATA%\Code\Cache
- Mac:
~/Library/Application Support/Code/Cache
- Linux:
~/.config/Code/Cache
- Windows:
- 言語サーバーのキャッシュをクリア
- TypeScript:
.tscache
フォルダを削除 - Python:
__pycache__
フォルダを削除
- TypeScript:
⚠️ 特殊なケースと対処法
リモート開発環境(SSH、WSL、Docker)
解決方法:
- リモート側に拡張機能をインストール
- リモートエクスプローラーから必要な拡張機能を追加
- リモート側の言語サーバーを設定
// リモート側のsettings.json
{
"remote.SSH.defaultExtensions": [
"ms-python.python",
"ms-vscode.cpptools",
"golang.go"
]
}
モノレポ(Monorepo)環境
解決方法:
複数のプロジェクトがある場合、ワークスペース設定を使用:
.vscode/workspace.code-workspace
:
{
"folders": [
{ "path": "packages/frontend" },
{ "path": "packages/backend" },
{ "path": "packages/shared" }
],
"settings": {
"typescript.tsdk": "node_modules/typescript/lib",
"eslint.workingDirectories": [
"./packages/frontend",
"./packages/backend"
]
}
}
✅ トラブルシューティングチェックリスト
基本確認:
- [ ] 拡張機能は最新版?
- [ ] VSCodeは最新版?
- [ ] ファイルは保存済み?
- [ ] プロジェクトは正しく開いている?
言語別確認:
- [ ] 言語サーバーは起動している?
- [ ] 設定ファイル(tsconfig等)は存在する?
- [ ] 必要な拡張機能はインストール済み?
- [ ] パスは正しく設定されている?
パフォーマンス確認:
- [ ] CPUやメモリは十分?
- [ ] 大きすぎるフォルダを開いていない?
- [ ] 除外設定は適切?
📊 まとめ:快適な定義ジャンプを取り戻そう
VSCodeの「定義へ移動」が動かない問題は、使用言語に応じた適切な対処で必ず解決できます。
解決の優先順位:
- VSCodeとIntelliSenseの再起動(最も簡単)
- 言語別の設定ファイル作成(jsconfig.json等)
- 必要な拡張機能の確認
- キャッシュクリアと再インデックス
9割以上の問題は、設定ファイルの作成と拡張機能の更新で解決します。
定義へ移動機能は、コーディング効率を劇的に向上させる機能です。一度正しく設定すれば、快適な開発環境が手に入ります。この記事を参考に、ぜひ問題を解決してください!
🔗 参考リンク
それでも解決しない場合は、使用言語とエラーメッセージを添えてコメントください!
コメント