Я открыл файл с помощью vim
Ubuntu, и в нижней части экрана отображается следующее:
"file.py" [noeol] 553L, 16620C
Что noeol
означает?
Я открыл файл с помощью vim
Ubuntu, и в нижней части экрана отображается следующее:
"file.py" [noeol] 553L, 16620C
Что noeol
означает?
Ответы:
Редакторы Unix, такие как vi
и vim
всегда, будут помещать newlines ( \n
) в конце каждой строки, особенно включая последнюю. Если eol
в последней строке нет end-of-line ( ), это необычная ситуация, и файл наверняка не был создан стандартным редактором UNIX.
Эта необычная ситуация доведена до вашего сведения [noeol]
флагом в vim
редакторе; другие редакторы, вероятно, имеют похожие флаги и уведомления.
emacs
перемещении курсора в конец файла (последняя строка после последнего символа) и выполнении kill-line
, вы фактически удаляете eol
.
Что в последней строке файла нет новой строки (\ n)
\n
в конце строки, чтобы рассматривать его как завершенную строку (с завершающим символом новой строки). В следующем примере показан файл , который может выглядеть как полный линии на случайный взгляд в текстовом редакторе, но wc
делает не condider это как линия: printf "x">"file-no-newline"; wc -l <"file-no-newline"
- Outpute есть: 0
.. noeol просто визуальная помощь , чтобы вы знаете, статус ..
Это означает, что операционная система, в которой вы просматриваете файл, не может определить окончание строки файла (если он вообще есть). Иногда это происходит, когда вы перемещаете файл (ы) между операционными системами (например, из MS в * nix os)
В vim, если файл имеет возврат каретки Windows " ^M"
, вы можете исправить это с помощью следующей команды: в vim do:
:%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
Его «NO EOL» - нет конца строки индикатора. Очень полезно, если вы в конечном итоге откроете очень большой файл (> 1 ГБ). Vim пытается вытащить все это в 1 строку. Этот индикатор помогает мне быстро закрыть файл, прежде чем он испортит мою ОС.