¿Puedes obligar a Vim a mostrar una línea en blanco al final de un archivo?
-
05-07-2019 - |
Pregunta
Cuando abro un archivo de texto en el Bloc de notas, muestra una línea en blanco si hay un retorno de carro al final de la última línea que contiene texto. Sin embargo, en Vim no muestra esta línea en blanco. Otra cosa que he notado es que el editor de Vim agrega un retorno de carro a la última línea de forma predeterminada (aunque no lo muestra). Puedo decirlo, porque si abro un archivo en el Bloc de notas que se creó en Vim, muestra una línea en blanco al final del archivo.
De todos modos, puedo vivir con estas dos diferencias, pero me pregunto si hay una opción en Vim que te permita alternar este comportamiento.
Gracias
PS - GVim 7.2
[Updatefont>
¿Tendría sentido tener fallas en el servidor?
[Actualización 2]
Reformularé esto ... Necesito saber cuándo hay un retorno de carro al final del archivo de una sola línea (el Bloc de notas muestra una línea adicional sin texto, con Vim que no puedo decir). Esto se debe a un programa Progress que lee un archivo de texto (espera una sola línea, pero con un retorno de carro) y analiza el texto para algún propósito. Si no hay retorno de carro, Progress trata la línea como si fuera nula.
[Solución alternativa] Una forma que he encontrado para asegurarme de que haya un retorno de carro (pero asegúrese de no agregar un segundo) es asegurarme de tener activada la opción de escritura de fin de línea (: set eol) y luego simplemente hacer un escribir / guardar. Esto pondrá un final de línea en el archivo si aún no está allí. De lo contrario, no agrega uno nuevo.
Solución
:help endofline
explica cómo puede evitar que vim agregue una nueva línea adicional.
Otros consejos
Parece que vim trata a la nueva línea como un terminador de línea, mientras que el bloc de notas la trata como un separador de línea: de http://en.wikipedia.org/wiki/Newline
También hay cierta confusión si las nuevas líneas terminan o separan líneas. Si una nueva línea se considera un separador, no habrá nueva línea después de la última línea de un archivo. los la convención general en la mayoría de los sistemas es para agregar una nueva línea incluso después de la última línea, es decir, para tratar la nueva línea como una línea terminador Algunos programas tienen problemas para procesar la última línea de un archivo si no se ha terminado la nueva línea. Por el contrario, programas que esperan nueva línea para ser utilizado como separador interpretar una nueva línea final como comenzando Una nueva línea (vacía). Esto puede resultar en se informa un recuento de líneas diferente para el archivo, pero es lo contrario generalmente inofensivo.
Si recuerdo correctamente, en sistemas unix-y un archivo de texto debe terminarse con una nueva línea.
Una opción útil de Vim es
set list
Le ayudará a ver todos los caracteres de final de línea (y posiblemente otros caracteres generalmente invisibles). Así podrá ver esta última línea final directamente en Vim y no solo en el Bloc de notas.
Cuando abre el archivo en VIM, la línea de estado debe decir [noeol]
después del nombre del archivo. Entonces esa es una indicación. Como Manni , puede cambiar esto desactivando la opción endofline
y binario
en. Puede establecer esto como su configuración predeterminada en un archivo .vimrc
.