gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 07:39:04 24 4
gpt4 key购买 nike

我经常使用 Wordpress,有时我会临时更改 Wordpress 核心文件,以便了解正在发生的情况,尤其是在调试时。今天我有一个小小的惊喜。当我准备将更改提交到 git 存储库时,我注意到 git status 正在将其中一个 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 中的默认文本编辑器,做同样的事情。

<小时/>

编辑

许多其他工具也需要换行符。参见示例:

此外,您可能感兴趣:Vim show newline at the end of file .

关于vim - 为什么 Vim 会在文件末尾添加新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14171254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com