Vamos a crear dos archivos:
$ echo -n 'test' > test.txt
$ wc test.txt
0 1 4 test.txt
El archivo test.txt
no contiene la nueva línea final.
$ echo 'test' > test_n.txt
$ wc test_n.txt
1 1 5 test_n.txt
El archivo test_n.txt
contiene la nueva línea final.
Los dos archivos anteriores son obviamente diferentes, pero la vista previa de archivos en ambos vim
en el modo de inserción no contiene ningún diferencias:
$ vim test.txt
$ vim test_n.txt
¿Por qué no hay diferencia (nueva línea o alguna distinción especial)?
¿Y qué puedo hacer para agregar o eliminar dicho carácter adicional vim
en el modo de inserción ?
Respuestas:
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
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:
mientras que en vil:
Para cualquiera de los editores, puede leer el archivo, cambiar el modo , por ejemplo,
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,
Uno de los comentarios sugiere usar el "?" modificador del
set
comando, por ejemplo,que podría mostrar algo como esto:
pero en modo de inserción, eso se reemplaza por
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 ).
fuente
:set eol?
para ver si eol está activado o desactivado, por lo que no tiene que mirar a través de toda la salida de:set all
.