使用版本控制系统时,当差异显示为 时,我对噪音感到恼火No newline at end of file
。
所以我想知道:如何在文件末尾添加换行符以摆脱这些消息?
我无法理解一个奇怪的行为:vi 似乎在文件末尾添加了一个换行符(ASCII:LF,因为它是 Unix ( AIX ) 系统),而我没有专门输入它。
我在 vi 中编辑文件(注意不要在最后输入换行符):
# vi foo ## Which I will finish on the char "9" and not input a last newline, then `:wq`
123456789
123456789
123456789
123456789
~
~
## When I save, the cursor is just above the last "9", and no newline was added.
Run Code Online (Sandbox Code Playgroud)
我希望 vi 将它“按原样”保存,因此有 39 个字节:前三行(数字 1 到 9,后跟一个换行符(我的系统上为 LF))中的每一行都有 10 个 ASCII 字符,最后一行只有 9 个行(字符 1 到 9,没有终止换行符/LF)。
但是当我保存它时出现它是40个字节(而不是 39 个),并且od 显示一个终止的 LF: …
如果您打开一个文件,vim
并且该文件EOL
的最后一行末尾没有,那么编辑器会将其报告为[noeol]
. 在打开它之前如何确定这一点vim
?(有没有我可以发出的命令来确定这一点?)