vim имеет режим "eol" (для конца строки), чтобы указать, что делать, если в последней строке файла отсутствует символ новой строки . Вы можете увидеть все настройки режима в vim (или любой программе, например vi)
:set all
POSIX VI не имеет функций для этого: файлы либо нулевой длиной, или имеет косой символ новой строки. Это потому, что POSIX vi имеет дело только с текстовыми файлами, которые по определению являются строками, заканчивающимися символами новой строки. При быстрой проверке nvi и elvis не имеют режимов для этого. В своем комментарии я забыл подробности vim: в отличие от vile, ": set list" не всегда показывает отсутствующий символ новой строки. Вот что я вижу в vim:
ssss$
test$
~
~
пока в подлости
ssss^J
test
~
~
Для любого редактора вы можете прочитать файл в, изменить режим , например,
:set noeol
и запишите файл, чтобы получить новую строку в обновленном файле. Вместо того, чтобы показывать его напрямую, вы можете изменить строку состояния vim, чтобы показать эту информацию. По умолчанию он этого не делает, но некоторые упаковщики настроили это, например,
"foo" [noeol] 2L, 9C 1,1 All
Один из комментариев предлагает использовать «?» Модификатор в set
команде, например,
:set eol?
который может показать что-то вроде этого:
noendofline 2,1 All
но в режиме вставки это заменяется
-- INSERT -- 2,1 All
таким образом, строка состояния кажется правильным местом для сохранения этой информации.
Функции были там некоторое время:
Эта eol
функция впервые появилась в vim 2.4 (июль 1994 года), согласно комментарию в ее исходном коде.
мерзкий newline
режим появился в июле 1993 года .
( nvi, elvis, vim и vile все обрабатывают двоичные файлы в дополнение к текстовым файлам POSIX vi ).