¿Cómo puedo eliminar el ^ M de mi archivo en el texto sublime 3?

22

Cuando hago un git diff en mi rama, veo que las terminaciones de línea tienen los caracteres ^ M:

^ M terminaciones de línea

Quiero reemplazarlos con finales de línea Unix antes de confirmar mis cambios.

Estoy usando Ubuntu 14.04, git y sublime text 3.

Gracias por tu ayuda.

EDITAR:

Estoy buscando una manera de cambiar las terminaciones de línea en sublime text 3 sin usar otras utilidades o comandos.

Achraf JEDAY
fuente

Respuestas:

15

Esto se puede hacer sin un complemento a través del menú en la parte superior o mediante la barra de estado (pero debe habilitar la función).

Para cambiarlo a través del menú en la parte superior, haga clic en Ver -> Terminaciones de línea -> Seleccione el tipo de finalización de línea deseado.

Para habilitar esto a través de la barra de estado: Haga clic en Preferencias -> Configuración Luego agregue en "show_line_endings": true,algún lugar entre los {}corchetes en el lado derecho. Finalmente, guarde sus cambios.

Esto habilita una pequeña sección a la derecha de la barra de estado que aparece en la parte inferior. Le indica la codificación EOL actual y, al hacer clic en el cuadro y seleccionar un tipo diferente, cambia el carácter EOL de los archivos por usted.

Otra opción útil es la codificación de archivos que se puede habilitar en la barra de estado también siguiendo las mismas configuraciones anteriores pero también agregando "show_encoding": true,entre las {}marcas.

KB
fuente
Esto funciona especialmente cuando está transfiriendo archivos de Windows a un servidor porque en el servidor es más difícil editar el archivo. Gracias
Luis Cabrera Benito
Esta debería ser la respuesta aceptada
Lucas
14

Puede usar el dos2unixcomando en linux (paquete dos2unix) o cambiar las terminaciones de línea en Sublime Text en el elemento de menú View / Line Endings .

Jan Čejka
fuente
8

^Mes \r(Control-M o retorno de carro).

Esto es probable porque el usuario que confirmó el archivo estaba usando Windows, que utiliza \r\npara sus finales de línea. Linux solo usa \n, por lo tanto, verá ^Mel final de la línea.

Probablemente quiera hacer uno de los siguientes:

  • 'Arregle' el archivo para que tenga \nterminaciones de línea (usando una herramienta como dos2unix) y commit. En cuyo caso, estarás peleando con el otro usuario a menos que puedas hacer que hagan lo siguiente.
  • Configure ambas instalaciones de git para manejar correctamente las terminaciones de línea para cada entorno, por ejemplo: /programming/10418975/how-to-change-line-ending-settings
  • Configure Sublime para abrir el archivo con ' finales de línea de Windows '
Attie
fuente
3

Encontré un complemento de texto sublime que convierte los finales de línea en todos los archivos abiertos a Unix / Windows / Mac OS 9.

Instalación

  1. Abre Sublime y ve a Preferencias> Buscar paquetes. Esto abrirá una ventana.
  2. Descargue o clone el contenido de este repositorio en una carpeta denominada exactamente como el nombre del paquete en la carpeta Paquetes / que abrió en el paso anterior:

/home/YOUR_USERNAME/.config/sublime-text-3/Packages

Uso

  1. Regrese a sublime y abra todos los archivos que desea convertir.
  2. Una vez que todos los archivos estén abiertos, presione CTRL + MAYÚS + P, y busque y seleccione "Final de línea para todas las vistas: Unix".
  3. Presione CTRL + ALT + S para guardar todos los archivos abiertos.
Achraf JEDAY
fuente
¿Se ha eliminado el repositorio?
AnnanFay
3

Para quienes no quieran instalar complementos adicionales para eliminar ^ M nuevas líneas,

  1. En la configuración de texto sublime, agregue "trim_trailing_white_space_on_save": true,para eliminar automáticamente el espacio al guardar. (Este paso puede ser opcional)

  2. En el archivo que está abriendo, haga clic en la esquina inferior derecha del texto sublime. Cambiar Windowsa Unixy salvamento.

  1. ^ M se ha ido. Disfrutar.
harrrrrrry
fuente