¿Qué significa el carácter ^M en Vim?

Resuelto Max asked hace 13 años • 15 respuestas

Sigo teniendo el ^Mpersonaje en mi .vimrcy rompe mi configuración.

Max avatar May 01 '11 00:05 Max
Aceptado

Unix usa 0xA para un carácter de nueva línea. Windows usa una combinación de dos caracteres: 0xD 0xA. 0xD es el carácter de retorno de carro. ^MSucede que es la forma en que vim muestra 0xD (0x0D = 13, M es la decimotercera letra del alfabeto inglés).

Puede eliminar todos los ^Mcaracteres ejecutando lo siguiente:

:%s/^M//g

Donde ^Mse ingresa manteniendo presionado Ctrly escribiendo vseguido de my luego soltando Ctrl. A veces se abrevia como ^V^M, pero tenga en cuenta que debe ingresarlo como se describe en la oración anterior, en lugar de escribirlo literalmente.

Esta expresión reemplazará todas las apariciones de ^Mcon la cadena vacía (es decir, nada). Lo uso para deshacerme ^Mde archivos copiados de Windows a Unix (Solaris, Linux, OSX).

Tomasz Stanczak avatar Apr 30 '2011 17:04 Tomasz Stanczak
:%s/\r//g 

funcionó para mí hoy. Pero mi situación puede haber sido ligeramente diferente.

dlk5730 avatar Jan 22 '2014 16:01 dlk5730

Para traducir la nueva línea en lugar de eliminarla:

:%s/\r/\r/g
Mori avatar Jul 02 '2014 23:07 Mori

Probablemente significa que tienes retornos de carro (diferentes sistemas operativos usan diferentes formas de señalar el final de la línea).

Úselo dos2unixpara arreglar los archivos o configurar los formatos de archivo en vim:

set ffs=unix,dos
cnicutar avatar Apr 30 '2011 17:04 cnicutar