2014-10-28 75 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':每種語言只使用一次。

首頁它可以幫助:)