在Sublime Text 2中为Emmet编写自定义JavaScript代码片段

4
我将尝试为Emmet的snippets.json文件添加一些自定义的JavaScript代码段和缩写,但是我无法使其生效!(我正在使用Sublime Text 2。)
如果我将以下内容放入settings.json文件的末尾:
"javascript": {

    "abbreviations": {
        "while": "while(true)\n{\n\t\n}"
    },

    "snippets": {
        "asdf": "qwerty"
    }
}   

什么都没有发生。(显然我将文件的语法设置为javascript)

但是,如果我将“javascript”替换为“css”:

"css": {

    "abbreviations": {
        "while": "while(true)\n{\n\t\n}"
    },

    "snippets": {
        "asdf": "qwerty"
    }
}

它正确地覆盖了内置的CSS片段,并且运行良好。(我显然将语法设置为CSS [否则它不起作用])

我错过了什么?根据这个链接:http://docs.emmet.io/customization/snippets/,我应该能够以这种方式定义自定义语言的片段。

注意:我也尝试过将语言名称设置为'js'。


1
关于片段页面,它暗示了你可以为自定义语言添加支持。我认为Emmet并不是为Javascript设计的;你最好使用像SublimeCodeIntel这样的工具来提升你的Javascript开发效率。不过,这个问题可能会对你有所帮助(Emmet曾经被称为Zen Coding),尽管我不能确定。 - angerson
谢谢,你提供的问题链接非常有帮助,但我决定使用Sublime内置片段。 - Isti115
1个回答

8
您应该使用js作为语法名称,因为Sublime Text将JavaScript作用域定义为source.js。未来,您应该使用source.(SYNTAX_NAME)部分作为语法名称。
而且,您不应该在缩写部分中使用代码片段,因为缩写定义元素块,并且应编写为HTML元素。请使用snippets部分。
请注意,在ST编辑器中的JS文件中,您必须使用Ctrl+E展开缩写,因为Tab键对此语法无效。
正如Protractor Ninja所指出的那样,在支持本地代码片段的编辑器中使用Emmet代码片段并不是一个好主意。

谢谢你的回答!在进一步研究后,我找到了这个链接: https://github.com/sergeche/emmet-sublime/issues/207 [我想你也回答了那个问题:)] 于是我决定尝试使用Sublime Text的内置片段支持。(我最初想使用emmet,因为我想将所有片段存储在一个地方,并确保没有重叠。)我认为它有点过于复杂了 [每个文件只有一个片段等等],但我想我已经习惯了它,而且它功能非常齐全,所以再次感谢你的回答! :) - Isti115
1
感谢你的回答,Sergey。我一直在尝试在我的snippets.json文件中创建一个自定义JavaScript片段,但它并没有起作用。看了你的回答之后,我把代码从缩写部分移到了片段部分,现在一切都很顺利!(现在我可以用几个按键插入一个通用的对象字面量到我的代码中了!) - Gerald LeRoy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接