"está causando errores en mis scripts PHP" -> ¿Esto es extraño? PHP debería funcionar bien con una nueva línea final. De hecho, esto es bastante estándar. ¿Quizás tenga una línea en blanco después de la ?>cual PHP envía al navegador (causando el error "encabezados ya enviados")? No necesita un seguimiento ?>, y generalmente se recomienda dejarlo fuera para evitar exactamente este problema.
Martin Tournoij
Supongo que eso es engañoso. Nuestros scripts interpretan cualquier salida como un error.
Esta no es una línea vacía completa, solo una nueva línea final al final de la última línea. Las herramientas de Unix (como la herencia de Vim) insisten en agregar eso, mientras que el sistema operativo Windows no es tan estricto. Puede leer más sobre eso en ¿Por qué los archivos deben terminar con una nueva línea?
?>
cual PHP envía al navegador (causando el error "encabezados ya enviados")? No necesita un seguimiento?>
, y generalmente se recomienda dejarlo fuera para evitar exactamente este problema.Respuestas:
Esta no es una línea vacía completa, solo una nueva línea final al final de la última línea. Las herramientas de Unix (como la herencia de Vim) insisten en agregar eso, mientras que el sistema operativo Windows no es tan estricto. Puede leer más sobre eso en ¿Por qué los archivos deben terminar con una nueva línea?
Desafortunadamente, es bastante complejo evitar que Vim escriba la nueva línea final. Mi complemento PreserveNoEOL puede hacer esto. Para una discusión de enfoques, vea también VIM Deshabilitar nueva línea automática al final del archivo .
fuente
En las nuevas versiones de Vim finalmente hay una opción para esto
(ver página wiki: http://vim.wikia.com/wiki/Do_not_auto-add_a_newline_at_EOF )
En su
~/.vimrc
agregar esta línea:Relanzar
vim
, ahora no debería agregar la nueva línea al final del archivo.(funciona solo desde la versión vim 7.4.785)
fuente
¿Has intentado abrir el archivo en modo binario? Tratar
vim -b file_name
. No debe agregar la nueva línea al final del archivo.fuente
xxd
para verificar, pero aún agrega un salto de línea (0a
) incluso en modo binario.