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.

È stato utile?

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 opzione binaria attivata. Puoi impostarlo come impostazioni predefinite in un file .vimrc .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top