2009-07-29 11 views
11

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 el texto. Sin embargo, en Vim no muestra esta línea en blanco. Otra cosa que noté es que el editor de Vim agrega un retorno de carro a la última línea por defecto (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.¿Puedes forzar a Vim a mostrar una línea en blanco al final de un archivo?

De todos modos, puedo vivir con estas dos diferencias, pero me pregunto si hay una opción en Vim que le permita alternar este comportamiento.

Gracias

PS - 7,2 GVim

[Actualización]

¿Esto tiene sentido para estar en el servidor falla en su lugar?

[Actualización 2]

Voy a reformular esto ... necesito saber cuando hay un retorno de carro al final del archivo de una sola línea (Bloc de notas muestra una línea adicional sin texto, con Vim 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 Solución] Una forma que he encontrado para asegurar que haya un retorno de carro (pero asegúrese de que no añado un segundo) es asegurarse de que tengo la opción de escritura final de la línea se volvieron on (: set eol) y luego simplemente escribe/guarda. Esto pondrá un final de línea en el archivo si aún no está allí. De lo contrario, no agrega uno nuevo.

+0

No tendría ningún sentido en la falla del servidor. Tal vez en superusuario. Pero parece que el consenso es tolerar las cuestiones vim aquí porque vim se considera un IDE. – innaM

+0

Ok gracias ... Me pregunto si SuperUser aún no tiene versión beta privada ... supongo que puedo ir a comprobar –

+0

Todavía está en versión beta, pero no en privado, sino en versión beta semiprivada: http: //blog.stackoverflow. com/2009/07/superusuario-semi-privado-beta-comienza/ – innaM

Respuesta

6
:help endofline 

explica cómo podría evitar que vim agregue una nueva línea adicional.

+3

Resuelve un problema ... es el otro (no muestra que haya una línea en blanco) que es el problema más grande para mí, aunque = \ Tiene que ver con la necesidad de garantizar que haya un retorno de carro al final de una línea (y solo uno). –

+1

Estoy de acuerdo, quiero la línea allí, solo quiero poder ver que está allí. –

2

Una opción útil es Vim

set list 

Se le ayudará a ver todos los caracteres de fin de líneas (y posiblemente otros caracteres generalmente invisibles). Por lo tanto, podrá ver este último endofline directamente en Vim y no solo en el Bloc de notas.

+1

Esto parece mostrar siempre un caracter $. Incluso si no hay una línea en blanco después. –

+0

No hay línea en blanco después. vim considera una línea algo que tiene una nueva línea al final. La línea en blanco de la que está hablando no tiene una nueva línea, por lo que vim concluye que no hay nada que mostrar. – innaM

+0

Ver la actualización 2 comentarios ... reformuló la pregunta para ser más preciso. –

1

Cuando abre el archivo en VIM, la línea de estado debe indicar [noeol] después del nombre del archivo. Entonces esa es una indicación. Como dijo Manni, puede cambiar esto configurando la opción endofline y la opción binary activada. Puede configurar esto como su configuración predeterminada en un archivo .vimrc.

3

Parece que vim trata de nueva línea como un terminador de línea, mientras que el bloc de notas lo trata como un separador de línea: http://en.wikipedia.org/wiki/Newline

También hay cierta confusión si nuevas líneas terminar o líneas separadas. Si una nueva línea se considera un separador , no habrá línea nueva después de la última línea de un archivo. 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 línea nueva como una línea terminador. Algunos programas tienen problemas procesando la última línea de un archivo si no se termina la línea nueva. Por el contrario, los programas que esperan nueva línea para ser utilizado como un separador interpretar una nueva línea final como comenzando una nueva línea (vacía). Esto puede dar como resultado un recuento de línea diferente que se informa para el archivo, pero de lo contrario generalmente inofensivo.

Si recuerdo correctamente, en los sistemas Unix-y un archivo de texto debe terminar con una nueva línea.

Cuestiones relacionadas