Comment supprimer le ^ M de mon fichier en sublime texte 3?

22

Quand je fais un diff git dans ma branche, je vois que les fins de ligne ont les caractères ^ M:

^ Fin de ligne M

Je veux les remplacer par des fins de ligne Unix avant de valider mes modifications.

J'utilise Ubuntu 14.04, git et sublime text 3.

Merci de votre aide.

ÉDITER:

Je cherche un moyen de changer les fins de ligne dans un texte sublime 3 sans utiliser d'autres utilitaires ou commandes.

Achraf JEDAY
la source

Réponses:

15

Cela peut être fait sans plugin via le menu en haut ou via la barre d'état (mais vous devez activer la fonction).

Pour le modifier dans le menu en haut, cliquez sur Affichage -> Fin de ligne -> Sélectionnez le type de fin de ligne souhaité.

Pour l'activer via la barre d'état: Cliquez sur Préférences -> Paramètres, puis ajoutez "show_line_endings": true,quelque part entre les {}crochets sur le côté droit. Enfin, enregistrez vos modifications.

Cela active une petite section à droite de la barre d'état qui apparaît en bas. Il vous indique l'encodage EOL actuel et en cliquant sur la case et en sélectionnant un type différent, il change le caractère EOL des fichiers pour vous.

Une autre option utile est l'encodage de fichiers qui peut également être activé dans la barre d'état en suivant les mêmes configurations ci-dessus mais en ajoutant également "show_encoding": true,entre les {}marques.

Ko
la source
Cela fonctionne spécialement lorsque vous transférez des fichiers de Windows vers un serveur car sur le serveur, il est plus difficile de modifier le fichier. Merci
Luis Cabrera Benito
Cela devrait maintenant être la réponse acceptée
lucas
14

Vous pouvez utiliser la dos2unixcommande sous linux (package dos2unix) ou modifier les fins de ligne dans Sublime Text sous l'élément de menu View / Line Endings .

Jan Čejka
la source
8

^Mest \r(Control-M, ou retour chariot).

Cela est probablement dû au fait que l'utilisateur qui a validé le fichier utilise Windows, qui l'utilise \r\npour ses fins de ligne. Linux utilise uniquement \n, donc vous voyez le ^Mà la fin de la ligne.

Vous souhaitez probablement effectuer l'une des opérations suivantes:

  • 'Fixez' le fichier pour qu'il ait des \nfins de ligne (à l'aide d'un outil tel que dos2unix) et validez. Dans ce cas, vous vous battez avec l'autre utilisateur à moins que vous ne puissiez le faire faire ci-dessous.
  • Configurez vos deux installations Git pour gérer correctement les fins de ligne pour chaque environnement - par exemple: /programming/10418975/how-to-change-line-ending-settings
  • Configurer Sublime pour ouvrir le fichier avec les « fins de ligne Windows »
Attie
la source
3

J'ai trouvé un plugin de texte sublime qui convertit les fins de ligne dans tous les fichiers ouverts en Unix / Windows / Mac OS 9.

Installation

  1. Ouvrez Sublime et accédez à Préférences> Parcourir les packages. Cela ouvrira une fenêtre.
  2. Téléchargez ou clonez le contenu de ce référentiel dans un dossier nommé exactement comme le nom du package dans le dossier Packages / que vous avez ouvert à l'étape précédente:

/home/YOUR_USERNAME/.config/sublime-text-3/Packages

Usage

  1. Revenez au sublime et ouvrez tous les fichiers que vous souhaitez convertir.
  2. Une fois que tous les fichiers sont ouverts, appuyez sur CTRL + MAJ + P, puis recherchez et sélectionnez «Fin de ligne pour tous les affichages: Unix».
  3. Appuyez sur CTRL + ALT + S pour enregistrer tous les fichiers ouverts.
Achraf JEDAY
la source
Le référentiel a été supprimé?
AnnanFay
3

À qui ne voudra peut-être pas installer de plugin supplémentaire pour supprimer ^ M les nouvelles lignes,

  1. Dans un réglage de texte sublime, ajoutez "trim_trailing_white_space_on_save": true,pour supprimer automatiquement l'espace lors de l'enregistrement. (Cette étape peut être facultative)

  2. Sur le fichier que vous ouvrez, cliquez sur le coin inférieur droit du texte sublime. Passez Windowsà Unixet enregistrez.

  1. ^ M est parti. Prendre plaisir.
harrrrrrry
la source