Pregunta gVim que muestra el retorno de carro (^ M) incluso cuando el modo de archivo es explícitamente DOS


Estoy usando gVim en Windows. Mi código muestra ^M personajes al final de las líneas. solía :set ff=dos en vano. los ^M los caracteres permanecen para las líneas existentes, pero no aparecen para las líneas nuevas que ingreso. Cambié los modos a Mac (muestra ^J caracteres) y unix (también muestra ^M caracteres) y de vuelta a dos. ¿Alguien más ha visto esto?


75
2018-04-28 19:08


origen


Respuestas:


Esto sucede cuando tienes una mezcla de terminaciones de línea de Windows y Unix. Si tiene 100 líneas, 99 son \ r \ n y una es \ n, verá 99 ^ M caracteres. La solución es encontrar esa línea y reemplazarla. O ejecuta dos2unix en el archivo. Puede reemplazar las terminaciones de línea de Windows con:

:%s/\r\(\n\)/\1/g


137
2018-04-28 19:12



También puedes ejecutar:

:e ++ff=dos

Para eliminar el ^M: Ver Formato de archivo - Vim Tips Wiki.


40
2017-07-26 14:37



Usualmente utilizo lo siguiente para limpiar mis terminaciones de línea:

:g/^M$/s///

Para obtener el ctrl-M usualmente escribo ctrl-Q, luego ctrl-M y lo coloca. (En algunos entornos puede ser ctrl-V y ctrl-M). No sé por qué, pero creo que uno más fácil de recordar que rqes

No olvides hacer :set ff=dos también, o terminará ahorrando con terminaciones de línea UNIX todavía.


19
2018-04-29 00:00



Sé que esto ya ha sido respondido, pero un truco que uso es

:%s/\r/\r/g

Esto reemplaza los retornos de carro de Unix con el CRLF de Windows. Acaba de agregarse en caso de que alguien más tuviera problemas.


15
2018-05-28 19:22



¡Puedes ignorar estos caracteres!

pon esto en tu vimrc

coinciden Ignorar / \ r $ /


6
2018-03-24 11:10



En realidad, lo que funcionó para mí (en Windows de 64 bits, gVIM: 7.2) fue:

:set ffs=dos

no solo: ff


4
2017-12-02 15:58



Ejecutando Vim 7.3 en Windows 7. Utilicé el siguiente comando:

:%s/^M/\r/g

Para crear el ^ M Escribí CTRL + Q y luego CTRL + M.


4
2018-05-31 16:56



Esto es probablemente un poco simple para muchos de ustedes, pero por si acaso es útil.

Basado en la respuesta de richq, encontré que estos son útiles en mi vimrc. Tenga en cuenta que el segundo comentario está comentado normalmente porque hace que dd sea un poco confuso ya que Vim esperará a que funcione otro golpe de tecla si se trata del comando ex mapeado.

¡función! D2u ()
    ejecutar '% s / \ r \ (\ n \) / \ 1 / g'
función final
"map d2u:% s / \ r \ (\ n \) / \ 1 / g

El primero se ejecuta escribiendo call D2u() en ex y el segundo presionando D2u en modo de edición.


2
2018-01-18 14:20



Estos son terminaciones de línea CR adicionales por el uso de un archivo en sistemas mixtos UNIX / DOS.

Posible la respuesta más corta para eliminar una sola ^ M del final de cada línea, y lo que uso, es:

:%s/\r

que es equivalente a:

:%s/\r//

pero las barras oblicuas no son necesarias (se supone).


2
2018-06-19 11:31



probado muchas cosas, pero el siguiente funcionó

:%s/\r/\r/g

nota: uso gramo si quieres el efecto en todo el archivo


0
2017-09-01 13:32