Qualcuno sa di un editor di testo su Linux che mi consente di vedere interruzioni di riga e ritorni a capo? Vim supporta questa funzione?Vedere le interruzioni di riga e i ritorni a capo nell'editor
risposta
:set list
in Vim mostrerà spazio bianco. La fine della riga viene visualizzata come "$
" e i ritorni a capo di solito vengono visualizzati come "^M
".
La stessa domanda qui: http://superuser.com/questions/97692/vim-show-line-feeds-carriage-return –
Errato, ': set list' NON mostrerà i caratteri'^M' (CR). Fornire l'opzione '-b' a vi/vim funzionerà. Oppure, una volta caricato vim, digita: ': e ++ ff = unix' – CaptSaltyJack
@CaptSaltyJack Che deve essere la sua risposta ..... –
VI mostra una nuova riga (carattere LF, codice x0A
) mostrando il testo successivo nella riga successiva.
Utilizzare lo switch -b
per la modalità binaria. Ad esempio vi -b filename
o vim -b filename --
.
Mostrerà quindi i caratteri CR (x0D
), che non sono normalmente utilizzati nei file di stile Unix, come i caratteri ^M
.
non essere d'accordo con la risposta ufficiale:
:set list
sarà non mostrano caratteri^M (CRS). Fornire l'opzione -b a vi/vim funzionerà. Oppure, una volta caricato Vim, digitare :e ++ff=unix
.
Perché ': set ff = unix' non funziona, ma': e ++ ff = unix' fa? –
È la sintassi. ': help edit' mostra' e [dit]! [++ opt] [+ cmd] '. E ': help ++ e' dice _L'argomento [++ opt] può essere usato per forzare il valore di 'fileformat' [..] _. – dennis
solo per chiarire, ': set list' mostra newline (' $ '),': e ++ ff = unix' mostra CR ('^ M'); se vuoi vedere entrambi, ': set list' then': e ++ ff = unix' –
Provare il seguente comando.
: impostare binario
In VIM, questo dovrebbe fare la stessa cosa utilizzando l'opzione riga di comando "-b". Se lo metti nel file di avvio (cioè .vimrc), sarà sempre al tuo posto.
Su molti sistemi * nix, esiste un comando "dos2unix" o "unix2dos" che può elaborare il file e correggere eventuali problemi di fine linea sospetti. Se non ci sono problemi con le terminazioni di linea, i file non verranno modificati.
Ti suggerisco di modificare il tuo file .vimrc, per eseguire un elenco di comandi. Modificare il file .vimrc, in questo modo:
cat >> ~/.vimrc <<EOF
set ffs=unix
set encoding=utf-8
set fileencoding=utf-8
set listchars=eol:¶
set list
EOF
Quando si sta eseguendo vim, i comandi in Vimrc vengono eseguiti, e si può vedere questo esempio:
My line with CRLF eol here ^M¶
Giusto per chiarire il motivo per cui :set list
non mostrerà CR come ^M
senza e ++ff=unix
e perché :set list
non ha nulla a che fare con ^M
.
internamente quando Vim legge un file nel suo buffer, sostituisce tutti i caratteri line-termina con una propria rappresentanza (chiamiamolo $
's). Per determinare quali caratteri devono essere rimossi, in primo luogo rileva in quale formato le terminazioni di riga sono memorizzate in un file. Se solo CRLF '\r\n'
o solo CR '\r'
o solo L '\n'
caratteri di fine riga, lo 'fileformat'
è impostato su dos
, mac
e unix
rispettivamente.
Quando è impostata l'opzione list
, Vim visualizza il carattere $
quando si verifica l'interruzione di riga indipendentemente dall'opzione fileformat
rilevata. Usa la propria rappresentazione interna di interruzioni di linea e questo è ciò che mostra.
Ora, quando si scrive buffer del disco, Vim inserisce caratteri line-finendo secondo quanto fileformat
opzioni ha beed rilevato, essentialy la conversione di tutte quelle interne $
's con caratteri appropriati. Se il fileformat
capitato di essere unix
allora sarà sufficiente scrivere \n
al posto della sua linea-break interno.
Il trucco è forzare Vim a leggere un file codificato dos
come unix
uno. L'effetto netto è che rimuoverà tutte le \n
's lasciando \r
' s intatta e visualizzarli come ^M
's nel buffer. Impostazione :set list
mostrerà additionaly line-terminazioni interne come $
. Dopo tutto, si vede ^M$
al posto di dos
codificati interruzioni di linea.
Si noti inoltre che :set list
non ha nulla a che fare con la visualizzazione di ^M
. È possibile controllare da soli (assicuratevi di avere disattivato list
prima opzione) con l'inserimento di un'unica CR utilizzando CTRL-V
seguita da Enter
in modalità di inserimento. Dopo aver scritto buffer per disco e aprirlo di nuovo si ses ^M
nonostante list
possibilità di essere impostato a 0.
È possibile trovare maggiori informazioni su formati di file su http://vim.wikia.com/wiki/File_format oppure digitando :help 'fileformat'
in Vim.
NOTA: a volte a capo ($) e ritorno a capo (^ M) sono nascosti in combinazioni di colori molti, e anche durante l'utilizzo di stucco per ssh. –