Visualizza CR e LF anziché “EOL” in ': set list'


12

Piuttosto che scegliere un carattere da visualizzare come personaggio EOL, vorrei che fosse visualizzato sia per CR che per LF separatamente e indipendentemente dal fatto che il file sia unix o dos. È possibile?


2
Quindi, se ti capisco correttamente, vuoi qualcosa di simile Hello%$ai file DOS (dov'è %un CR ed $è un LF)? Questo non è possibile con l' impostazione list/ listcharse non riesco davvero a trovare un modo per farlo in VimScript ...
Martin Tournoij,

1
@Carpetsmoker È corretto. A parte set listc'è un modo per avere CRe LFmostrare come personaggi specifici forse?
Captain Man,

2
Potresti essere in grado di evidenziarli di un certo colore, ma non c'è modo di mostrarli come personaggi specifici che non siano mai stati confusi.
EvergreenTree

Penso che sia CR o LF alla volta, non entrambi.
SibiCoder,

1
set stl+=\ [%{&ff=='mac'?'CR':&ff=='unix'?'LF':'CRLF'}]
Antony,

Risposte:


2

Con alcuni avvertimenti, puoi farlo usando la modalità binaria di Vim. Sembra che potresti voler usare il comando

vim -b +'set list' somefile

In alternativa, puoi inserire quanto segue nel tuo .vimrc:

:set binary
:set list

La cosa importante è che la modalità binaria deve essere impostata prima che il file in questione venga letto in un buffer. Una volta che Vim ha letto il file, è troppo tardi; questo trucco si basa sul cambiare il modo in cui Vim legge il file. In particolare, ciò di cui hai bisogno è che Vim non tenti di indovinare il particolare tipo di file <EOL>.

La modalità binaria fa quello che vuoi, disabilitando questo rilevamento automatico del separatore di linea, ma fa anche molte altre cose:

  • imposta 'textwidth'su 0
  • imposta 'wrapmargin'su 0
  • disinserisce 'modeline'
  • disinserisce 'expandtab'

Quindi potresti non voler avere questo nel tuo .vimrc; potrebbe essere meglio usare la versione da riga di comando e solo per quei file in cui è necessario questo tipo speciale di display.

Per maggiori informazioni:

  • :help 'binary'
  • :help edit-binary
  • :help file-read
  • :help file-formats
  • :help 'fileformat'

but it does quite a few other things as wellè perché binario è un FileTypecon alcuni comandi automatici o è una sorta di cosa integrata, inevitabile?
Captain Man,

Con quella frase intendevo presentare la lista che la segue immediatamente.
Tolomeo,

Giusto, non ho semplicemente citato l'intera cosa :) Volevo dire che fa quelle cose perché usa alcune FileTypechiamate binarycon quei comandi automatici o era solo alcune cose integrate?
Captain Man,

1
Ah giusto. Niente di tutto ciò ha nulla a che fare con i tipi di file (ma è abbastanza coinvolto nei formati di file). questo fa parte della stessa modalità binaria. Vedere :help 'binary'. E forse :help 'fileformat'.
Tolomeo,

0

Se aggiungi ai tuoi ~/.vimrc:

set ffs=unix
set list

Ciò mostrerà sempre CRcome ^Me LFcome $.

Per impostazione predefinita, vim interpreterebbe un file che ha solo CRLFfinali come file dos e mostrerebbe CRLFcome $. Impostando ffs=unix, imponi a vim di aprirsi sempre come file unix, e quindi il CR viene trattato come un carattere extra.

Nota: prestare attenzione se si modificano e salvano i file DOS. Se si preme ENTER, verrà inserito solo a LF. Dovresti inserire manualmente un CRdigitando CTRL+V, CTRL+M.

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.