Python跳转失效最常见原因是python.languageServer被设为"None",应改为"Pylance"或"Default"并执行Python: Restart Language Server;C++需检查C_Cpp.intelliSenseEngine是否为"disabled";JS/TS项目必须配置jsconfig.json或tsconfig.json。

python.languageServer 被设为 "None"
这是 Python 项目跳转失效最常见、也最容易被忽略的配置错误。它不是插件没装,而是你亲手关掉了语言服务。
检查项目根目录下的 .vscode/settings.json,如果存在这一行:
{"python.languageServer": "None"}
那就等于告诉 VSCode:别启动 Pylance,也别启动 Jedi,什么分析都不要做。此时 Ctrl+Click 必然无响应,连 import 都不识别。
- 改为
"python.languageServer": "Pylance"(推荐)或"python.languageServer": "Default" - 保存后执行命令
Python: Restart Language Server - 等右下角状态栏显示
Pylance initializing…再试跳转
C_Cpp.intelliSenseEngine 被设为 "disabled"
C++ 跳转失效时,90% 的真实原因是这个字段被禁用,而非 clangd 没装好。
微软的 ms-vscode.cpptools 扩展一旦把 C_Cpp.intelliSenseEngine 设为 "disabled",整个语义引擎就停摆——F12 失效、悬停空白、引用查找为空,但语法高亮照常,容易误判为“只是跳转坏了”。
- 在
.vscode/settings.json中确认该字段值不是"disabled" - 设为
"default"(启用完整 IntelliSense)或"Tag Parser"(仅基础符号索引) - 改完必须执行
Developer: Reload Window,只重启语言服务器不够
clangd 和 C/C++ 插件同时启用导致冲突
两个 C++ 语言服务器共存是典型自废武功行为。当你装了 llvm-vs-code-extensions.vscode-clangd,它会自动把 C_Cpp.intelliSenseEngine 设为 "disabled",并试图接管全部功能——但如果 clangd 自身找不到编译器或 compile_commands.json 路径不对,它就直接静默失败。
- 用
code --list-extensions | grep -i clang确认是否装了 clangd 扩展 - 若不需要 clangd,直接卸载:
code --uninstall-extension llvm-vs-code-extensions.vscode-clangd - 若想保留 clangd,务必确保
compile_commands.json存在且路径正确(通常需软链到项目根目录) - 禁用 clangd 后,必须手动恢复
C_Cpp.intelliSenseEngine为"default"
JavaScript/TypeScript 缺少 jsconfig.json 或 tsconfig.json
VSCode 不会凭空推断 JS/TS 项目的模块结构。没有配置文件,它就把每个 .js 文件当孤立文本处理,跨文件跳转必然失败。
哪怕只有一行代码,也要有最小配置:
{"compilerOptions":{"target":"ES2020","module":"commonjs"},"include":["**/*.js"]}
-
include必须覆盖你的源码路径,比如"src/**/*"比"**/*.js"更安全 - 用 ES 模块(
import)时,module必须设为"esnext",否则路径解析全错 - 改完后去 Output 面板 → 切换到 TypeScript 日志,等出现
Project loading completed
.vscode/settings.json 里那几行不起眼的字段。


















