【问题标题】:Does the completions file "contents" have to be 1 line (no newline)?完成文件“内容”是否必须为 1 行(无换行符)?
【发布时间】:2013-08-14 14:52:32
【问题描述】:

sublime 文本的新手并尝试设置一些补全,因为我有一堆 sn-ps,我宁愿只使用 1 个文件,而不是为每个 sn-p 使用单独的文件。

当我保存下面的代码时,我得到它无法解析文件的错误,意外的换行符。我认为这是因为我正在使用换行符。是否仅针对短 1 行代码完成?有什么可以做的,这样当我有如下更长的代码时,我不必为 sn-ps 使用单个文件?

{
    "completions":
    [
            { "trigger": "clearforms", "contents":
                "//clear form fields
                \$(function() {
                    \$.fn.clearInput = function() {
                        return this.focus(function() {
                            if( this.value == this.defaultValue ) {
                                this.value = "";
                            }
                        }).blur(function() {
                            if( !this.value.length ) {
                                this.value = this.defaultValue;
                            }
                        });
                };

                    \$('#subscribe').clearInput();
                    \$('#search').clearInput(); 
                });"
            }
    ]

}

【问题讨论】:

    标签: sublimetext sublimetext3


    【解决方案1】:

    JSON 不允许多行字符串 - 换行符需要编码为 \n$ 符号需要像 \\$ 一样进行双重转义,并且您的评论正斜杠需要像 \/\/ 一样进行单次转义。因此,您的完成文件需要如下所示:

    {
        "completions":
            [
                { "trigger": "clearforms", "contents": "\/\/ clear forms \n\\$(function() { \n\\$.fn.clearInput = function() { \nreturn this.focus(function() { \nif( this.value == this.defaultValue ) { \nthis.value = \"\"; \n} \n}).blur(function() { \nif( !this.value.length ) { \nthis.value = this.defaultValue; \n} \n}); \n}; \n\n\\$('#subscribe').clearInput(); \n\\$('#search').clearInput(); \n});" }
            ]
    
    }
    

    我会留给您在每个换行符后放入适当的空格。我应该注意,虽然拥有单独的 sn-p 文件可能会稍微“混乱”一些,但它们确实允许多行条目而无需换行符转义,从而使您可以更轻松地格式化输出。但是,$ 和可能的 JS cmets 可能需要转义。

    【讨论】:

    • 谢谢,我以为是这种情况,但想仔细检查一下。我更像是一个设计/前端的人,所以无论如何都不是 json 专家。我想我会坚持使用单独的 sn-ps,因为它可以用更少的工作来逃避所有事情。另外,我可以将它们分组到用户目录中的文件夹中,所以至少有一些组织。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 2012-12-23
    • 2012-06-02
    • 2011-10-03
    • 1970-01-01
    相关资源
    最近更新 更多