web-dev-qa-db-fra.com

L'éditeur de texte Atom ajoute "^ M" aux lignes vides

L'éditeur de texte Atom ajoute ce symbole à chaque ligne vide.

Une idée de quoi et pourquoi?

 enter image description here

15
Ivan Chong

Je suis sous Ubuntu Linux et ai remarqué le ^ M (retour chariot, saut de ligne) pendant git diff.

CRLF a été sélectionné au bas de la barre d’état:

 CRLF in Atom status bar

J'ai simplement cliqué dessus et changé en LF:

 LF in Atom Status Bar

Il semble être défini fichier par fichier et devra donc être modifié pour chaque fichier problématique.


Dans mon cas, toutes les fins de ligne avaient été modifiées, donc git diff était un océan de rouge. J'ai utilisé ce qui suit pour identifier les «vrais» changements:

git diff --ignore-space-at-eol

Cependant, git commit continuerait d'enterrer les "vrais" changements dans l'historique de validation, alors je:

  1. run git stash save
  2. terminaisons de ligne modifiées en atome
  3. run git commit -am "fix line endings"
  4. run git stash apply

Maintenant, les fins de ligne ont disparu et les commits peuvent être faits avec un diff précis.

15
Pocketsand

Utilisez-vous l'éditeur de texte Atom sous Windows?
Le retour chariot de Windows est \r\n alors qu'il est \n sous Unix.
^M (0xD ou \r) est le caractère de retour à la ligne dans Windows.
Je pense que ce fichier a déjà été enregistré sous Unix (et que \n est déjà présent sur chaque ligne). Atom ajoute donc \r comme l'exige Windows.

Pour plus d'informations, vous pouvez voir this et this

4
Roman Zaitsev

Vérifiez votre bas de l'éditeur qui pourrait avoir changé les fins de votre ligne de fichier.

Il s’agit généralement de LF pour Unix 

 enter image description here

et CRLF pour Windows

 enter image description here

2
Praneeth

La plupart des solutions que j'ai trouvées en ligne impliquent l'utilisation de sed, vi ou emacs. J'ai trouvé une solution qui fonctionne directement dans Atom (et probablement n'importe quel éditeur de texte), aucune ligne de commande nécessaire.

Sélectionnez tous les retours ou obtenez un sélecteur au début de chaque ligne, puis supprimez-le et appuyez sur Entrée. Cela peut prendre une seconde, mais cela éliminera tous les caractères ^ M.

Cela risquerait de gâcher votre retrait, mais vous pouvez vous auto-mettre en retrait. Cela peut ne pas être efficace si vous avez plusieurs fichiers dont vous avez besoin, mais c'est une solution rapide et sale pour un seul fichier.

1
Wylliam Judd