Come posso rimuovere ^ M dal mio file nel sublime testo 3?


22

Quando faccio un git diff nel mio ramo vedo che i finali di riga hanno i caratteri ^ M:

^ M Line Endings

Voglio sostituirli con i finali di linea Unix prima di eseguire le modifiche.

Sto usando Ubuntu 14.04, git e testo sublime 3.

Grazie per l'aiuto.

MODIFICARE:

Sto cercando un modo per cambiare le terminazioni di riga nel sublime testo 3 senza usare altre utilità o comandi.

Risposte:


15

Questo può essere fatto senza un plug-in tramite il menu in alto o tramite la barra di stato (ma è necessario abilitare la funzione).

Per modificarlo tramite il menu in alto, fai clic su Visualizza -> Fine linea -> Seleziona il tipo di fine linea desiderato.

Per abilitarlo tramite la barra di stato: Fai clic su Preferenze -> Impostazioni, quindi aggiungi un punto "show_line_endings": true,tra le {}parentesi sul lato destro. Infine, salva le modifiche.

Ciò abilita una piccola sezione a destra della barra di stato che appare in basso. Ti dice la codifica EOL corrente e facendo clic sulla casella e selezionando un tipo diverso cambia il carattere EOL dei file per te.

Un'altra opzione utile è la codifica dei file che può essere abilitata anche nella barra di stato seguendo le stesse impostazioni sopra ma aggiungendo anche "show_encoding": true,tra i {}segni.


Questo funziona specialmente quando si trasferiscono file da Windows a un server perché nel server è più difficile modificare il file. Grazie
Luis Cabrera Benito,

Questa dovrebbe ora essere la risposta accettata
lucas il

14

È possibile utilizzare il dos2unixcomando in linux (pacchetto dos2unix) o modificare le terminazioni di riga in Sublime Text nella voce di menu Visualizza / Fine riga .


8

^Mè \r(Control-M o ritorno a capo).

Ciò è probabilmente dovuto al fatto che l'utente che ha eseguito il commit del file utilizzava Windows, che utilizza \r\nper i suoi finali di riga. Linux usa solo \n, quindi vedi ^Mla fine della linea.

Probabilmente vuoi fare una delle seguenti cose:

  • 'Correggi' il file in modo che abbia \nterminazioni di riga (usando uno strumento come dos2unix) e commit. Nel qual caso combatterai con l'altro utente a meno che tu non riesca a fargli fare quanto segue.
  • Configura entrambe le tue installazioni git per gestire correttamente le terminazioni di linea per ogni ambiente, ad esempio: /programming/10418975/how-to-change-line-ending-settings
  • Configura Sublime per aprire il file con " Fine riga Windows "

3

Ho trovato un sublime plugin di testo che converte le terminazioni di linea in tutti i file aperti in Unix / Windows / Mac OS 9.

Installazione

  1. Apri Sublime e vai su Preferenze> Sfoglia pacchetti. Questo aprirà una finestra.
  2. Scarica o clona il contenuto di questo repository in una cartella denominata esattamente come il nome del pacchetto nella cartella Pacchetti / che hai aperto nel passaggio precedente:

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

uso

  1. Torna a sublime e apri tutti i file che vuoi convertire.
  2. Una volta aperti tutti i file, premi CTRL + MAIUSC + P, quindi cerca e seleziona "Fine riga per tutte le visualizzazioni: Unix".
  3. Premi CTRL + ALT + S per salvare tutti i file aperti.

Il repository è stato cancellato?
AnnanFay

3

A chi potrebbe non voler installare un plug-in aggiuntivo per rimuovere ^ M nuove righe,

  1. Nell'impostazione del testo sublime, aggiungi "trim_trailing_white_space_on_save": true,per rimuovere automaticamente lo spazio durante il salvataggio. (Questo passaggio potrebbe essere facoltativo)

  2. Nel file che stai aprendo, fai clic sull'angolo in basso a destra del testo sublime. Passa Windowsa Unixe salva.

  1. ^ M non c'è più. Godere.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.