2009-08-17 13 views
60

So che ci deve essere qualcosa di ovvio mi manca, ma non posso impedire a vim di avvolgere il mio codice Python. Inserisco :set nowrap come un campione, ma ancora lo avvolge. Posso colpire J per unire le linee di divisione del codice, quindi sembra che sia stato inserito un vero ritorno a capo, semplicemente non capisco perché o come fermarlo.Perché non riesco a impedire a vim di avvolgere il mio codice?

+8

': set nowrap' impedisce solo di avvolgere la visualizzazione delle linee, non di inserire interruzioni di riga. – rampion

risposta

81
'textwidth' 'tw'  number (default 0) 
         local to buffer 
         {not in Vi} 
     Maximum width of text that is being inserted. A longer line will be 
     broken after white space to get this width. A zero value disables 
     this. 'textwidth' is set to 0 when the 'paste' option is set. When 
     'textwidth' is zero, 'wrapmargin' may be used. See also 
     'formatoptions' and |ins-textwidth|. 
     When 'formatexpr' is set it will be used to break the line. 
     NOTE: This option is set to 0 when 'compatible' is set. 


'wrapmargin' 'wm'  number (default 0) 
         local to buffer 
     Number of characters from the right window border where wrapping 
     starts. When typing text beyond this limit, an <EOL> will be inserted 
     and inserting continues on the next line. 
     Options that add a margin, such as 'number' and 'foldcolumn', cause 
     the text width to be further reduced. This is Vi compatible. 
     When 'textwidth' is non-zero, this option is not used. 
     See also 'formatoptions' and |ins-textwidth|. {Vi: works differently 
     and less usefully} 

Se si fa riferimento ad auto avvolgimento di linee lunghe loro invio a quello successivo, provare

:set textwidth=0 
:set wrapmargin=0 
+8

Alcuni plug-in sembrano ignorare questa impostazione. –

+0

Le opzioni 'tw' e' wp' non hanno funzionato per me quindi ho dovuto andare per 'formatoptions' https://github.com/ain/.vim/blob/28c71b23a3914ff298e5cc5f7aa2a82abc9f0fb9/.vimrc#L12 –

+2

Se tw e wp ancora non risolvono il problema dai un'occhiata a questo post su SU che mi ha aiutato a risolvere il mio problema: http://superuser.com/questions/250112/textwidth-0-and-wrapwidth-0-in- vimrc-local-not-being-rispected –

8

forse è il textwidth che è impostato, che si rompe automaticamente le linee quando raggiunge una certa lunghezza Try

:set tw=0 

Se questo non funziona, ad es.

:set wrap linebreak textwidth=0 

e

:set virtualedit=insert 
+1

involucro e interruzione di riga non inseriscono effettivamente le fine-linee nel buffer, in modo che non sembri essere il suo problema. –

29

set formatoptions-=t dovrebbe fare il trucco. set formatoptions+=t riattiva l'auto-avvolgimento.

+0

Grazie! La tua soluzione è l'unica che ha funzionato per me. Non inserisco più a volte newline quando inserisco la modalità di inserimento. – Geremia

40

Nessuna delle altre risposte ha funzionato per me (perché IDK).

:set wrap! Ha fatto il trucco per me (utilizzando GVim per Windows).

+5

Questo risolve un problema leggermente diverso. 'wrap' fornisce l'aspetto di un ritorno a capo, ma non _actually_ interrompe il testo su nuove linee. Probabilmente è stato abilitato il 'wrap', quindi': set wrap! 'Lo ha disattivato. Puoi controllare con ': set wrap? 'Che farà eco al valore corrente (cioè' wrap' o 'nowrap'). – shadowtalker

+0

Questa soluzione funziona per me su Mac OsX. Vim versione 7.4 – Shnkc

0

Aprire vimrc_example.vim (Sì, questo è il file in Vim74) e impostare textwidth = 0.

3

Per prevenire vim da linee lunghe Io uso queste due righe nel mio .vimrc:

set nowrap   " do not automatically wrap on load 
set formatoptions-=t " do not automatically wrap text when typing 
4

Per disabilitare involucro di linea, è possibile inserire :set wrap! o aggiungere questo comando al vostro ~/.vimrc.

Problemi correlati