Vi su Linux: mostra i finali di riga ^ M per i file in formato DOS


9

Su Solaris, se si apre un file in vi con terminazioni di riga di Windows, questo viene visualizzato come ^ M alla fine di ogni riga.

Su Linux, vi è più intelligente e comprende il formato del file Windows e non visualizza ^ M.

Esiste un'impostazione per far sì che Linux vi si comporti come Solaris in questo senso?

Un problema comune per noi è copiare uno script di shell da una casella di sviluppo (Windows) e dimenticare di dos2unix, e quindi essere confuso quando non funziona correttamente. Su Solaris il problema è evidente non appena vi è il file, ma non su Linux.

Grazie.


Su Linux, v'è di solito di Bram Moolenaar vim , mi aspetto che il VI su Solaris è il Bill Joy VI , originale, autentico ma meno capace.
RedGrittyBrick,

Sul mio vim, di default vedo di solito no ^M, ma a volte ce n'è uno alla fine del file.
trysis

Risposte:


9

Prova :set ffs=unixall'avvio di vi (o impostato come predefinito in vimrc) che dovrebbe visualizzare tutti i caratteri CR come ^M.

vi indovina automaticamente quale formato utilizzare in base al fatto che incontri o meno righe che terminano in LF o in entrambe CR / LF.


1
@RedGrittyBrick - Sul mio sistema, :set listmostra $alla fine di tutte le righe (formato Unix e DOS), quindi non aiuta a distinguere tra i due.
sss

@sss: errore mio, eliminerò il commento.
RedGrittyBrick

2
@gman - questo comando non ha funzionato per me con precisione - ho Not an editor command: ffs=unixcapito - ma mi ha messo sulla strada giusta. L'esecuzione :set ffs=unixcon il file aperto in vi non ha funzionato - nessun errore ma non è successo nulla. Ho inserito il set ffs=unixmio file .vimrc e ha funzionato.
sss

Ho sperimentato esattamente la stessa cosa di @sss
SSH questo

Quindi corrompe la configurazione dell'utente preparata con cura. Molto probabilmente voglio ffsesattamente così. Ma vedi la risposta di @wisbucky.
fork0,

2

Per mostrare le terminazioni di riga dos per il file corrente:

:e +ff=unix

Ciò forza il fileformat a unix, che verrà visualizzato CRcome^M


Per rendere permanente questa impostazione, aggiungi a ~/.vimrc:

set ffs=unix

Si noti che l'impostazione .vimrc è ffsno ff.


Questo dovrebbe essere :e ++ff=unix, credo.
fork0,
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.