自从我在 Sublime 2 中启用了 Emmet 后,某些命令无法正常工作。
HTML
在文件输入时,如何启用看似默认的功能
cmd + /
在...前面
<script src="./bower_components/angular/angular.js"></script>
获取正确注释的标签:
<!-- <script src="./bower_components/angular/angular.js"></script> -->
现在同样的命令会生成
// <script src="./bower_components/angular/angular.js"></script>
这是完全错误的。
答案1
所以事实证明这不是 Emmet 的问题,而是 Sublime 内置 HTML 语言定义的问题。出于某种原因,它被设置为任何以标签开头的行<script>
(前面可以有空格)都被归类为source.js.embedded
,这意味着当触发注释快捷方式时,它会使用 JS//
注释标记而不是 HTML 注释<!-- -->
标记。
我发现解决这个问题最简单的方法是安装HTML5
封装通过包控制,我假设你已经安装了它,因为你正在使用 Emmet。安装新包,然后打开你的用户偏好设置(Sublime Text 2 -> Preferences -> Settings-User
)并添加"HTML"
到列表中"ignored_packages"
:
"ignored_packages":
[
"HTML",
"Vintage"
],
保存文件,然后重启 Sublime。现在,当你转到View -> Syntax
应该只有一个HTML
条目,但它将引用 HTML5 语法,而不是内置语法。要测试,请打开上面编辑的文件,将光标放在标签前<script>
,然后点击⌘/。现在整行应该被 HTML 注释包围:
<!-- <script src="./bower_components/angular/angular.js"></script> -->