Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以强制Vim在文件末尾显示一个空行吗?_Vim_Newline_Options_Carriage Return - Fatal编程技术网

可以强制Vim在文件末尾显示一个空行吗?

可以强制Vim在文件末尾显示一个空行吗?,vim,newline,options,carriage-return,Vim,Newline,Options,Carriage Return,当我在记事本中打开一个文本文件时,如果包含文本的最后一行末尾有回车符,它将显示一个空行。但是,在Vim中不显示此空行。我注意到的另一件事是,Vim编辑器在默认情况下将回车添加到最后一行(即使它没有显示回车)。我可以说,因为如果我在记事本中打开一个在Vim中创建的文件,它会在文件末尾显示一个空行 无论如何,我可以接受这两种差异,但我想知道Vim中是否有允许您切换这种行为的选项 谢谢 PS-GVim 7.2 [更新] 改为服务器故障有意义吗 [更新2] 我会重新措辞。。。我需要知道在单行文件的末尾何

当我在记事本中打开一个文本文件时,如果包含文本的最后一行末尾有回车符,它将显示一个空行。但是,在Vim中不显示此空行。我注意到的另一件事是,Vim编辑器在默认情况下将回车添加到最后一行(即使它没有显示回车)。我可以说,因为如果我在记事本中打开一个在Vim中创建的文件,它会在文件末尾显示一个空行

无论如何,我可以接受这两种差异,但我想知道Vim中是否有允许您切换这种行为的选项

谢谢

PS-GVim 7.2

[更新]

改为服务器故障有意义吗

[更新2]

我会重新措辞。。。我需要知道在单行文件的末尾何时有回车符(记事本显示一个没有文本的额外行,Vim我不知道)。这是由于一个Progress程序读取文本文件(需要一行,但带有回车符)并出于某种目的解析文本。如果没有回车符,则Progress将该行视为空

[解决方案] 我发现确保有回车的一种方法(但确保我没有添加第二个回车)是确保我打开了行结束写入选项(:set eol),然后只进行写入/保存。这将在文件中放一个行尾,如果它不在那里。否则,它不会添加新的

:help endofline

解释如何阻止vim添加额外的换行符。

一个有用的vim选项是

set list

它将帮助您查看所有行尾字符(以及其他通常不可见的字符)。因此,您可以直接在Vim中查看最后一个endofline,而不仅仅是在记事本中查看。

在Vim中打开文件时,文件名后的状态行应显示
[noeol]
。这是一个迹象。如上所述,您可以通过关闭
endofline
选项和打开
binary
选项来更改此设置。您可以在
.vimrc
文件中将其设置为默认设置。

似乎vim将换行符视为行终止符,而记事本将其视为行分隔符:from

还有一些疑问是 换行符终止或分隔行。 如果换行符被视为 分隔符,将不会有换行符 在文件的最后一行之后。这个 关于大多数系统的一般约定是 添加换行符(即使在最后一行之后) 行,即将换行符视为一行 终结者。有些节目 处理文件的最后一行时出现问题 如果不是换行符终止,则返回文件。 相反,那些期望 用作分隔符的换行符将 将最后一行解释为开始 新(空)行。这可能导致 正在报告不同的行计数 用于文件,但不是 通常是无害的


如果我没记错的话,在unix-y系统上,文本文件必须以换行符终止。

在serverfault上没有任何意义。也许是超级用户。但似乎大家的共识是容忍vim的问题,因为vim被认为是一个IDE。。。我想知道超级用户是否已经退出了私人测试版。。。我想我可以检查一下它仍然在测试版,但不是在私下,而是在半私下测试版:这似乎总是显示一个$character。即使后面没有空行,后面也没有空行。vim认为一行在其末尾有一个换行符。您所讨论的空白行没有换行符,因此VIM断定没有什么可以显示的。请参见更新2评论…将问题改写为更准确。我确认,即使“diff”打印出这些文件之间的差异,使用
:set list
这些文件似乎是相同的。解决了一个问题。。。对我来说,更大的问题是另一个(没有显示有空行),尽管=\与需要确保在一行末尾有一个回车(并且只有一个)有关。我同意我想要那一行,我只是想看到它在那里。