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

Jam*_*uff 23 razor emmet visual-studio-code

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

我的问题是Emmet在HTML文件中正常工作,但在剃刀CSHTML文件中不起作用.

我发现:

要在默认情况下不可用的文件类型中启用Emmet缩写扩展,请使用emmet.includeLanguages设置.确保为映射的两侧使用语言ID. https://code.visualstudio.com/docs/editor/emmet

但它并不表示在哪里可以找到"语言ID"列表.我试着搜索它,但你可以想象当你搜索编程语言id时会发生什么!

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

Aeg*_*gis 39

根据此链接,*.cshtml文件的相应语言是剃刀,因此您需要在emmet映射中指定它,如下所示:

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

  • 这似乎在OmniSharp插件的1.17.0版本中被破坏,但您可以通过禁用该插件来恢复完整功能.您可以通过将"razor":"html"改为"aspnetcorerazor":"html"来恢复部分功能. (18认同)
  • 澄清:禁用OmniSharp插件会使"razor":"html"工作.如果您保留插件,则可以使用"aspnetcorerazor":"html"`来实现某些功能.如果您发现自己切换插件,则无需继续更改设置.你可以同时使用:"razor":"html","aspnetcorerazor":"html"` (6认同)
  • @Chris实际答案对我不起作用,但你的确没有,谢谢! (2认同)

Kur*_*kay 8

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

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

 "emmet.includeLanguages": {
   "razor":"html",
   "aspnetcorerazor":"html"
  }
Run Code Online (Sandbox Code Playgroud)