2009-02-10 11 views
5

Volevo stampare un semplice documento di testo e assicurarsi che le parole si sovrappongano ai confini delle parole. Ho provato entrambiCome abilitare il wrap di parole in vim quando si stampa

set linebreak 

e

set wrap 

ma durante la stampa, si rompe proprio sulla colonna di destra nel mezzo di parole. È possibile per la stampa?

+0

enscript funziona alla grande, notare che enscript ha aggiunto il supporto del word-wrap in 1.6. – mattwright

risposta

6

Si sta creando un file di testo senza interruzioni di riga incorporate in modo che ogni paragrafo sia una singola "linea", anche se con il set di interruzioni di riga e di ritorno, sembra che siano più righe. Questo è il motivo per cui le pause di stampa sono fisse. (Secondo http://www.vim.org/htmldoc/various.html#printing non sembrare come si può avere vim linebreak rispetto/wrap durante la stampa.)

per evitare questo, se si desidera che il testo per avvolgere durante la modifica, fare

set textwidth=70 

per avvolgere alla settantesima colonna. Se vuoi che il tuo file abbia delle linee lunghe (ad es., Così si formatta bene quando caricato in MS Word o qualcosa del genere), dovrai prima pre-processare la versione del testo prima di stamparlo. Così, per esempio, si può provare:

fmt file.txt | lpr 

o se si è enscript installato, si dovrebbe essere in grado di provare:

enscript --word-wrap file.txt 

per stampare. Un file esistente può essere avvolto eseguendo in vim:

gggqG 

cioè, 'gg' andare su Start del fascicolo e 'gqG' riformattare 'gq' dalla posizione corrente (cioè la prima riga) di l'ultima riga (andando a 'G'). 'gq' rispetterà la tua attuale impostazione della larghezza di testo.