Можете ли вы заставить Vim показать пустую строку в конце файла?

когда я открываю текстовый файл в блокноте, он показывает пустую строку, если есть возврат каретки в конце последней строки, содержащие текст. Однако в Vim он не показывает эту пустую строку. Еще одна вещь, которую я заметил, - это то, что редактор Vim добавляет возврат каретки к последней строке по умолчанию (хотя он ее не показывает). Я могу сказать, потому что если я открываю файл в блокноте, который был создан в Vim, он показывает пустую строку в конец файла.

в любом случае, я могу жить с этим два различия, но мне интересно, есть ли опция в Vim, которая позволяет переключать это поведение.

спасибо

ПС - GVim выступает 7.2

[обновление]

имеет ли смысл вместо этого быть на ошибке сервера?

[обновление 2]

я перефразирую это... Мне нужно знать, когда есть возврат каретки в конце однострочного файла (Блокнот показывает дополнительную строку без текста, с Vim я не могу рассказывать.) Это связано с программой прогресса, которая читает текстовый файл (ожидает одну строку, но с возвращением каретки) и анализирует текст для какой-то цели. Если возврат каретки отсутствует, Progress обрабатывает строку как нулевую.

[Временное Решение] Один из способов, который я нашел, чтобы убедиться, что есть возврат каретки (но убедитесь, что я не добавляю второй), - это убедиться, что у меня включен параметр записи конца строки (:set eol), а затем просто выполните запись/сохранение. Эта воля поместите конец строки в файл, если он еще не там. В противном случае, он не добавляет новую.

4 ответов


:help endofline

объясняет, как вы можете остановить vim от добавления дополнительной новой строки.


кажется, что vim рассматривает newline как Терминатор строки, а notepad - как разделитель строк: от http://en.wikipedia.org/wiki/Newline

существует также некоторая путаница, новые строки завершают или разделяют строки. Если новая строка считается сепаратор, не будет никакой новой строки после последней строки файла. Этот общая конвенция по большинству систем добавить новую строку даже после последней строка, т. е. рассматривать новую строку как линия терминатор. Некоторые программы имеют проблемы с обработкой последней строки a файл, если он не завершен. И наоборот, программы, которые ожидают newline будет использоваться в качестве разделителя интерпретировать окончательную новую строку как начало новая (пустая) строка. Это может привести к сообщается о другом количестве строк для файла, но в противном случае в целом безвреден.

Если я правильно помню, в системах unix-y текстовый файл должен быть завершен новой строкой.


один полезный параметр Vim -

set list

Это поможет вам увидеть все символы конца строк (и, возможно, других обычно невидимые символы). Так что вы сможете просматривать эту последнюю endofline прямо в Vim и не только в блокноте.


когда вы открываете файл в VIM, строка состояния должна сказать [noeol] после имени файла. Это один из признаков. As Манни сказал, Вы можете изменить это путем установки как и далее. Вы можете установить настройки по умолчанию в .