Ctrl+Space没反应主因是系统或输入法快捷键冲突:Windows默认被中文输入法占用,macOS被Spotlight占用;需先禁用系统级绑定,再确认VSCode中editor.action.triggerSuggest正确绑定。

Ctrl+Space 按了没反应,不是设置没开,而是被系统或输入法抢了——先解决这个,补全才能谈得上“触发”。
Ctrl+Space 没反应?先查输入法和系统快捷键冲突
Windows 上 Ctrl+Space 几乎默认是中英文切换热键;macOS 的 Cmd+Space 是 Spotlight,VSCode 默认已退避为 Cmd+Shift+Space。按了没弹窗,90% 是这个原因。
- Windows:进输入法设置 → 关闭「使用 Ctrl+Space 切换输入法」
- macOS:系统设置 → 键盘 → 快捷键 → 屏幕快照/Spotlight 里关掉 Cmd+Space;再进 VSCode 设置,确认
editor.action.triggerSuggest绑定的是 Cmd+Space(可手动改) - 在 VSCode 里按 Ctrl+Shift+P → 输入
Preferences: Open Keyboard Shortcuts→ 搜triggerSuggest,看右边绑定是否被覆盖或显示“冲突”
为什么打点(.)能自动弹,但输 _ 或 = 就不弹?
这不是你配置错了,是语言服务器(LSP)自己决定哪些字符算“触发符”。TypeScript 默认只把 .、:、[、" 等列入 triggerCharacters,而 _ 和 = 明确不在列表里——你改 editor.suggestOnTriggerCharacters 也没用,它只是开关,不改列表本身。
- 想让
_后出建议?基本没通用解。Rust 扩展可能支持,但 JS/Python/Go 官方扩展都不认它 - 可靠做法:保持
editor.suggestOnTriggerCharacters为true,然后习惯性在需要时按 Ctrl+Space 手动唤出 - 别碰
triggerCharacters配置项——它属于语言扩展内部声明,用户 settings.json 无法覆盖
Tab 键到底能不能直接采纳补全?关键看这个字符串值
editor.tabCompletion 必须设为 "on"(注意是字符串,不是 true),否则 Tab 永远只缩进,不接受任何建议。
- 设成
"off"或留空 → Tab 不参与补全 - 设成
"on"→ 当建议框已展开时,Tab 插入当前高亮项;若没框,先按 Ctrl+Space 唤出,再 Tab - 它和
editor.acceptSuggestionOnEnter无关:后者管 Enter,前者只管 Tab - 某些 Snippet 插件会劫持 Tab,如失效,可临时禁用插件验证
补全建议质量差,调快捷键没用,得看背后服务有没有起来
Ctrl+Space 能唤出框,不代表内容靠谱。提示只有变量名、没有参数或类型,大概率是语言服务器压根没加载成功。
- 右下角看语言模式:要是显示
Plain Text,补全就是摆设;点它手动切到JavaScript或对应语言 - Python:必须装
ms-python.python,且python.languageServer设为"Pylance";输os.没方法列表?说明 Pylance 没跑起来 - TypeScript/JS:没
jsconfig.json或tsconfig.json,路径导入、别名、模块方法统统不提示 - 打开输出面板(Ctrl+Shift+U)→ 切到
Python或TypeScript Server标签 → 看有没有Connection to server got closed
补全的“自动”部分其实很薄,真正起作用的是手动唤起 + 语言服务就绪 + 触发字符被支持——三者缺一不可。最容易被忽略的是右下角那个小小的状态栏语言标识,它一错,后面所有设置都白配。


















