37

I opened a file using vim on Ubuntu, and the following is displayed at the bottom of the screen:

"file.py" [noeol] 553L, 16620C

What does noeol indicate?

migrated from serverfault.com Feb 16 '12 at 3:15

This question came from our site for system and network administrators.

35

Unix editors like vi and vim will always put newlines (\n) at the end of every line - especially including the last line. If there is no end-of-line (eol) on the last line, then it is an unusual situation and the file most certainly was not created by a standard UNIX editor.

This unusual situation is brought to your notice by the [noeol] flag in the vim editor; other editors probably have similar flags and notifications.

  • In emacs, moving the cursor to the end of the file (last line, after last character) and execute kill-line, you actually end up deleting the eol. – Yeow_Meng Jun 1 '16 at 14:35
  • 1
    And some services whine and complain and won't start due to errors because of no EOL at EOF – ivanivan Jun 28 '18 at 21:15
20

That the last line in the file doesn't have a newline (\n)

  • 2
    @Bon Ami: Some programs, when reading your text file, need the \n at the end of line to consider it as a completed line (with a trailing newline char). The following example shows a file which may look like a complete line at a casual glance in a text editor, but wc does not condider it as a line: printf "x">"file-no-newline"; wc -l <"file-no-newline" -- Outpute is: 0 .. the noeol is just a visual aid to let you know the status.. – Peter.O Feb 16 '12 at 4:50
2

This means the OS where you viewing the file is not able to detect the line-ending of the file (if the file has any at all). Sometimes this happenes when you move file(s) across OSes(i,e.. from MS to *nix os)

In vim, if the file has windows carriage return "^M", you can fix it with the following command: in vim do:

:%s/^M/\r/g

meaning:

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

Note: in Mac OX, ^M is ctl+v && ctrl+m

-4

Its 'NO EOL' - no end of line indicator. Very helpful if you end up opening a very large file (>1GB). Vim tries to pull all that in 1 line. This indicator helps me quickly close the file before it screws up my OS.

  • 2
    I'm pretty sure that that's not what this flag means... – fouric May 2 '15 at 4:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.