我在设置片段时才意识到这一点。
'.source':
'shrug':
'prefix': 'shrug'
'body': '¯\\_(ツ)_/¯'
为了打印典型的¯_(ツ)_/¯
耸耸肩,您需要 4 个反斜杠。使用 2 个反斜杠不会导致任何错误,但不会打印反斜杠。如果你为什么需要 2,但为什么需要 4,我会理解它?
原子片段中的四个反斜杠是由于使用通用CSON表示法(Coffeescript样式JSON(的片段造成的。
在此评论中对原子片段存储库中的问题进行了很好的描述
我认为四个反斜杠是有意义的,但符号上 不便。
它与片段所经历的解释水平有关 在它最终进入文本缓冲区之前:
- 代码段在CSON文件中声明,字符串元素的解析 这种格式是"反斜杠敏感",即表示换行符 字符和 \ 表示为 。
然后,代码段必须是 由代码段正文分析器解析。解析器使用一个 \ 来转义 后面的字符,例如 \ 变为 。所以这个过程如下:
\ --CSON--> \ --BodyParser--> \
两个反斜杠曾经起作用的原因是因为代码段正文 解析器从未真正处理过转义字符(转义案例是 显式处理而不是以通用方式处理(这就是为什么我们有 错误 #60。
如果片段 以自定义格式存储。然后我们将拥有更多的控制权 如何解析,例如在反斜杠之前不解释反斜杠 被送入正文解析器。