the bottom of the Vim editor [Noeol], [dos] meaning
Sometimes using Vim to open a file will be found at the bottom of the window [Noeol], [DOS] hint information:
|
"Hello-dos.txt" [Noeol][dos] 2L, 10C 1,1 all |
What does the two symbols mean?
Intuitively, ' noeol ' is ' no end-of-line ', which means ' no end of line ', and a text editor (such as Vim) under Linux adds a line break at the end of each line, including the last line. For example, we create a new text file named ' Hello-unix.txt ' under Debian, which reads as follows:
Then, you can see these line breaks using the cat-a hello-unix.txt command:
|
ts@ts:~/www/document $ cat-a hello-unix.txt hello$ unix$ ts@ts:~/www/document $ |
You can clearly see the ' $ ' character at the end of each line, which is "end of line" under Linux.
Below, we will create a notepad file named ' Hello-dos.txt ' under Windows, which reads as follows:
View line feed information for this file under Debian:
|
ts@ts:~/www/document $ cat-a hello-dos.txt hello^m$ dosts@ts:~/www/document $ |
Also two lines, one word per line, and two distinct differences between Windows and Linux for line breaks:
The line break under Windows is more than a ^m under Linux;
There are no line breaks at the end of the last line;
These two differences are also the reasons why [DOS], [noeol] two Flag information appears. The line breaks for each line of the text file in Windows are "carriage return + newline" (crlf,^m$), while Linux is only "line feed" (LF, $). Vim found that the text contains ^m$ newline character to determine the file created under Windows, with [DOS] Flag hint; vim does not find line breaks on the last line, determines that the file is not created/edited under Linux, and prompts the user with [Noeol] Flag.
How to eliminate [noeol] Flag information.
Simply save the file in Debian, or the Hello-dos.txt file above, open it without making any changes directly: Wq save exit, and then view line break:
|
ts@ts:~/www/document $ cat-a hello-dos.txt hello^m$ dos^m$ ts@ts:~/www/document $ |
The newline character has been appended up, note here that the Append is the line break (carriage return + newline) ^m$ under Windows instead of the line break (newline) $ in Linux, because Vim has found that this file was created under Windows ([DOS] Flag), although it is in Linu Under X Edit, Vim adds line breaks according to the line break rules under the operating system where the file was created.
How to Eliminate [dos] Flag information.
There are two simple ways to do this:
Linux provides two commands for converting Windows and Unix files: Dos2unix and Unix2dos;
Use Touch template.txt under Debian to create a template in which any text file created under Windows is based on this template;
Resources
Http://unix.stackexchange.com/questions/31807/what-does-the-noeol-indicator-at-the-bottom-of-a-vim-edit-session-mean
Http://linux.vbird.org/linux_basic/0310vi.php#tips_dos