El editor de text Atom agrega "^ M" a las líneas vacías

El editor de text Atom agrega este símbolo a cada línea vacía.

¿Alguna idea de qué y por qué?

enter image description here

Estoy en Ubuntu Linux y noté el ^ M (Carriage Return, Line Feed) durante git diff .

De alguna manera, se seleccionó CRLF en la parte inferior de la barra de estado:

CRLF en la barra de estado de Atom

Simplemente hice clic y cambié a LF:

LF en Atom Status Bar

Parece que se establece file por file, por lo que deberá cambiarse para cada file problemático.


En mi caso, de alguna manera todos los finales de línea habían sido cambiados, así que git diff era un mar de rojo. Usé lo siguiente para identificar cambios 'reales':

 git diff --ignore-space-at-eol 

Sin embargo, el git commit aún enterraría los cambios 'reales' en el historial de commits así que yo:

  1. ejecutó git stash save
  2. cambio de terminaciones de línea en átomo
  3. ejecutó git commit -am "fix line endings"
  4. se ejecutó git stash apply

Ahora las terminaciones de línea han desaparecido y los commits se pueden hacer en una diferencia precisa.

¿Estás usando el editor de text Atom en Windows?
El retorno de carro de Windows es \r\n mientras está \n en Unix.
^M ( 0xD o \r ) es el carácter de retorno de carro en Windows.
Creo que ese file se guardó previamente en Unix (y ya tiene \n en cada línea), por lo que Atom agrega \r como lo requiere Windows.

Para más información puedes ver esto y esto

La mayoría de las soluciones que he encontrado en línea implican el uso de sed, vi o emacs. Encontré una solución que funciona directamente dentro de Atom (y probablemente cualquier editor de text), no se necesita una command-line.

Seleccione todas las devoluciones, o obtenga un selector al comienzo de cada línea, luego elimínelo y presione regresar. Puede tomar un segundo, pero eliminará todos los ^ ^ caracteres.

Esto probablemente arruine su sangrado, pero puede auto-sangrar. Esto puede no ser eficiente si tiene varios files con los que necesita hacer esto, pero es una solución rápida y sucia para un solo file.

Compruebe la parte inferior del editor, que podría haber cambiado las terminaciones de línea de file.

Por lo general, es LF para Unix

enter image description here

y CRLF para windows

enter image description here