Possible Duplicate:
07000
我和wordpress很多工作,有时候我暂时改变了wordpress的核心文件,以便了解发生了什么,尤其是在调试时。今天我有一点惊喜当我准备好将我的更改提交到我的git存储库时,我注意到,git状态正在将wordpress文件中的一个标记为不分段提交。我记得在关闭之前已经将所做的所有修改还原到该文件,所以我决定使用diff来查看发生了什么变化。我将我的项目文件与我在我的下载目录中保存的wordpress副本上的文件进行了比较。最终文件不一样。 diff表示原始文件末尾缺少一个换行符:
1724c1724 < } \ No newline at end of file --- > }
我从来没有触摸过这条线。我在一个大文件中间的某处改变了。这导致我认为vim在文件末尾添加了一个换行符。为什么会发生这种情况?
我在这里看到的所有答案都解决了“如何防止Vim在文件末尾添加换行符”,而问题是“为什么Vim会在文件末尾添加新行? ”。我的浏览器的搜索引擎把我带到这里,我没有找到这个问题的答案。
它与POSIX标准如何定义一条线有关(见Why should files end with a newline?)。所以,基本上一行是:
- 3.206 Line
- A sequence of zero or more non- <newline> characters plus a terminating <newline> character.
因此,他们都需要以换行符结尾。这就是为什么Vim默认添加换行符(因为根据POSIX,它应该永远在那里)。
这不是唯一的编辑。 Gedit,GNOME中的默认文本编辑器也是一样的。
编辑
许多其他工具也期望换行符。参见例如:
> How wc
expects it.
> GCC warns about it。
而且,您可能会感兴趣:Vim show newline at the end of file。