Sublime文本会覆盖Emmet代码段

时间:2014-09-16 16:41:25

标签: html sublimetext3 code-snippets override emmet

我的问题很简单,一些 Emmet片段和缩写被Sublime Text 3默认标记覆盖 - 例如,当我输入'link'并按TAB我最终:

<link rel="stylesheet" href="">

如Emmet文档(https://github.com/emmetio/emmet/blob/master/lib/snippets.json)中所述。

相反,我得到:

<link rel="stylesheet" type="text/css" href="">

这是Sublime Text 3的默认值。 “img”和其他一些有用的标签也是如此,现在我想知道:为什么这样,我能做什么“修复”它? 我希望Emmet片段有“第一个dibs”,而不是相反。

3 个答案:

答案 0 :(得分:1)

打开 Preferences -> Package Settings -> Emmet -> Settings-User 并添加以下内容(第一次打开时应该为空):

{
    "remove_html_completions": true
}

保存文件,然后重新启动Sublime。

要查看您可以自定义的所有选项,请打开 Preferences -> Package Settings -> Emmet -> Settings-Default 。如果您看到任何想要更改的内容,请将设置复制到Settings-User,确保每行末尾都有一个逗号,,但最后一行除外。

答案 1 :(得分:1)

为了记录我想传达的信息,我终于找到了问题的解决方案。似乎Emmet有这个内置设置,您可以在其中指定您希望代码编辑器在哪些范围内。默认为覆盖Emmet,默认情况下,它设置为&#34; text.html&#34;。因此,我需要做的就是解决我的问题只是通过输入

将此设置更改为none
{

"disabled_single_snippet_for_scopes": ""

}

在Emmet用户设置中。干杯!

答案 2 :(得分:0)

由于缺乏API,Emmet很难与原生的Sublime Text片段保持良好关系。但是Emmet试图尽可能地猜测你想做什么。

默认情况下,当您在ST中键入与本机代码段匹配的内容时,您可能会看到带有代码段提案的自动填充弹出窗口。这意味着您可能希望通过按Tab键来扩展本机代码段。另一方面,大多数Emmet缩写看起来不像预定义的片段,例如键入缩写时,您将看不到自动完成弹出窗口。

因此,当自动完成弹出窗口可见时, Emmet不会通过Tab键扩展缩写。对于本机代码片段问题,它似乎是一个不错的解决方案(ST API可以判断弹出窗口是否可见)。我很确定在您的link示例中可以看到自动填充弹出窗口。

对于铁杆Emmet用户,可以禁用此行为并强制Emmet始终按Tab键扩展缩写,如果自动完成弹出窗口可见,则为事件。为此,请转到首选项→设置 - 用户,然后添加以下选项:

"disable_tab_abbreviations_on_auto_complete": false

请参阅https://github.com/sergeche/emmet-sublime/blob/master/Preferences.sublime-settings#L29