.vimrc
,因为它无能为力! 如果我以二进制模式编辑文件,请执行该操作。 (
vim -b file
而不是
vim file
)为什么?
在任何我编辑的每个文件中都不添加新线的eyanway preconpers
.vimrc
此外,如果我开始以二进制模式编辑每个文件,我还会遇到什么样的问题?到目前为止,我还没有看到任何区别。
文件中的最后一行的末尾是“ newline”字符,该字符不应与“新行”混淆。
“ newline”字符
或更准确地“线的末端”字符(
<EOL>
)的意思是“在此之后发生的任何内容都必须被视为在另一行上”。通过这种解释,<EOL>
<EOL>
。
问题是,大多数编辑器和IDE都有不同的解释 - <EOL>
是行separator
-逻辑上,在新文件的最后一行的末尾添加
<EOL>
,当他们遇到<EOL>
时,在真实的最后一行之后添加多余的“新线”。 简而言之,vim不会添加“新行”:其他编辑者(错误地)将其“ newline”解释为“新行”。但是,您可以通过以下内容解决这个问题:在编写文件之前,请
:set binary noeol
如果您希望它保持“无”。
,但是,关于危险的危险有很多话要说,所以我会说,一直在“打开”听起来像是一个坏主意。为了说明不同的行为,这是您尝试将两个文件与
<EOL>
:相连时发生的情况。
:h 'binary'
当您尝试在没有:set binary
的情况下加入两个文件时,就会发生这种情况
<EOL>
第一个行为是预期的行为。 VIM和许多(如果不是大多数)Unix-y程序默认为
端
解释以及在最后一行末尾添加
$ 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
字符的原因是因为Posix定义了这一点,并且VIM符合POSIX。
下图显示了一个简单的文件,该文件使用
<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相同),并在Eclipse,Textmate,Sublime Text,Vim,Xcode和textedit.中打开。
(编辑)该文件中没有第4行,并且束的唯一正确显示文件的编辑器是VIM。行号列的唯一目的是提供有关缓冲区的信息。显示只有3行的4行是一个严重的错误。 (Endedit)
此图显示了另一个不带有崇高文本创建的简单文件,并在同一编辑/ides中打开。
从7.4.785版本VIM具有<EOL>
设置。 您可以避免
<EOL>
(具有一些副作用),然后简单地设置
nano
vimdoc的符合vimdoc
<EOL>
除非开启fixendofline
binary
.vimrc中的一个简单偏好是在我编辑的每个文件中不添加新线
您可以使用我的Preservenoeol插件。 在这个简单的设置中,您就完成了;另外,您也可以影响每个缓冲区:
set noendofline
set nofixendofline