首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用CSON转义新行字符

用CSON转义新行字符
EN

Stack Overflow用户
提问于 2017-02-26 20:33:41
回答 2查看 844关注 0票数 1

因此,当我使用Atom编辑器时,我经常使用Snippets。它们在.cson文件中写成如下所示:

代码语言:javascript
复制
'.source.cpp':
  'cout':
    'prefix': 'cout'
    'body': 'std::cout << "${1:/* message */}" << \n;$2'

现在,当我这样写它时,Atom将\n解释为一个新的行字符,而不是:

std::cout << "${1:/* message */}" << \n

我得到:

代码语言:javascript
复制
std::cout << "${1:/* message */}" <<

(自动插入新行)

我怎样才能把\n当作一串文本来对待呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-26 22:37:25

您需要使用4个反斜杠来使此工作。

代码语言:javascript
复制
'.source.cpp':
  'cout':
    'prefix': 'cout'
    'body': 'std::cout << "${1:/* message */}" << \\\\n;$2'

这将在编辑器中扩展到:

代码语言:javascript
复制
std::cout << "/* message */" << \n;

我对Atom的内部结构还不太熟悉,无法完全解释这一点,但它可能会在加载cson文件(导致\\n)时,然后在插入过程中(导致最终的输出字符串\n)再插入一次内容。

票数 2
EN

Stack Overflow用户

发布于 2017-02-26 22:57:45

要正确转义\n,必须在单行字符串中使用\\n。然而,请注意,CSON也支持多行字符串,这通常是更好的维护。

示例:

代码语言:javascript
复制
body: """
  std::cout << "${1:/* message */}" <<
  $0
"""

$0制表符总是最后一个,但是$2没有什么问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42473913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档