Puoi forzare Vim a mostrare una riga vuota alla fine di un file?
-
05-07-2019 - |
Domanda
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 riga per impostazione predefinita (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.
Ad ogni modo, posso convivere con queste due differenze, ma mi chiedo se in Vim esiste un'opzione che ti consente di attivare questo comportamento.
Grazie
PS - GVim 7.2
[Aggiornamento]
Avrebbe senso invece essere su Server Fault?
[Aggiornamento 2]
Lo riformulerò ... Devo sapere quando c'è un ritorno a capo alla fine del file a riga singola (Blocco note mostra una riga aggiuntiva senza testo, con Vim non posso dirlo). Ciò è dovuto a un programma Progress che legge un file di testo (si aspetta una sola riga, ma con un ritorno a capo) e analizza il testo per qualche scopo. Se non viene restituito alcun trasporto, Progress considera la riga come se fosse nulla.
[Soluzione alternativa] Un modo che ho trovato per assicurarmi che ci sia un ritorno a capo (ma assicurati di non aggiungerne un secondo) è quello di assicurarmi che l'opzione di scrittura di fine riga sia attivata (: set eol) e poi basta fare un scrivere / salvare. Questo metterà fine alla riga nel file se non è già lì. Altrimenti, non ne aggiunge uno nuovo.
Soluzione
:help endofline
spiega come potresti impedire a Vim di aggiungere una nuova riga in più.
Altri suggerimenti
Sembra che Vim tratti Newline come un terminatore di linea, mentre il blocco note lo tratta come un separatore di linea: da http://en.wikipedia.org/wiki/Newline
C'è anche qualche confusione se le nuove righe terminano o separano le righe. Se una nuova riga è considerata a separatore, non ci sarà newline dopo l'ultima riga di un file. Il convenzione generale sulla maggior parte dei sistemi è per aggiungere una nuova riga anche dopo l'ultima linea, vale a dire, per trattare newline come una linea Terminator. Alcuni programmi hanno problemi nell'elaborazione dell'ultima riga di a file se non è terminato newline. Al contrario, i programmi che prevedono newline da utilizzare come separatore interpretare una newline finale come iniziale una nuova riga (vuota). Ciò può comportare viene riportato un conteggio di riga diverso per il file, ma è altrimenti generalmente innocuo.
Se ricordo bene, sui sistemi unix-y un file di testo deve essere terminato con una nuova riga.
Un'utile opzione Vim è
set list
Ti aiuterà a vedere tutti i caratteri di fine riga (e possibilmente altri caratteri generalmente invisibili). Quindi sarai in grado di visualizzare quest'ultima endofline direttamente in Vim e non solo in Blocco note.
Quando apri il file in VIM, la riga di stato dovrebbe indicare [noeol]
dopo il nome del file. Quindi questa è un'indicazione. Come diceva Manni , puoi cambiarlo disattivando sia l'opzione endofline
che .vimrc
.