2009-07-29 8 views
11

Quando apro un file di testo in Blocco note, viene visualizzata una riga vuota se è presente un ritorno a capo alla fine dell'ultima riga contenente testo. Tuttavia, in Vim non mostra questa riga vuota. Un'altra cosa che ho notato è che l'editor Vim aggiunge un ritorno a capo all'ultima linea di default (anche se non lo mostra). Posso dirlo, perché se apro un file in Blocco note che è stato creato in Vim, mostra una riga vuota alla fine del file.Puoi forzare Vim a mostrare una riga vuota alla fine di un file?

In ogni caso, posso vivere con queste due differenze, ma mi chiedo se esiste un'opzione in Vim che consente di attivare questo comportamento.

Grazie

PS - GVim 7.2

[Update]

Sarebbe questo senso per essere su server Fault invece?

[Aggiornamento 2]

sarò riformulare questo ... ho bisogno di sapere quando c'è un ritorno a capo alla fine del file di singola linea (Notepad mostra una linea aggiuntiva senza testo, con Non posso dirlo). Ciò è dovuto a un programma Progress che legge un file di testo (si aspetta una singola riga, ma con un ritorno a capo) e analizza il testo per qualche scopo. Se non è presente un ritorno a capo, Progress considera la linea come se fosse null.

[Soluzione Soluzione] Un modo che ho trovato per assicurarsi che ci sia un ritorno a capo (ma assicurarsi che non aggiungo un secondo) è quello di assicurarsi che ho alla fine opzione di scrittura linea di rivolta on (: set eol) e poi basta scrivere/salvare. Questo metterà un fine riga nel file se non è già lì. Altrimenti, non ne aggiunge uno nuovo.

+0

Non avrebbe alcun senso su serverfault. Forse su superuser. Ma sembra che il consenso sia quello di tollerare qui le domande vim perché Vim è considerato un IDE. – innaM

+0

Ok grazie ... Mi chiedo se SuperUser non sia ancora in beta privata ... posso andare a controllare –

+0

È ancora in beta, ma non in privato, ma in beta semi-privata: http: //blog.stackoverflow. com/2009/07/super-utente-semi-privato-beta-inizia/ – innaM

risposta

6
:help endofline 

spiega come è possibile interrompere l'aggiunta di una nuova riga aggiuntiva.

+3

Risolve un problema ... è l'altro (non mostrando che c'è una riga vuota) che è il problema più grande per me però = \ Ha a che fare con la necessità di assicurarsi che ci sia un ritorno a capo alla fine di una riga (e solo uno). –

+1

Sono d'accordo Voglio la linea lì Voglio solo essere in grado di vedere che è lì. –

2

Una utile opzione Vim è

set list 

Essa vi aiuterà a vedere tutto fine delle linee personaggi (e, eventualmente, altri caratteri generalmente invisibili). Quindi sarai in grado di visualizzare quest'ultima endofline direttamente in Vim e non solo nel Blocco note.

+1

Sembra che mostri sempre un carattere $. Anche se non ci sono righe vuote in seguito. –

+0

Non c'è nessuna riga vuota in seguito. vim considera una linea qualcosa che ha una nuova riga alla fine. La linea vuota di cui parli non ha una nuova riga, quindi vim conclude che non c'è nulla da mostrare. – innaM

+0

Vedere i commenti dell'aggiornamento 2 ... riformulava la domanda per essere più accurata. –

1

Quando si apre il file in VIM, la riga di stato deve indicare [noeol] dopo il nome file. Quindi questa è una indicazione. Come detto Manni, è possibile modificare questa opzione impostando sia l'opzione endofline disattivata sia l'opzione binary attiva. È possibile impostarlo come impostazione predefinita in un file .vimrc.

3

Sembra che vim considera nuova linea come un terminatore di linea, mentre notepad considera come un separatore di linea: da http://en.wikipedia.org/wiki/Newline

C'è anche qualche confusione se newlines terminano o linee separate. Se una newline è considerata un separatore , non ci sarà newline dopo l'ultima riga di un file. La convenzione generale sulla maggior parte dei sistemi è per aggiungere una nuova riga anche dopo l'ultima riga , ad es., per trattare newline come terminatore linea . Alcuni programmi hanno problemi durante l'elaborazione dell'ultima riga di un file se non è terminata la nuova riga. Al contrario, i programmi che si aspettano newline da utilizzare come separatore saranno interpretare una nuova riga finale come una nuova riga (vuota). Ciò può comportare un conteggio di riga diverso che viene segnalato per il file, ma è in genere generalmente innocuo.

Se ricordo correttamente, su sistemi unix-y un file di testo deve essere terminato con una nuova riga.

Problemi correlati