【问题标题】:Why do Atom snippets need four backslashes at once in their body in order to print a single backslash为什么 Atom 片段需要在其正文中一次使用四个反斜杠才能打印一个反斜杠
【发布时间】:2018-05-09 17:48:03
【问题描述】:
我在设置 sn-p 时才意识到这一点。
'.source':
'shrug':
'prefix': 'shrug'
'body': '¯\\\\_(ツ)_/¯'
为了打印典型的¯\_(ツ)_/¯ 耸肩,您需要 4 个反斜杠。使用 2 个反斜杠不会导致任何错误,但不会打印反斜杠。如果您需要 2,但为什么需要 4,我会理解它?
【问题讨论】:
标签:
coffeescript
atom-editor
backslash
【解决方案1】:
atom sn-ps 中的四个反斜杠是由于 sn-ps 使用通用 CSON 表示法(Coffeescript 样式 JSON)。
this comment 中对来自atom-snippets repo 的问题进行了很好的描述
我认为四个反斜杠是有道理的,但在符号上
不方便。
这与 sn-p 所经历的解释水平有关
在它最终进入您的文本缓冲区之前:
- sn-p在CSON文件中声明,解析字符串元素
这种格式是“反斜杠敏感的”,即 \n 代表换行符
字符和 \ 表示为 .
-
那么 sn-p 必须是
由 sn-p 正文解析器解析。解析器使用一个 \ 来转义
跟随字符,例如\ 变为 .所以过程如下:
\ --CSON--> \ --BodyParser--> \
两个反斜杠过去起作用的原因是因为 sn-p 正文
解析器从未真正处理过转义字符(转义案例是
明确处理而不是通用方式)这就是为什么我们有
错误 #60。
如果 sn-ps
以自定义格式存储。然后我们将有更多的控制权
它是如何解析的,例如在它们之前不解释反斜杠
被馈送到正文解析器。