VSCode在JS文件中输入左括号触发自动补全的原因及关闭方法
现象原因
该现象是VSCode内置的代码补全默认规则导致的:
- VSCode内置的JavaScript/TypeScript语言服务默认会将
(设置为补全提交字符之一,即当补全列表存在候选项时,按下(会自动确认选中当前排在第一位的补全项,替换你当前输入的内容。 - 你输入
requir到最后一个字符r时,补全列表的首位候选项是requestAnimationFrame,此时按下(触发了补全提交逻辑,因此你输入的内容被替换为该补全项。
关闭方法
你可以根据自己的使用习惯选择以下任意一种方案:
方案1:全局关闭所有提交字符的自动补全触发
修改后只有按下Tab或Enter才会确认选中的补全建议,输入其他字符都不会触发自动补全确认:
- 打开VSCode设置页:快捷键为
Ctrl+,(Windows/Linux)或Cmd+,(Mac) - 搜索配置项
editor.acceptSuggestionOnCommitCharacter,取消勾选该选项即可。
方案2:仅移除(作为补全提交字符
如果需要保留其他字符(比如.)的补全触发能力,只去掉(的触发逻辑:
- 打开VSCode设置页,搜索配置项
editor.commitCharacters,点击「在settings.json中编辑」 - 在配置中添加如下内容,移除默认提交字符中的
(即可:
"editor.commitCharacters": [".", ",", ";", ":", "!", "?", "[", "{", "}", "]", "=", "+", "-", "*", "/", "&", "%", "#", "@", "<", ">"]
方案3:仅对JavaScript/TypeScript相关文件禁用该逻辑
如果不想影响其他编程语言的补全体验,可以单独对JS/TS类文件生效:
- 打开settings.json,添加如下配置:
"[javascript]": { "editor.acceptSuggestionOnCommitCharacter": false }, "[typescript]": { "editor.acceptSuggestionOnCommitCharacter": false }, "[javascriptreact]": { "editor.acceptSuggestionOnCommitCharacter": false }, "[typescriptreact]": { "editor.acceptSuggestionOnCommitCharacter": false }
内容的提问来源于stack exchange,提问作者mondi
相关产品推荐
相关产品推荐

