Question Comment convertir le saut de ligne ^ M en saut de ligne «normal» dans un fichier ouvert dans vim?


vim montre sur chaque ligne se terminant ^ M

Comment puis-je le remplacer par un saut de ligne «normal»?


436
2018-05-01 12:44


origine


Réponses:


C'est la seule chose qui a fonctionné pour moi:

: e ++ ff = dos

Trouvé à: http://vim.wikia.com/wiki/File_format


81
2018-04-02 15:30



Commander

:%s/<Ctrl-V><Ctrl-M>/\r/g

<Ctrl-V><Ctrl-M> signifie le type Ctrl+V puis Ctrl+M.

Explication

:%s

substitut,% = toutes les lignes

<Ctrl-V><Ctrl-M>

^ M caractères (le Ctrl-V est une manière Vim d'écrire le caractère Ctrl ^ et Ctrl-M écrit le M après l'expression régulière, résultant en un caractère spécial ^ M)

/\r/

avec une nouvelle ligne (\r)

g

Et faites-le globalement (pas seulement la première occurrence sur la ligne).


509
2018-05-01 12:48



Sur Linux et Mac OS, les travaux suivants,

:%s/^V^M/^V^M/g

^V^M signifie le type Ctrl+V, puis Ctrl+M.

Remarque: sous Windows, vous souhaitez probablement utiliser ^Q au lieu de ^V, depuis par défaut ^V est mappé pour coller du texte.


395
2018-05-01 12:47



Dans vim, regardez le format de fichier - DOS ou Unix:

:set filetype=unix

:set fileformat=unix

Le fichier sera réécrit sans caractères de retour chariot (CR, ^ M).


170
2018-05-01 12:57



Un fichier que j'avais créé avec BBEdit vu dans MacVim affichait un tas de ^M retourne la ligne au lieu des retours réguliers. La chaîne de remplacement suivante a résolu le problème - espérons que cela aide:

:%s/\r/\r/g

C'est intéressant parce que je remplace les sauts de ligne par le même caractère, mais je suppose que Vim doit simplement afficher un nouveau \ r correctement. Je serais intéressé de connaître la mécanique sous-jacente de la raison pour laquelle cela fonctionne.


89
2017-09-27 04:46



Première utilisation :set ff? pour trouver le format de fichier de votre fichier.

Je suppose que ça pourrait être unix, alors le problème est que votre fichier a été créé avec fileformat=dos ajouter "^ M ^ J" à la fin de la ligne mais lire avec flieformat=unix ne retirant que le "^ J" à la fin de la ligne, laissant le "^ M" à cet endroit.

Il suffit d'entrer :e ++ff=dos dans la ligne de commande Vim pour changer le format de votre fichier d'unix à dos. Cela devrait résoudre le problème. Si non, :%s/\r//g devrait vous aider.


34
2018-03-07 04:01



pour que le caractère ^ M corresponde, je devais le sélectionner visuellement, puis utiliser la commande de copie du système d'exploitation dans le presse-papiers pour le récupérer. Vous pouvez le tester en recherchant le caractère avant d'essayer la commande de remplacement.

/^M

devrait sélectionner la première ligne incorrecte

:%s/^M/\r/g

remplacera tous les errants ^ M par des retours chariot.

C'est en tant que fonctions dans MacVim, qui est basé sur gvim 7.

MODIFIER:

Avoir ce problème à nouveau sur ma machine Windows 10, qui a Ubuntu pour Windows, et je pense que cela provoque des problèmes de format de fichier pour vim. Dans ce cas, changer le ff en unix, mac ou dos n'a fait que changer le ^ M en ^ J et revenir.

La solution dans ce cas:

:%s/\r$/ /g
:%s/ $//g

La raison pour laquelle je suis allé sur cette route est parce que je voulais m'assurer que je n'étais pas destructeur avec mon fichier. J'aurais pu :%s/\r$//g mais cela aurait supprimé le retour chariot et aurait pu avoir des résultats inattendus. Au lieu de cela, nous convertissons le caractère CR singulier, ici un caractère ^ M, en un espace, puis supprimons tous les espaces à la fin des lignes (ce qui, pour moi, est un résultat souhaitable indépendamment)

Désolé de raviver une vieille question à laquelle on a répondu depuis longtemps, mais il semblait y avoir une certaine confusion à ce sujet et je pensais que cela aiderait à en éliminer une partie, car les recherches Google sont nombreuses.


27
2018-04-25 19:36



Aucun de ceux-ci a travaillé pour moi, alors j'ai essayé cela, qui a fonctionné:

type :%s/

presse CTRL-VCTRL-M

type //g

presse Entrer

Donc, le commandement global de Vim devrait ressembler à :%s/^M//g

Qu'est-ce que cela fait: :%s (trouver et remplacer) /^M/ (ce symbole) / (sans caractères) g (globalement).


20
2018-05-10 18:51



Sans avoir besoin d'utiliser Ctrl:      :%s/\r$//


13
2017-10-06 19:46



Chose simple qui a fonctionné pour moi

dos2unix   filename

12
2017-11-07 07:30



Je l'ai fait avec sed:

sed -i -e 's/\r/\n/g' filename


12
2018-01-03 04:08