如何防止 Atom 对 config.cson 进行表面更改?

How can I prevent Atom from making superficial changes to config.cson?

据我所知 CSON README and other CSON usages I've found on the Internet, it's conventional to use single rather than double quotes for string literals. Because of this (and because I agree with the rationale I've generally seen behind this convention), I am using it for my Atom config files, such as keymap.cson:

'body':
  'ctrl-tab': 'pane:show-next-item'
  'ctrl-tab ^ctrl': 'unset!'
  'ctrl-shift-tab': 'pane:show-previous-item'
  'ctrl-shift-tab ^ctrl': 'unset!'

到目前为止,这对我来说效果很好。但是,当我尝试对我的 config.cson 文件也使用相同的约定时,我 运行 遇到了问题。例如,我试图将其内容设置为以下内容:

'*':
  core:
    disabledPackages: [
      'exception-reporting'
    ]
    restorePreviousWindowsOnStart: false
    telemetryConsent: 'no'
  welcome:
    showOnStartup: false
  whitespace:
    ignoreWhitespaceOnCurrentLine: false

但如果我打开 Atom 并按 Ctrl+= Ctrl+-(调整字体大小)或做一些其他类似的更改然后将 Atom 恢复到以前的状态,Atom 将我的 config.cson 文件更改为如下所示:

"*":
  core:
    disabledPackages: [
      "exception-reporting"
    ]
    restorePreviousWindowsOnStart: false
    telemetryConsent: "no"
  editor: {}
  welcome:
    showOnStartup: false
  whitespace:
    ignoreWhitespaceOnCurrentLine: false

如您所见,它将所有单引号更改为双引号并添加了不必要的 editor 部分。

有没有办法阻止 Atom 对我的 config.cson 文件进行这些表面上的更改? 这对我来说很重要的原因是我要保留我的版本控制中的 Atom 配置文件,因此为了防止非常嘈杂的差异,我需要禁用此行为或对我的引用使用不一致或次优的样式,如果可能的话,我会发现前一个选项更可取。

如果可以选择切换文件格式,请考虑改用 config.json。由于 JSON 按照惯例使用双引号,因此在更改 Atom 配置时应该不会发生冲突。

Atom 已经开始从 CoffeeScript(和 CSON)过渡,您可以在整个应用程序中交替使用 JavaScript/CoffeeScript 和 JSON/CSON。

v2.0.0, the cson-parser library uses the conventional default for quote type when stringifying CSON, so you can write a simple shell script 开始使用该库并 运行 在 config.cson 上使用它,然后再提交 Git。在调用 stringify.

之前删除此类脚本中空 editor 部分之类的内容也相对简单

您可以将其写入 Atom 程序包,正如 中提到的@idleberg,但我自己还没有尝试过。

如果season upgradescson-parser对v2.0.0的依赖,那将解决引用类型问题,但空的editor部分仍然需要被别的东西删除了。