I opened a file using
vim on Ubuntu, and the following is displayed at the bottom of the screen:
"file.py" [noeol] 553L, 16620C
Unix editors like
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.
That the last line in the file doesn't have a newline (\n)
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:
% => 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
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.