2014-10-28 49 views
16

这是一个如此简单的问题,但除了自述文件外,我找不到任何文档。原子编辑器:多个片段

我怎么能在原子Editior多个自定义代码片段:

比如我在snippets.cson现在

'.source.js': 
    'Normal Comment Block': 
    'prefix': 'cmm' 
    'body': """ 
     //********************************************************************************** 
     // 
     //********************************************************************************** 
    """ 

'.source.js': 
    'Dashed Comment Block': 
    'prefix': 'c--' 
    'body': """ 
     //---------------------------------------------------------------------------------- 
     // 
     //---------------------------------------------------------------------------------- 
    """ 

但是CMM不工作都这样了,我只能用snippets.cson中的最后一项。有想法该怎么解决这个吗?我有大约十几种不同的片段,但我无法弄清楚如何正确地包含它们。

+0

您将要覆盖第一个片段,因为你在声明相同的父项'” .source.js':'在数组中的两倍。如果你从第二个移除''.source.js':'那么它就会工作。你应该只有一个''.source.language':'每套语言片段。其他方面,重复的父键将相互覆盖。 – 2017-10-05 05:06:51

回答

43

配置文件格式被称为CSON,CoffeeScript的对象符号。像JSON(JavaScript Object Notation)一样,它是描述简单对象的文本格式。正因如此,当您指定一个密钥两次时(例如.source.js),第二个实例将覆盖第一个密钥。如果你只是有一个.source.js一切都将正常工作:

'.source.js': 
    'Normal Comment Block': 
    'prefix': 'cmm' 
    'body': """ 
     //********************************************************************************** 
     // $1 
     //********************************************************************************** 
     $0 
    """ 
    'Dashed Comment Block': 
    'prefix': 'c--' 
    'body': """ 
     //---------------------------------------------------------------------------------- 
     // $1 
     //---------------------------------------------------------------------------------- 
     $0 
    """ 

此外,我还添加了标签的自由停止你的片段,这样当你扩展片段,光标应该先着地里面的评论。您可以输入您的评论,然后按TAB退出并继续。

+1

这正是我所需要的,谢谢@Lee! – JuanOjeda 2015-11-09 03:20:49

9

除了@李的解释,这里是一个例子,如果你wan't通过编程语言的组织设置多个片段:

# HTML Snippets 
'.text.html': 
    'HTML Comment': 
    'prefix': '<!' 
    'body': '<!-- $1 -->' 

# Sass Snippets 
'.source.scss': 
    'Section Comment': 
    'prefix': 'sc' 
    'body': """ 
     /*================================================= 
     $1 
     =================================================== */ 
    """ 
    'Sub Section Comment': 
    'prefix': 'ssc' 
    'body': """ 
     /* $1 
     =================================================== */ 
    """ 

# JavaScript Snippets 
'.source.js': 
    'jQuery - Bind Event': 
    'prefix': 'bind' 
    'body': """ 
     $($1).on('$2', '$3', function($4) { 
     $5 
     }); 
    """ 

在这个例子里,包括HTML,萨斯和Javascript,但你可以包括其他如CSS,...

希望这是有用的。

0

开始用逗号分隔的下一个片段,随后用新的生产线给予相同的结构,第一个为我工作的。

'.source.php': 
'var dump': 
'prefix': 'vd' 
'body': """ 
    echo "<pre>"; 
    var_dump($); 
    echo "</pre>"; 
""", 

'this->db': 
'prefix': 'trans' 
'body': """ 
    $this->db->trans_start(); 
""", 

'comment block': 
'prefix': 'cm' 
'body': """ 
    /**************************************** 
    * 
    * 
    ****************************************/ 
""" 
2

在Atom中发现了一个带有多个片段的奇怪错误。我希望这个答案可以帮助有同样问题的人(我正在使用Atom的mac版本)。于是,我去了一个新片段添加到snippets.cson文件,我复制了老段,并粘贴它下面是这样的一个模板并保存他们,即使他们是相同的还是 '.source.php': 'Debug': 'prefix': 'prepr' 'body': """ echo "<pre>",print_r($_POST, 1),"</pre>"; die(); """ 'Debug': 'prefix': 'prepr' 'body': """ echo "<pre>",print_r($_POST, 1),"</pre>"; die(); """ 保存此之后,我编辑的第二一个有不同的标题和前缀和机身码 '.source.php': 'Debug': 'prefix': 'prepr' 'body': """ echo "<pre>",print_r($_POST, 1),"</pre>"; die(); """ 'different': 'prefix': 'different' 'body': """ echo "different"; """ 已经编辑了第二个片段后,我再次保存。这次为第二个片段扩展的标签不起作用,然而第一个仍然有效。确定我有正确的语法之后,我尝试了一个预感,可能是因为我保存了两个重复的片段,它以某种方式与cson输出混淆了。然后我删除了第二个代码片段,然后将其仅保存在第一个代码片段中,然后复制第一个片段,然后更改它,然后保存它。毕竟这两个片段正常工作。

我一直在使用多个片段的同时,从来没有真正遇到了这个问题直到现在。很奇怪,但它是。

0

我有同样的问题,这里是修复:

'.source.js': 
    'First function': 
    'prefix': 'first' 
    'body': """ 
    function $1() { 
     var overall = true; 
     if (overall) 
     { 
     var result = {}; 
     result.test1 = ""; 
     return test2(result); 
     } 
     return catched(""); 
    } """, 

    'Next function': 
    'prefix': 'next' 
    'body': """ 
    function $1(result) { 
     var overall = true; 
     if (overall) 
     { 
     result.test1 = ""; 
     return test2(result); 
     } 
     return catched(""); 
    } """, 

    'Next next function': 
    'prefix': 'pz' 
    'body': """ 
    function $1(result) { 
     var overall = true; 
     if (overall) 
     { 
     result.test1 = ""; 
     return test2(result); 
     } 
     return catched(""); 
    } """ 

请注意,你必须做两件事情:每个之后

  1. 添加逗号(,)“ “”
  2. 开始下一个定义在prev定义的同一起始行! 我真的不明白它为什么会这样工作..但是..情况就是这样
  3. 使用'.source.PROGRAM LANGUAGE':每种语言只使用一次。

首页它可以帮助:)