Visual Studio Code 可以在 razor .cshtml 文件中使用 Emmet 补全吗
Posted
技术标签:
【中文标题】Visual Studio Code 可以在 razor .cshtml 文件中使用 Emmet 补全吗【英文标题】:Can Visual Studio Code use Emmet completion in razor .cshtml files 【发布时间】: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 文件?有没有其他方法可以让它工作(除了重命名文件,这是另一种解决方案)?
【问题讨论】:
【参考方案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"以上是关于Visual Studio Code 可以在 razor .cshtml 文件中使用 Emmet 补全吗的主要内容,如果未能解决你的问题,请参考以下文章
vscode: Visual Studio Code 常用快捷键
是否可以在 C# 中编写 Visual Studio Code 扩展
开发环境安装 Visual Studio Code 开发环境 ( 下载 Visual Studio Code 安装器 | Visual Studio Code )