【问题标题】:Can Visual Studio Code use Emmet completion in razor .cshtml filesVisual Studio Code 可以在 razor .cshtml 文件中使用 Emmet 补全吗
【发布时间】:2018-03-23 03:40:26
【问题描述】:

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

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

我找到了:

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

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

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

【问题讨论】:

    标签: razor visual-studio-code emmet


    【解决方案1】:

    根据this link,*.cshtml文件对应的语言是razor,所以需要在emmet mappings中指定如下:

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

    【讨论】:

    • 很高兴它帮助了你
    • 非常感谢@Aegis,我试图设置错误的配置:``` "emmet.includeLanguages": { "cshtml": "html" } ``` =/ 现在可以了太棒了!
    • 这似乎在 OmniSharp 插件 1.17.0 版中被破坏,但您可以通过禁用该插件来恢复全部功能。您可以通过将"razor": "html" 更改为"aspnetcorerazor": "html" 来恢复部分功能。
    • @Chris 实际答案对我不起作用,但您的答案对我有用,谢谢!
    • 澄清:禁用 OmniSharp 插件使 "razor": "html" 工作。如果您保留插件,您可以使用"aspnetcorerazor": "html" 获得一些功能。如果您发现自己切换插件,则不必不断更改设置。您可以同时激活:"razor": "html","aspnetcorerazor": "html"
    【解决方案2】:

    更新: 按 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"
      }
    

    【讨论】:

    • Blazor 需要这个 "aspnetcorerazor":"html"
    猜你喜欢
    • 2017-03-26
    • 1970-01-01
    • 2018-07-31
    • 2018-01-22
    • 1970-01-01
    • 2021-12-31
    • 2021-02-08
    • 2021-09-12
    • 2021-04-11
    相关资源
    最近更新 更多