Давайте создадим два файла:
$ echo -n 'test' > test.txt
$ wc test.txt
0 1 4 test.txt
Файл test.txt
не содержит завершающий перевод строки.
$ echo 'test' > test_n.txt
$ wc test_n.txt
1 1 5 test_n.txt
Файл test_n.txt
содержит завершающий перевод строки.
Эти два файла, очевидно , разные, но предварительный просмотр обоих файлов в vim
в режиме вставки не содержат каких - либо различий:
$ vim test.txt
$ vim test_n.txt
Почему нет разницы (новая строка или какое-то особое различие)?
А что я могу сделать , чтобы добавить или удалить такой дополнительный символ в vim
в режиме вставки ?
Ответы:
vim имеет режим "eol" (для конца строки), чтобы указать, что делать, если в последней строке файла отсутствует символ новой строки . Вы можете увидеть все настройки режима в vim (или любой программе, например vi)
POSIX VI не имеет функций для этого: файлы либо нулевой длиной, или имеет косой символ новой строки. Это потому, что POSIX vi имеет дело только с текстовыми файлами, которые по определению являются строками, заканчивающимися символами новой строки. При быстрой проверке nvi и elvis не имеют режимов для этого. В своем комментарии я забыл подробности vim: в отличие от vile, ": set list" не всегда показывает отсутствующий символ новой строки. Вот что я вижу в vim:
пока в подлости
Для любого редактора вы можете прочитать файл в, изменить режим , например,
и запишите файл, чтобы получить новую строку в обновленном файле. Вместо того, чтобы показывать его напрямую, вы можете изменить строку состояния vim, чтобы показать эту информацию. По умолчанию он этого не делает, но некоторые упаковщики настроили это, например,
Один из комментариев предлагает использовать «?» Модификатор в
set
команде, например,который может показать что-то вроде этого:
но в режиме вставки это заменяется
таким образом, строка состояния кажется правильным местом для сохранения этой информации.
Функции были там некоторое время:
Эта
eol
функция впервые появилась в vim 2.4 (июль 1994 года), согласно комментарию в ее исходном коде.мерзкий
newline
режим появился в июле 1993 года .( nvi, elvis, vim и vile все обрабатывают двоичные файлы в дополнение к текстовым файлам POSIX vi ).
источник
:set eol?
можете увидеть, включен или выключен eol, поэтому вам не нужно просматривать весь вывод:set all
.