如何在VSCode中禁用HTML自动完成?

34
当我输入const someVariable = someArray[0]时,当我按下回车键时,VSCode会自动将整行转换为:const someVariable = <someArray 0=""></someArray>

这是Emmet,搜索Emmet选项的设置。或者每次发生时按Ctrl-Z - rioV8
2个回答

38

"emmet.includeLanguages": {"javascript": "javascriptreact"}

This will enable emmet only in the specified language and its corresponding file extension.

"[typescriptreact]": {
   "editor.acceptSuggestionOnEnter": "off"
}, 

或者

"[javascript]": {
   "editor.acceptSuggestionOnEnter": "off"
},

与之一起

"emmet.showExpandedAbbreviation": "never",

要在你的语言中保留 Emmet 功能,但禁用查看缩写并在按下回车时接受缩写。


如果我只使用JavaScript而不是TypeScript呢? - TIMEX
1
你只需要将 typescriptreact 替换为你使用的任何语言。我在回答中提供了 javascript 的示例。 - Mark
1
这让我非常烦恼,但是 excludeLanguages 最终为我解决了问题,非常感谢! - Liran H
在编辑HTML文件时,DOM自动完成功能会不断弹出,如何禁用这些自动完成功能?即使添加了“emmet.excludeLanguages:[”javascript“]”。 - Ya Basha
1
这段代码看起来值得一试,但我应该把它放在哪个文件中以及将其放在哪里让代码能够理解它? - Dave Morse

2

我认为@Mark已经回答了你的问题。

但是,对我来说,似乎Emmet正在对你的JS代码进行HTML扩展,这是不应该发生的,除非你的JS是HTML文件中的内联<script>元素?

因此,当你在JS块中时,你可以保持设置不变并更改文件模式(按F1,输入mode以获取“更改语言模式”命令,然后选择“JavaScript”。再次执行此操作以切换回HTML),或将JS放在以.js结尾的单独文件中,并使用src=属性将其链接到HTML中的<script>


1
如果您正在JSX / TSX环境中,这也很可能是发生的原因。 - CTS_AE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接