Otworzyłem plik vim
w systemie Ubuntu, a na dole ekranu wyświetla się:
"file.py" [noeol] 553L, 16620C
Co to noeol
oznacza?
Otworzyłem plik vim
w systemie Ubuntu, a na dole ekranu wyświetla się:
"file.py" [noeol] 553L, 16620C
Co to noeol
oznacza?
Odpowiedzi:
Edytory uniksowe lubią vi
i vim
zawsze umieszczają znaki nowej linii ( \n
) na końcu każdej linii - szczególnie włączając ostatnią linię. Jeśli eol
w ostatnim wierszu nie ma końca linii ( ), jest to niezwykła sytuacja, a plik z pewnością nie został utworzony przez standardowy edytor UNIX.
Ta niezwykła sytuacja została zauważona przez [noeol]
flagę w vim
edytorze; inni redaktorzy prawdopodobnie mają podobne flagi i powiadomienia.
emacs
przeniesieniu kursora na koniec pliku (ostatni wiersz, po ostatnim znaku) i wykonaniu kill-line
, w rzeczywistości usuwasz eol
.
Że ostatni wiersz w pliku nie ma nowej linii (\ n)
\n
znaku końca linii, aby uznać go za wiersz zakończony (z końcowym znakiem nowego wiersza). Poniższy przykład pokazuje plik, który może wyglądać jak kompletna linia na pierwszy rzut oka w edytorze tekstu, ale wc
nie uwzględnia go jako linii: printf "x">"file-no-newline"; wc -l <"file-no-newline"
- Outpute to: 0
.. noeol jest tylko wizualną pomocą, aby poinformować cię o status ..
Oznacza to, że system operacyjny, w którym przeglądasz plik, nie jest w stanie wykryć końca linii pliku (jeśli plik w ogóle go ma). Czasami dzieje się tak, gdy przenosisz plik (i) w różnych systemach operacyjnych (tj. Z MS do * nix os)
W vimie, jeśli plik ma znak powrotu karetki Windows ” ^M"
, możesz to naprawić za pomocą następującego polecenia: w vim do:
:%s/^M/\r/g
znaczenie:
% => select the whole buffer
s => Search
/^M/ => find Windows Carrage return.
/\r/ => Replae it with *nix carrage return
Uwaga: w Mac OX ^M is ctl+v && ctrl+m
Jego „NO EOL” - wskaźnik końca linii . Bardzo pomocne, jeśli otworzysz bardzo duży plik (> 1 GB). Vim próbuje wyciągnąć to wszystko w 1 linii. Ten wskaźnik pomaga mi szybko zamknąć plik, zanim zepsuje mój system operacyjny.