因此,当我使用Atom文本编辑器时,我经常使用Snippets
。它们写在.cson
这样的文件中:
'.source.cpp':
'cout':
'prefix': 'cout'
'body': 'std::cout << "${1:/* message */}" << \n;$2'
现在,当我这样写时,Atom会将\n
解释为换行符,而不是:
std::cout << "${1:/* message */}" << \n
我明白了:
std::cout << "${1:/* message */}" <<
(自动插入新行)
如何将\n
视为一串文字?
答案 0 :(得分:2)
你需要使用4个反斜杠来完成这项工作。
'.source.cpp':
'cout':
'prefix': 'cout'
'body': 'std::cout << "${1:/* message */}" << \\\\n;$2'
这在编辑器中扩展为:
std::cout << "/* message */" << \n;
我对Atom的内部结构不够熟悉,无法完全解释这一点,但它可能会在加载cson文件时导入一次(导致\\n
)然后再次插入在插入期间(产生最终输出字符串\n
)。
答案 1 :(得分:0)
要正确转义\n
,您必须在单行字符串中使用\\n
。但请注意,CSON还支持多行字符串,这通常更适合维护。
示例:强>
body: """
std::cout << "${1:/* message */}" <<
$0
"""
$0
制表符始终排在最后,但$2
没有任何问题。