J'utilise gVim sous Windows. Mon code affiche ^M
caractères à la fin des lignes. J'ai utilisé :set ff=dos
en vain. Les caractères ^M
restent pour les lignes existantes, mais ne s'affichent pas pour les nouvelles lignes que j'ai entrées. J'ai changé de mode pour mac (affiche ^J
caractères) et unix (affiche également ^M
caractères) et de nouveau pour DOS. Quelqu'un d'autre a-t-il vu cela?
Cela se produit lorsque vous avez un mélange de fins de ligne Windows et de Unix. Si vous avez 100 lignes, 99 sont\r\n et l’une est\n, vous verrez 99 ^ M caractères. La solution consiste à trouver cette ligne et à la remplacer. Ou exécutez dos2unix sur le fichier. Vous pouvez remplacer les fins de ligne Windows par:
:%s/\r\(\n\)/\1/g
J'utilise généralement les éléments suivants pour nettoyer les fins de ligne:
:g/^M$/s///
Pour obtenir le ctrl-M, je tape habituellement ctrl-Q, puis ctrl-M et il le met. un plus facile à retenir que rq 's.
N'oubliez pas de faire aussi :set ff=dos
, sinon vous finirez par enregistrer avec les fins de ligne UNIX.
Je sais que cela a déjà été répondu, mais un truc que j'utilise est
:%s/\r/\r/g
Ceci remplace les retours chariots unix par le CRLF de Windows. Vient d'ajouter au cas où quelqu'un aurait des problèmes.
Vous pouvez ignorer ces caractères!
mettez ceci dans votre vimrc
correspond à Ignorer/\ r $ /
En fait, ce qui a fonctionné pour moi (sur les fenêtres 64 bits, gVIM: 7.2) était:
:set ffs=dos
pas seulement: ff
Exécution de Vim 7.3 sur Windows 7. J'ai utilisé la commande suivante:
:%s/^M/\r/g
Pour créer le ^ M, j'ai tapé CTRL + Q puis CTRL + M.
C’est probablement un peu simple pour beaucoup d’entre vous, mais c’est utile.
Sur la base de la réponse de richq, j’ai trouvé ces informations utiles dans mon vimrc. Notez que le second est commenté normalement car cela rend dd un peu déroutant puisque Vim attendra qu’un autre trait de touche s’élimine s’il s’agit de la commande ex mappée.
une fonction! D2u () exécutez '% s/\ r\(\ n \)/\ 1/g' endfunction "map d2u:% s/\ r\(\ n \)/\ 1/g
Le premier est exécuté en tapant call D2u()
dans ex et le second en appuyant sur D2u
en mode édition.
Ce sont des fins de ligne CR supplémentaires généralement dues à l'utilisation d'un fichier sur des systèmes UNIX/DOS mixtes.
La réponse la plus courte possible pour supprimer un seul ^ M à la fin de chaque ligne, et ce que j'utilise, est la suivante:
:%s/\r
qui équivaut à:
:%s/\r//
mais les barres obliques finales ne sont pas obligatoires (elles sont supposées).
essayé beaucoup de choses, mais ce qui suit a fonctionné
:%s/\r/\r/g
note: utilisez g si vous voulez l'effet sur tout le fichier