«это вызывает ошибки в моих PHP-скриптах» -> Это странно? PHP должен хорошо работать с завершающим переводом строки. На самом деле, это в значительной степени стандартно. Возможно, у вас есть пустая строка после того, ?>какой PHP выводит в браузер (вызывая ошибку «заголовки уже отправлены»)? Вам не нужен трейлинг ?>, и обычно рекомендуется его исключить, чтобы точно решить эту проблему.
Мартин Турной
Я думаю, это вводит в заблуждение. Наши скрипты интерпретируют любой вывод как ошибку.
Это не полная пустая строка, а последняя строка в конце последней строки. Инструменты Unix (как и наследие Vim) настаивают на добавлении этого, в то время как операционная система Windows не такая уж строгая. Вы можете прочитать больше об этом в Почему файлы должны заканчиваться символом новой строки?
?>
какой PHP выводит в браузер (вызывая ошибку «заголовки уже отправлены»)? Вам не нужен трейлинг?>
, и обычно рекомендуется его исключить, чтобы точно решить эту проблему.Ответы:
Это не полная пустая строка, а последняя строка в конце последней строки. Инструменты Unix (как и наследие Vim) настаивают на добавлении этого, в то время как операционная система Windows не такая уж строгая. Вы можете прочитать больше об этом в Почему файлы должны заканчиваться символом новой строки?
К сожалению, довольно сложно предотвратить Vim от написания финального перевода строки. Мой плагин PreserveNoEOL может сделать это. Для обсуждения подходов также см. VIM Отключить автоматический перевод строки в конце файла .
источник
В новых версиях Vim наконец-то появилась возможность
(см. вики-страницу: http://vim.wikia.com/wiki/Do_not_auto-add_a_newline_at_EOF )
В вашей
~/.vimrc
добавить эту строку:Перезапустите
vim
, теперь он не должен добавлять символ новой строки в конец файла.(работает только с версии vim 7.4.785)
источник
Вы пытались открыть файл в двоичном режиме? Попробуй
vim -b file_name
. Не следует добавлять новую строку в конец файла.источник
xxd
проверки, но он все еще добавляет linefeed (0a
) даже в двоичном режиме.