Подтвердить что ты не робот

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

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

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

Спасибо

PS - GVim 7.2

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

Будет ли иметь смысл быть на Ошибка сервера вместо?

[Обновить 2]

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

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

4b9b3361

Ответ 1

:help endofline

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

Ответ 2

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

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

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

Ответ 3

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

set list

Это поможет вам увидеть все символы конца строки (и, возможно, другие вообще невидимые символы). Таким образом, вы сможете просмотреть последний конец строки непосредственно в Vim, а не только в "Блокноте".

Ответ 4

Когда вы открываете файл в VIM, строка состояния должна указывать [noeol] после имени файла. Так что одно указание. Как сказал Manni, вы можете изменить это, установив опцию endofline off и binary. Вы можете установить это как свои настройки по умолчанию в файле .vimrc.