2010-07-15 7 views
6

Je viens de recevoir un fichier de code source d'un ami. Le fichier a été créé sous UNIX. Lorsque je l'ai ouvert dans Windows en utilisant NotePad ++, chaque ligne avait une ligne vide supplémentaire.Fichier texte avec^M sur chaque ligne

Puzzled, j'ai téléchargé Vim et l'ai utilisé pour ouvrir le fichier. J'ai alors vu un tas de^M à la fin de chaque ligne.

Qu'est-ce que c'est que^M? Comment l'empêchez-vous d'être inséré?

Répondre

11

Ce sont de fins de ligne de style Windows DOS/(à soyez pédantesque c'est ce qu'ils sont communément connus aujourd'hui, mais la plupart des premiers systèmes d'exploitation non-UNIX comme CP/M et OS/2 les avaient également). Sur les différents Unices, les fins de ligne sont \n. Sous DOS/Windows, les fins de ligne sont \r\n (CR + LF ou Carriage-Return et Line-Feed). Le \r est ce qui apparaît comme ^M. Pour les supprimer dans vim, je fais:

:%s/^M// 

Vous pouvez obtenir le^M en faisant CTRL + V puis CTRL + M

Si vous êtes sur un UNIX système, vous pouvez utiliser dos2unix.

+1

Juste pour ajouter à cela, si vous utilisez un script (comme Python, par exemple) le^M ne sera pas interprété correctement, donc vous devrez utiliser plutôt. Cela m'a pris un moment pour comprendre cela. – Flaviu

0

Il s'agit d'un retour chariot. Les éditeurs DOS/Windows ont tendance à utiliser un retour chariot et un saut de ligne, les éditeurs Unix aiment utiliser uniquement le saut de ligne. Certains éditeurs comme geany et textpad peuvent le détecter et ne vous montrent pas le^M, et certains vous permettront de faire une sauvegarde comme où les choix incluent le style unix ou le style crlf. Il y a aussi le problème d'avoir un EOF à la fin du fichier que certains compilateurs avaient l'habitude d'exiger.

2

son artefact de fenêtres. Vous avez 2 options

  1. Utilisez un éditeur où vous pouvez spécifier le format de sauvegarde
  2. Utilisez dos2unix sur un unix comme système pour convertir
Questions connexes