这个问题是我用于"在vim中保存文件而没有在文件末尾强行添加换行符"的烦恼的后续工作.
基本上我不能set noeol在我用,.vimrc因为它什么都没做!
如果我以二进制模式编辑文件,它会执行它应该执行的操作.(vim -b file而不是vim file)
这是为什么?
无论如何都有一个简单的偏好,.vimrc不在我编辑的每个文件中添加换行符?
另外,如果我开始以二进制模式编辑每个文件,我会遇到什么样的问题?到目前为止,我没有看到任何差异.
我经常使用wordpress,有时我会暂时更改wordpress核心文件,以便了解发生了什么,特别是在调试时.今天我有点意外.当我准备将我的更改提交到我的git存储库时,我注意到它将git status一个wordpress'文件标记为没有为提交暂存.我记得在关闭它之前我已经将所做的所有更改还原到该文件中,因此我决定使用diff以查看已更改的内容.我将项目中的文件与我保存在下载目录中的wordpress副本上的文件进行了比较.事实证明文件在最后有所不同.diff表示原始文件末尾缺少换行符:
1724c1724
< }
\ No newline at end of file
---
> }
Run Code Online (Sandbox Code Playgroud)
我从来没有触及那条线.我在大文件中间某处所做的更改.这让我认为vim在文件末尾添加了换行符.为什么会这样?
当我在记事本中打开文本文件时,如果在包含文本的最后一行末尾有回车符,则显示一个空行.但是,在Vim中它不显示此空行.我注意到的另一件事是Vim编辑器默认情况下将回车符添加到最后一行(即使它没有显示).我可以告诉,因为如果我在记事本中打开一个在Vim中创建的文件,它会在文件末尾显示一个空行.
无论如何,我可以忍受这两个差异,但我想知道Vim中是否有一个允许你切换这种行为的选项.
谢谢
PS - GVim 7.2
[更新]
改为服务器故障是否有意义?
[更新2]
我将改述这一点......我需要知道单行文件末尾有回车符(记事本显示没有文字的额外行,Vim我说不清楚).这是由于Progress程序读取一个文本文件(需要一行,但带有回车符)并为某种目的解析文本.如果没有回车符,则Progress会将该行视为null.
[解决方法] 我发现确保有回车符(但确保我不添加第二个)的一种方法是确保我打开了行结束选项(:set eol)和然后只是写/保存.如果文件尚未存在,这将在文件中放置一行.否则,它不会添加新的.