当我在记事本中打开文本文件时,如果在包含文本的最后一行末尾有回车符,则显示一个空行。但是,在Vim中它不显示此空行。我注意到的另一件事是Vim编辑器默认情况下将回车符添加到最后一行(即使它没有显示)。我可以告诉你,因为如果我在记事本中打开一个在Vim中创建的文件,它会在文件末尾显示一个空行。
无论如何,我可以忍受这两个差异,但我想知道Vim中是否有一个允许您切换此行为的选项。
谢谢
PS - GVim 7.2
[更新]
改为服务器故障是否有意义?
[更新2]
我会改写这个...我需要知道单行文件末尾有回车符(记事本显示没有文字的额外行,Vim我说不清楚)。这是由于Progress程序读取一个文本文件(需要一行,但带有回车符)并为某种目的解析文本。如果没有回车符,则Progress会将该行视为null。
[解决方法]
我发现确保有回车符(但确保我不添加第二个)的一种方法是确保我打开了行结束选项(:set eol)然后只做一个写/保存。如果文件尚未存在,这将在文件中放置一行。否则,它不会添加新的。
似乎vim将换行视为行终止符,而记事本将其视为行分隔符:from http://en.wikipedia.org/wiki/Newline
还有一些混乱
换行符终止或分隔行。
如果换行符被认为是
分隔符,将没有换行符
在文件的最后一行之后。该
大多数系统的一般惯例是
即使在最后一个之后添加换行符
line,即将换行视为一行
终止。有些课程有
处理最后一行的问题
文件,如果它不是换行符终止。
相反,期望的程序
要用作分隔符的换行符
将最终换行符解释为开头
一条新的(空)线。这可能导致
报告的行数不同
对于该文件,但不是
一般无害。
如果我没记错的话,在unix-y系统上,文本文件必须以换行符终止。
一个有用的Vim选项是
set list
它将帮助您查看所有行的字符(以及可能的其他通常不可见的字符)。因此,您将能够直接在Vim中查看最后一个内行,而不仅仅是在记事本中。
当您在VIM中打开文件时,状态行应该说明 [noeol]
文件名后面。这是一个迹象。如 曼尼 说,你可以通过设置两者来改变这一点 endofline
选项关闭和 binary
选项。您可以将其设置为a中的默认设置 .vimrc
文件。