为什么Vim会在文件末尾添加新行?

前端之家收集整理的这篇文章主要介绍了为什么Vim会在文件末尾添加新行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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,它应该永远在那里)。

这不是唯一的编辑。 GeditGNOME中的默认文本编辑器也是一样的。

编辑

许多其他工具也期望换行符。参见例如:

> How wc expects it.
> GCC warns about it

而且,您可能会感兴趣:Vim show newline at the end of file

猜你在找的Bash相关文章