linea - gVim que muestra el retorno de carro(^ M) incluso cuando el modo de archivo es explícitamente DOS
eliminar retorno de carro unix (10)
Estoy usando gVim en Windows. Mi código muestra ^M
caracteres al final de las líneas. Utilicé :set ff=dos
inútilmente. Los ^M
caracteres permanecen para las líneas existentes, pero no aparecen para las nuevas líneas que ingreso. Cambié modos a mac (muestra ^J
caracteres) y unix (también muestra ^M
caracteres) y regreso a dos. ¿Alguien más ha visto esto?
¡Puedes ignorar estos caracteres!
pon esto en tu vimrc
coinciden Ignorar / / r $ /
Ejecutando Vim 7.3 en Windows 7. Utilicé el siguiente comando:
:%s/^M//r/g
Para crear el ^ MI escrito en CTRL + Q, luego presione CTRL + M.
En realidad, lo que funcionó para mí (en Windows de 64 bits, gVIM: 7.2) fue:
:set ffs=dos
no solo: ff
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.
function! D2u() execute ''%s//r/(/n/)//1/g'' endfunction "map d2u :%s//r/(/n/)//1/g
La primera se ejecuta escribiendo la call D2u()
en ex y la segunda presionando D2u
en el modo de edición.
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
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).
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.
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 el de rq .
No olvide hacer :set ff=dos
también, o terminará guardando con terminaciones de línea UNIX todavía.
probado muchas cosas, pero el siguiente funcionó
:%s//r//r/g
nota: use g si desea el efecto en todo el archivo