vim编辑会话底部的noeol指示符是什么意思?


Answers:


35

Unix编辑人员喜欢,vi并且vim总是将换行符(\n)放在每行的末尾,尤其是最后一行。如果eol最后一行没有行尾(),则表示情况不正常,并且文件肯定不是由标准UNIX编辑器创建的。

通过编辑器中的[noeol]标志将这种异常情况通知您vim。其他编辑器可能也有类似的标志和通知。


在中emacs,将光标移动到文件末尾(最后一行,最后一个字符之后)并执行kill-line,实际上实际上是删除了eol
Yeow_Meng 2016年

1
而且某些服务会发出抱怨和抱怨,并且由于在EOF上没有EOL而不会由于错误而启动
ivanivan

20

文件中的最后一行没有换行符(\ n)


2
@Bon Ami:某些程序在读取文本文件时,需要\n在行的末尾将其视为完整的行(带有尾随的换行符char)。下面的示例显示了一个文件,该文件可能看起来像一个完整的在文本编辑器中随意一瞥线,但wc确实不是 condider它作为一个行:printf "x">"file-no-newline"; wc -l <"file-no-newline"- Outpute是: 0 ..在noeol只是一种视觉辅助,让你知道状态..
Peter.O

2

这意味着您正在查看文件的操作系统无法检测文件的行尾(如果文件根本没有)。有时在跨操作系统移动文件时会发生这种情况(即,从MS到* nix os)

在vim中,如果文件具有Windows回车符“ ^M",则可以使用以下命令对其进行修复:在vim中,请执行以下操作:

:%s/^M/\r/g

含义:

%      => select the whole buffer
s      => Search
/^M/   => find Windows Carrage return.
/\r/   =>  Replae it with *nix carrage return

注意:在Mac OX中, ^M is ctl+v && ctrl+m


-4

它的“ NO EOL”-没有行尾指示器。如果最终打开一个非常大的文件(> 1GB),将非常有帮助。Vim尝试将所有内容拉成一行。这个指示器可以帮助我快速关闭文件,然后再破坏操作系统。


2
我很确定这不是这个标志的意思……
Fouric 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.