vim tiene un modo "eol" (para fin de línea) para indicar qué hacer si la última línea del archivo carece de un carácter de nueva línea . Puede ver todas las configuraciones de modo en vim (o cualquier programa como vi) por
:set all
POSIX vi no tiene una característica para esto: los archivos son de longitud cero o tienen una nueva línea final. Esto se debe a que POSIX vi solo trata con archivos de texto, que por definición son líneas que terminan con líneas nuevas. En una comprobación rápida, nvi y elvis no tienen modos para esto. En mi comentario, me había olvidado de un detalle de vim: a diferencia de vile, una ": set list" no muestra fácilmente la nueva línea que falta. Esto es lo que veo en vim:
ssss$
test$
~
~
mientras que en vil:
ssss^J
test
~
~
Para cualquiera de los editores, puede leer el archivo, cambiar el modo , por ejemplo,
:set noeol
y escriba el archivo para obtener una nueva línea en el archivo actualizado. En lugar de mostrarlo directamente, puede modificar la línea de estado de vim para mostrar esta información. Por defecto, no parece hacer esto, pero algunos empaquetadores lo han personalizado, por ejemplo,
"foo" [noeol] 2L, 9C 1,1 All
Uno de los comentarios sugiere usar el "?" modificador del set
comando, por ejemplo,
:set eol?
que podría mostrar algo como esto:
noendofline 2,1 All
pero en modo de inserción, eso se reemplaza por
-- INSERT -- 2,1 All
entonces la línea de estado parece el lugar correcto para mantener esta información.
Las características han estado allí por un tiempo:
La eol
función apareció por primera vez en vim 2.4 (julio de 1994), según un comentario en su código fuente.
El newline
modo de vile apareció en julio de 1993 .
( nvi, elvis, vim y vile manejan todos los archivos binarios además de los archivos de texto de POSIX vi ).