GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué Vim está agregando una nueva línea? ¿Es esto una convención?

La convención para los archivos de texto de Unix es que cada línea termina con una nueva línea y que las nuevas líneas son terminadores de línea, no separadores de línea.

Cuando Vim guarda un búfer como un archivo, termina cada línea con la secuencia de fin de línea para ese formato de archivo, que para Unix es una nueva línea. Ver

:help 'fileformat'

Si está utilizando herramientas de procesamiento de texto de Unix, es mejor ceñirse a esta convención. Sin embargo, si tiene alguna necesidad de no poner una nueva línea al final de la última línea de un archivo, puede hacerlo. Vim considera que dichos archivos son "binarios". Ver

:help 'binary'
:help edit-binary

Vim 8.0 ahora proporciona esto con el fixeol opción. Específicamente si lo hace:

:set nofixeol

entonces Vim no lo hará agregue un carácter de nueva línea final al final de la línea final si el archivo aún no tenía uno.

Eso podría ir en un complemento de tipo de archivo, o posiblemente incluso en su .vimrc .

(Esta es una mejora en :set binary porque solo afecta al carácter de salto de línea final, mientras que binary también cambia un montón de otros comportamientos, que probablemente no quieras a menos que estés editando un archivo binario).

Un archivo recién creado seguirá teniendo un carácter de salto de línea final de forma predeterminada. Puede cambiar eso (y cambiar un archivo que ya tiene una nueva línea final para que no la tenga) haciendo además:

:set noeol

Eso debe configurarse específicamente para cada archivo que desee cambiar:cargar un archivo en un búfer siempre establecerá eol para que coincida con el estado actual del archivo.


Vim no está agregando nada que no hayas puesto tú mismo.

Un carácter de "nueva línea" es no una "nueva línea" y ambos ejemplos son perfectamente normales:

  • en el primero, el archivo solo contiene una línea, por lo que obtiene un carácter de "nueva línea",
  • en el segundo, el archivo contiene dos líneas, por lo que obtiene dos caracteres de "nueva línea".

Linux
  1. Reduzca el tamaño del PDF con este truco de línea de comandos

  2. ¿Por qué no 'encuentra' Mostrar este archivo?

  3. Buzón ocupado ¿Leer archivo línea por línea?

  4. ¿Reemplazar nueva línea con Nul?

  5. ¿Por qué agregar dos puntos rompe este patrón Grep?

Cómo leer un archivo línea por línea en Bash

Editor VIM

VIM:cómo ir a la línea exacta en Ubuntu

¿Por qué necesitamos el archivo .so.1 en Linux?

Linux:compruebe si hay una línea vacía al final de un archivo

¿Por qué no puedo eliminar este archivo como root?