【问题标题】: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 所经历的解释水平有关 在它最终进入您的文本缓冲区之前:

    1. sn-p在CSON文件中声明,解析字符串元素 这种格式是“反斜杠敏感的”,即 \n 代表换行符 字符和 \ 表示为 .
    2. 那么 sn-p 必须是 由 sn-p 正文解析器解析。解析器使用一个 \ 来转义 跟随字符,例如\ 变为 .所以过程如下:

      \ --CSON--> \ --BodyParser--> \

    两个反斜杠过去起作用的原因是因为 sn-p 正文 解析器从未真正处理过转义字符(转义案例是 明确处理而不是通用方式)这就是为什么我们有 错误 #60。

    如果 sn-ps 以自定义格式存储。然后我们将有更多的控制权 它是如何解析的,例如在它们之前不解释反斜杠 被馈送到正文解析器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-23
      • 2013-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      相关资源
      最近更新 更多