这是一个非常简单的问题,但除了自述文件之外,我找不到任何文档。
如何在Atom Editior中拥有多个自定义代码段:
例如我现在在我的snippets.cson中有这个
'.source.js':
'Normal Comment Block':
'prefix': 'cmm'
'body': """
//**********************************************************************************
//
//**********************************************************************************
"""
'.source.js':
'Dashed Comment Block':
'prefix': 'c--'
'body': """
//----------------------------------------------------------------------------------
//
//----------------------------------------------------------------------------------
"""
但是cmm不起作用,我只能使用snippets.cson中的最后一项。有想法该怎么解决这个吗?我有十几种不同的片段我想使用,但我无法弄清楚如何正确包含它们。
答案 0 :(得分:44)
配置文件格式称为CSON,CoffeeScript Object Notation。与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 :(得分:10)
除了@ Lee的解释之外,如果你不想设置由编程语言组织的多个片段,这里有一个例子:
# 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,Sass和Javascript,但你可以包括其他像CSS,...
希望这很有用。
答案 2 :(得分:4)
在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输出混乱。然后我删除了第二个片段,然后只保存了第一个片段,然后复制了第一个,然后更改了它,然后保存了它。毕竟两个片段都正常工作。
我一直在使用多个代码片段,直到现在才真正遇到过这个问题。很奇怪,但确实如此。
答案 3 :(得分: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': """
/****************************************
*
*
****************************************/
"""
答案 4 :(得分: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("");
} """
请注意,您必须做以下几件事:
主页有帮助:)
答案 5 :(得分:0)
通过适当的缩进,您的代码片段将可以正常工作。不需要多余的逗号
由于文件的格式类似于json文件,因此为cson格式。您可以按照以下方式编写代码段。哪里
'.source.js':
'Console log':
'prefix': 'cl'
'body': 'console.log($1)'
'log error':
'prefix': 'cle'
'body': 'console.log(err)$1'
'log data':
'prefix': 'cld'
'body': 'console.log(data)$1'