使用Atom 1.14.3,我有whitespace
个包,用于处理文件末尾的自动插入换行符。
即使我删除结束换行符并点击保存,它也会重新添加换行符。这很好。
空白包配置似乎没问题:
问题是,当我向Github提交时,它说新换行已被删除:
这是为什么?它是Atom问题,还是潜在的本地github设置问题?
编辑:不知何故,我需要禁用whitespace
包,在文件末尾手动添加两个CRLF,然后提交Github在文件末尾选取单个CRLF。
答案 0 :(得分:2)
我认为你可能误解了换行符的位置。
让我们看一下你的两个截图,以及每个截图中的换行符。
233 return router;\n
234 };\n
这里我们有234作为文件的最后一行。我们显示了一行235,但这是因为234上的换行创建了编辑器光标所在的下一行。如果您开始在235上输入,那么您将创建更多内容。但是现在,235是一个空行(包括没有终止换行符)。
233 return router;\n
234 };\n
235 \n
这是类似的,除了它还有一个以换行符结尾的空行235。现在,无换行空输入行已移至236。
当您使用空白包保存时,它会删除文件末尾的无关换行符,只留下一行。如在第一个截图中。但是,当你看到Github差异时,情况就会有所不同。 Github向您展示文件内容,而不是在编辑器中。因此,没有理由让幻像最后一行为您的光标。相反,它向您展示了事情的简单事实:第234行是文件中的最后一行。 235行现已消失。
让我们来看看空白包的设置。特别是第一个设置:
确保单尾新线
如果缓冲区在保存时没有以换行符结尾,则追加一个。如果它以多个换行结束,则删除除一个之外的所有换行符。要禁用/启用某种语言,请在
config.cson
中使用语法范围的属性。
以下是描述中的前两句话,并加上了一些重点:
如果缓冲区在保存时没有以换行符结尾,则附加一个。如果它以多个换行符结尾,则删除除一个以外的所有内容。