Formattazione automatica: a capo dopo la riga quando si inserisce il testo


9

Dopo aver letto help textwithe help fo-table, mi aspettavo che quando ho impostato

set textwidth=20  " for demonstration
set formatoptions=tcq

quindi l'inserimento di testo alla fine causerebbe sempre il ritorno a capo di una riga, ma non è così. L'avvolgimento avviene solo sul (o prima) cursore. E se incollo, il confezionamento non avviene affatto.

Esempio (Vim 7.4):

12345678901234567890
This is a long line

La linea si avvolgerà automaticamente se premo Ae inizio a digitare.

Ma se premo 02wie digito "ancora", non termina:

12345678901234567890
This is still a long line

Devo digitare altri 7 caratteri prima che vengano inseriti, quindi il problema continua nella riga successiva:

12345678901234567890
This is still more <-- it wraps here
typing and again a long line

L'incollaggio non attiva neanche un avvolgimento:

12345678901234567890
This is a long line This text is pasted and not wrapped

Penso che ciò che voglio sia set fo+=ama si applica a livello di paragrafo, mentre non voglio che la formattazione automatica di una riga si diffonda ad altre righe.

O mi manca un'opzione?

Per essere chiari, dopo il lancio vim -u NONE, questo è quello che scrivo (meno commenti):

:set textwidth=20<CR>
:set formatoptions=tcq<CR>
iThis is a long line<ESC>
02wistill <ESC>                " no wrap happens, but I'd like it to
u
:let @r = "This text is pasted and not wrapped"<CR>
$"rp                           " no wrap happens, but I'd like it to

1
Questo sembra funzionare bene per me. Ho avviato Vim vim -u NONEper impedire il caricamento di un file vimrc. Questo risolve il problema per te? Quale versione di Vim stai usando?
Martin Tournoij,

No, questo non aiuta. Vim 7.4 su Windows e Ubuntu.
mgiuffrida,

È pasteimpostato, per caso? Prova:set paste?
Volker Siegel,

@VolkerSiegel no, pastenon è impostato. Quando pasteè impostato, non si verifica alcun avvolgimento.
mgiuffrida,

Risposte:


2

Mi sono imbattuto in una soluzione parziale, usando formatoptions=tcqaw. Fondamentalmente, avvolgi ancora automaticamente i paragrafi, ma un paragrafo termina quando la linea non ha spazi vuoti finali, che è adatta per molti casi.

Usando il tuo esempio (con una leggera modifica, senza annullare e usando " <SPACE>Questo ...") ottengo questo risultato:

This is still a long  
This is pasted and 
not wrapped
line
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.