Emmet 扩展缩写在具有属性的 Visual Studio Code 中不起作用

Posted

技术标签:

【中文标题】Emmet 扩展缩写在具有属性的 Visual Studio Code 中不起作用【英文标题】:Emmet expand abbreviation doesn't work in Visual Studio Code with the attributes 【发布时间】:2019-04-04 14:35:19 【问题描述】:

我开始在我的 Web 项目中使用 Visual Studio Code,没有 Emmet 我就活不下去,但是当我尝试使用属性扩展 html 标记中的缩写时遇到了问题。 只是一个例子。如果我写 html:5 并按 TAB 键,它会展开所有 HTML5 模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

</body>
</html>

并使用 id 和 class 编写标签,例如 p#id.class,它会正确生成下一段代码

<p id="id" class="class"></p>

但是当我想用方括号内的其他属性扩展相同的标签时,它不起作用。只需在代码中添加一个制表符即可。

p[align="center"]

如果我尝试使用大括号在标签中添加文本,同样的事情

pTest

你能帮我知道如何配置它,或者我的软件/扩展是否有问题?

问候,

【问题讨论】:

【参考方案1】:

以上/以下描述如何配置您的 settings.json 文件以启用/配置 Emmet 的答案的进一步说明:

如果您尝试在未保存的新文档中使用 Emmet... 您必须选择一种(支持的)语言才能激活 Emmet。 (您也可以只保存文档,VSCode 会从扩展中知道您使用的是什么语言。)

当您启动一个新的编辑器选项卡时(Ctrl+N 等) -- 在空白页面的最左上角,您可能会看到:“选择一种语言以开始使用”。单击加粗的“选择一种语言”,然后选择在 Settings.json 文件中为 Emmet 配置的语言之一,如上面/下面的其他几个答案中所述。

现在,再试一次:输入 .test 并按 Tab,您应该会看到 Emmet 展开您的缩写。

【讨论】:

【参考方案2】:

有同样的问题,但打字稿。 将 "typescript": "typescriptreact" 添加到 settings.json 有帮助。

"emmet.includeLanguages": 
    "javascript": "javascriptreact",
    "typescript": "typescriptreact",
    "razor": "html",
    "plaintext": "pug"

显然打字稿不是 emmet 的默认设置。

【讨论】:

【参考方案3】:

在 Visual Studio 代码中: 文件 > 首选项 > 设置 > 扩展 > Emmet > 在 settings.json 文件中编辑

添加以下对我有用的代码。

"emmet.triggerExpansionOnTab": true,
"files.associations": "*html":"html",

我希望它对某人有所帮助。

【讨论】:

【参考方案4】:

在 Visual Studio Code 中编辑文件 settings.json 的路径 文件 > 首选项 > 设置 > 扩展 > Emmet > 在 settings.json 中编辑

find file settings.json Edit file settings.json

【讨论】:

您不是在重复 2018 年 11 月之前的回答吗?【参考方案5】:

几天后,在Emmet in Visual Studio Code webpage中调查我找到了解决方案。

您需要在用户设置文件中添加下一行以使用 Tab 键扩展 Emmet 缩写:

"emmet.triggerExpansionOnTab": true

这是因为默认情况下在 Visual Studio Code 上是禁用的。

【讨论】:

将此行添加到我的 settings.json 后,我仍然遇到问题。我得到的错误是command 'emmet.expandAbbreviation' not found @KshitijSaraogi "emmet.expandAbbreviation" 已弃用,您需要从 settings.json 中删除并添加 "emmet.triggerExpansionOnTab" 而不是 方括号后的制表符在启用此选项时仍然不起作用 @podlec 我再次检查了我的 VS Code,我可以确认它仍在工作 值得注意的是,对我来说,错误来自引用 emmet.expandAbbreviation 的键绑定,因此其他人也可能会检查键绑定。【参考方案6】:

我认为方括号在 emmet 中不再起作用... 但是,您应该使用 p>text 作为大括号。 据我了解,它用于在元素中添加文本。

所以 p>text here 将产生&lt;p&gt;text here&lt;/p&gt;

如果您仍需要更多帮助,请查看 emmet 缩写语法文档:The Emmet Docs - Abbreviations Syntax

【讨论】:

您好,感谢您的回答。我尝试了你告诉我的方法,但也不起作用。与另一个结果相同......你的意思是方括号在 Emmet 上不再起作用了吗?我检查了文档,它仍然出现在那里...... 哦,好吧...我认为您应该重新安装扩展程序...如果您检查了我发送给您的链接,它不存在 是的......事情是Visual Studio Code默认集成了Emmet 请停用扩展程序,重新加载 VS Code,然后在扩展程序商店中找到它并重新安装.... 不幸的是它不起作用。我卸载了VS Code并删除了User文件夹和AppData中与配置相关的所有文件夹,重新安装它,问题仍然存在。

以上是关于Emmet 扩展缩写在具有属性的 Visual Studio Code 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Emmet缩写语法

如何让 emmet 将具有值的属性添加到 div 标签中?

带有缩写的 Emmet 换行

Emmet 缩写 - 元素标签内的文本

Emmet常用的缩写

vscode中html/css快速补全插件Emmet用法