基本上我不能在我的.vimrc中使用set noeol,因为它没有!
它做它应该做的,但如果我编辑文件在二进制模式。 (vim -b文件而不是vim文件)
这是为什么?
反正在.vimrc有一个简单的偏好,不添加换行符在我编辑的每个单个文件?
此外,如果我开始编辑每个文件在二进制模式,我会遇到什么样的问题?到目前为止我还没有看到任何区别。
“换行”字符或更准确地“行结束”字符(< EOL>)意味着“在该点之后的任何内容必须被认为在另一行上”。利用该解释 – < EOL>是行终止符 – 文件的最后一行实际上是具有< EOL>的最后一行。
问题是大多数编辑器和IDE有不同的解释 – < EOL>是一个行分隔符,并且在逻辑上,默认不添加< EOL>在新文件的最后一行的末尾,并且当他们遇到< EOL>时,在真实的最后一行之后添加多余的“新行”。
简而言之,Vim不添加“新行”:其他编辑将其“换行”解释为(“错误”)为“新行”。
但你可以通过执行以下操作来解决这个问题:在你写文件之前,执行:set binary noeol如果你想要保持“< EOL> -free”。
然而,:’二进制’有很多关于危险的说:set二进制,所以我会说,把它“开”所有的时间听起来像一个坏主意。
为了说明不同的行为,这是当你尝试连接两个文件与< EOL> ;:
$ cat file1 $ cat file2 $ cat file1 file2 lorem ipsum Le tramway jaune lorem ipsum dolor sit avance lentement dolor sit amet dans le amet Le tramway jaune avance lentement dans le
这是当您尝试连接两个文件而不< EOL> ;:
$ cat file1 $ cat file2 $ cat file1 file2 lorem ipsum Le tramway jaune lorem ipsum dolor sit avance lentement dolor sit amet dans le ametLe tramway jaune avance lentement dans le
第一个行为是以某种方式预期的行为和为什么Vim和许多(如果不是大多数)UNIX-y程序默认为终止符解释和添加< EOL>字符在最后一行的结尾。
下面的图片显示了一个简单的文件,其中< EOL>使用nano创建(与Vim相同),并在Eclipse,TextMate,Sublime Text,Vim,XCode和TextEdit中打开。
(编辑)这个文件中没有第4行,并且正确显示文件的唯一编辑器是Vim。行号列的唯一目的是提供有关缓冲区的信息。显示4行,其中只有3是一个严重的错误。 (结束)