vim
Convertir archivos de texto de DOS a UNIX con vi
Buscar..
Observaciones
El carácter ^M
representa un retorno de carro en Vim ( <cm>
o simplemente <CR>
). Vim muestra este carácter cuando al menos en línea en el archivo utiliza finales de línea LF
. En otras palabras, cuando Vim considera que un archivo tiene fileformat=unix
pero algunas líneas sí tienen retornos de carro ( CR
), los retornos de carro se muestran como ^M
Un archivo que tiene una sola línea con final de línea LF
y varias líneas con finales de línea CRLF
se crea con mayor frecuencia editando incorrectamente un archivo creado en un sistema basado en MSDOS. Por ejemplo, creando un archivo bajo un sistema operativo MSDOS, copiándolo a un sistema basado en UNIX y luego preparando una picadura de hash-bang (por ejemplo, #!/bin/sh
) usando herramientas en el sistema operativo basado en UNIX.
Convertir un archivo de texto de DOS en un archivo de texto de UNIX
Muy a menudo tienes un archivo que se editó dentro de DOS o Windows y lo estás viendo bajo UNIX. Esto puede verse como el siguiente cuando ve el archivo con vi.
First line of file^M
Next Line^M
And another^M
Si desea eliminar el ^ M, puede ser que elimine cada ^ M a mano. Alternativamente, en vi después de pulsar Esc , puede ingresar lo siguiente en el indicador de modo de comando:
:1,$s/^M//g
Donde ^ M se ingresa con Ctrl y v juntos y luego Ctrl ym juntos.
Esto ejecuta el comando desde la primera línea '1' hasta la última línea '$', el comando es sustituir 's' la '^ M' por nada '' y para esto globalmente 'g'.
Usando el formato de archivo de VIm
Cuando Vim abre un archivo con <CR><NL>
finales de línea (común en los sistemas operativos basados en MSDOS, también llamado CRLF
), configurará el fileformat
de fileformat
a dos
, puede verificar con:
:set fileformat?
fileformat=dos
O solo
:set ff?
fileformat=dos
Para convertirlo en <NL>
finales de línea (comunes en la mayoría de los sistemas operativos basados en UNIX, también llamados LF
), puede cambiar la configuración del fileformat
y Vim cambiará el búfer.
:set ff=unix