Visual Studio 代码可以在 razor .cshtml 文件中使用 Emmet 完成

Can Visual Studio Code use Emmet completion in razor .cshtml files

我正在使用 Visual Studio 代码(1.17.1,在 MacOS 10.13 和 Windows 10 上)使用 razor 模板开发一个 asp.net 核心 mvc 网络应用程序。 Visual Studio 代码支持 Emmet (https://code.visualstudio.com/docs/editor/emmet)

我的问题是 Emmet 在 HTML 文件中可以正常工作,但不能在 razor CSHTML 文件中工作。

我发现:

To enable the Emmet abbreviation expansion in file types where it is not available by default, use the emmet.includeLanguages setting. Make sure to use language ids for both sides of the mapping. https://code.visualstudio.com/docs/editor/emmet

但它没有指明在哪里可以找到 "language ids" 的列表。我尝试搜索它,但是您可以想象当您搜索编程语言 id 时会发生什么!

有没有办法让 VS Code 中的 Emmet 将 cshtml 文件视为 html 文件?有没有其他方法可以让它工作(除了重命名文件,这是另一种解决方案)?

根据this link,*.cshtml 文件对应的语言是razor,因此您需要在emmet 映射如下:

"emmet.includeLanguages": { "razor": "html" }

更新: 按 Ctrl+K 比按 M(Ctrl+K,M)比 select 从下拉列表中选择荧光笔 这是一个常用的快捷方式。很有用。甚至适用于任何文件类型。 IE。创建一个新文件并编写一些 xml 或你想要的语言而不是 Ctrl+K,M 你可以 specify/override ide hilighter 即时。非常有用的捷径。尝试一下。你不会忘记 Ctrl+K,M。我在 vscode 中使用过的最有用的热键组合之一。通过这种方式,代码完成唤醒并作为您 selected.

的语言工作

在 vscode > settings.json
我添加了上面提到的相关代码。 emmet 适用于 cshtml 文件。

 "emmet.includeLanguages": {
   "razor":"html",
   "aspnetcorerazor":"html"
  }