2009-01-22 10 views
14

Ich bin wieder in Kontakt mit meiner inneren (g) vim aufgrund einer außerplanmäßigen MacBook Mother (Board) einer Kernschmelze (meine Notfall-Backup-Linux-Box wird TextMate nicht ausführen). Alles in allem bin ich zufrieden mit der Effizienz und Leistung von vim, aber ich bin entsetzt darüber, wie schwer es ist, die Art von Wortumbruch zu bekommen, die selbst dumme HTML-Textareas ohne offensichtliche Anstrengung erreichen.Wie erhalten Sie vim, um umbrochene Zeilen anzuzeigen, ohne Zeilenumbrüche einzufügen?

Betrachten Sie den Text

Etiam ornare mollis tortor. Suspendisse sed neque. Nullam in elit. Cum sociis nullam.

standardmäßig mit einem 80-stelligen vim zeigt diese Breite als

Etiam ornare mollis tortor. Suspendisse sed neque. Nullam in elit. Cum sociis nu 
llam.

Diese Verpackung nicht über Leerzeichen schert, ist es so manchmal nur Scheiben Wörter in Stücke (in diesem Fall Nullam). Natürlich können Sie sich auf Zeilenumbruch drehen, und diese:

Etiam ornare mollis tortor. Suspendisse sed neque. Nullam in elit. Cum sociis 
nullam.

Das Problem ist, dass vim am Zeilenumbruch einen Newline einfügt, die ich mit allem Nachdruck nicht wollen tun. Mit anderen Worten, ich möchte, dass der Text genau so angezeigt wird, wie er bei aktiviertem Wortumbruch angezeigt wird, aber ohne einen Zeilenumbruch einzufügen. (Auf diese Weise kann es unter anderem in HTML-Textareas und E-Mail-Programme eingefügt werden.)

Web-Suchen haben trotz fleißiger Bemühungen nichts von Nutzen gebracht; Ich hoffe, dass StackOverflow erfolgreich sein kann, wo mein Google-Fu fehlgeschlagen ist.

+0

Ich weiß nicht, dass dies möglich ist, weil vim Dinge aufreihen irgendwie hat ... Auch wenn es nicht das Newline nicht setzen in selbst, Ihre Konsolen-App höchstwahrscheinlich. Gvim kann vielleicht ... ich weiß es nicht. Wenn Sie den grafischen Modus von vim verwenden, ist es wieder möglich, ich weiß es nicht. –

Antwort

17

So schalten Sie den Zeilenumbruch:

:set wrap 
:set linebreak 

& den ursprünglichen Text und keine Polsterung Werke für gvim Paste zu kopieren. Für Vim in einem Xterm jedoch kopiert es die Raumauffüllung bei EOL (aber nicht die Newline). Ich dachte, das sollte funktionieren, aber es funktioniert nicht:

:set mouse=a 
3

Wenn vim in Zeilenumbrüchen hinzugefügt (und nicht nur den Textumbruch), dann haben Sie wahrscheinlich auf Textbreite gedreht ...

:set textwidth=0 
7

Ich fand this sehr hilfreich - wirkt wie ein Charme.

Im Grunde habe ich nur noch diese Zeilen in meinem vimrc

" not to break on words 
set formatoptions=1 
set linebreak 

" fixing up moving line by line in the paragraph 
nnoremap j gj 
nnoremap k gk 
vnoremap j gj 
vnoremap k gk 
+1

'set formatoptions = 1' oder ist 'formatoptions = l' gesetzt? – Dilawar

Verwandte Themen