vim編集セッションの下部にあるnoeolインジケーターは何を意味しますか?


回答:


35

Unixのエディタが好きvivim常に(改行を置く\nすべての行の末尾) -特に最後の行を含みます。eol最後の行に行末()がない場合は異常な状況であり、ファイルは標準のUNIXエディターによって作成されたものではないことはほぼ間違いありません。

この異常な状況は[noeol]vimエディターのフラグによって通知されます。他の編集者もおそらく同様のフラグと通知を持っています。


ではemacs、カーソルをファイルの最後(最後の行の後、最後の文字の後)に移動して実行するとkill-line、実際にeol
Yeow_Meng

1
また、一部のサービスは泣き言を言って不満を言い、EOFにEOLがないためエラーのために開始されません
-ivanivan

20

ファイルの最後の行に改行がないこと(\ n)


2
@Bon Ami:一部のプログラムでは、テキストファイルを読み取るとき\nに、行末でそれを完全な行(末尾の改行文字を含む)と見なす必要があります。次の例が示すように見えることがあり、ファイルの完全なテキストエディタでカジュアル一目でラインが、wcないラインとしてcondider:printf "x">"file-no-newline"; wc -l <"file-no-newline"- Outputeは次のとおりです 0 。.. noeolは、あなたが知っているように、単に視覚的な補助でありますステータス
。– Peter.O

2

これは、ファイルを表示しているOSがファイルの行末を検出できないことを意味します(ファイルに何かがある場合)。OSをまたいでファイルを移動するときにこれが発生することがあります(つまり、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はそれらすべてを1行で取得しようとします。このインジケータは、OSが破損する前にファイルをすばやく閉じるのに役立ちます。


2
私はそれがこのフラグの意味ではないと確信しています
...-fouric
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.