2010-07-15 10 views
6

Acabo de recibir un archivo de código fuente de un amigo. El archivo fue creado en UNIX. Cuando lo abrí en Windows usando NotePad ++, cada línea tenía una línea en blanco adicional.Archivo de texto con^M en cada línea

Desconcertado, descargué Vim y lo usé para abrir el archivo. Luego vi un montón de^M al final de cada línea.

¿Qué es esto^M? ¿Cómo se evita que se inserte?

Respuesta

11

Esos son DOS/estilo de Windows el fin de línea (a sé pedante, es lo que se conoce comúnmente ahora, pero la mayoría de los sistemas operativos que no son UNIX como CP/M y OS/2 también los tenían). En los diversos Unices, los finales de línea son \n. En DOS/Windows, los finales de línea son \r\n (CR + LF o Carriage-Return y Line-Feed). El \r es lo que aparece como ^M. Para eliminarlos, en vim, que hago:

:%s/^M// 

Puede obtener el^M haciendo CTRL + V y luego CTRL + M

Si está trabajando en un sistema UNIX sistema, puede usar dos2unix.

+1

Para agregar a esto, si está usando un script (por ejemplo, Python), el^M no se interpretará correctamente, por lo que tendrá que usar \ r en su lugar. Me tomó un tiempo resolver esto. – Flaviu

0

Es un retorno de carro. Los editores de DOS/Windows tienden a usar un retorno de carro y un avance de línea, a los editores de Unix les gusta usar solo el avance de línea. Algunos editores como geany y textpad pueden detectarlo y no mostrarle la^M, y algunos le permitirán hacer un guardado, ya que las opciones incluyen estilo Unix o estilo crlf. También está la cuestión de tener un EOF al final del archivo que algunos compiladores solían requerir.

2

es un artefacto de Windows. Tienes 2 opciones

  1. Utilice un editor donde puede especificar el formato de almacenamiento
  2. Uso dos2unix en un UNIX como sistema para convertir
Cuestiones relacionadas