Hartes Einwickeln in Vim ohne zu verbinden

1168
Miles

Vim Neuling hier. Wie kann ich Klartext in vim (Einfügen von Zeilenumbrüchen) unter Beachtung der Wortgrenzen hart umbrechen, ohne vorhandene Zeilen zu verbinden ?

Zum Beispiel das gegeben:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.  - Nulla cursus accumsan faucibus. - Donec dapibus dignissim ullamcorper.  Integer nec malesuada diam. 

Ich möchte (mit Textbreite = 30):

Lorem ipsum dolor sit amet, consectetur adipiscing elit.  - Nulla cursus accumsan faucibus. - Donec dapibus dignissim ullamcorper.  Integer nec malesuada diam. 

statt dessen (was ich mit bekommen kann gggqG)

Lorem ipsum dolor sit amet, consectetur adipiscing elit.  - Nulla cursus accumsan faucibus. - Donec dapibus dignissim ullamcorper.  Integer nec malesuada diam. 

Und auch für Bonuspunkte: Wenn ich einen brandneuen Puffer erstelle, erhalte ich ein anderes Umbruchverhalten (Zeilen, die mit - nicht speziell umbrochen werden), als wenn ich eine Datei mit der Erweiterung .txt öffne. Was kontrolliert das? Ich merke keinen Unterschied in der Ausgabe von :set filetype?oder :filetype.

3

1 Antwort auf die Frage

3
garyjohn

Zur ersten Frage verwenden Sie

:%normal gqq 

Das wird gqqin jeder Zeile einzeln ausgeführt.

Ich kenne die Antwort auf die zweite Frage nicht, aber es könnte das Ergebnis eines automatischen Befehls sein, der durch das .txt-Suffix ausgelöst wird, das sich ändert 'formatoptions'oder 'comments'ohne das Setzen des 'filetype'. Sie können ausführen

:verbose set fo? com? 

um zu sehen, wo diese Optionen zuletzt eingestellt wurden. Einige GNU / Linux-Distributionen setzen ihre eigenen Vim-Konfigurationsbefehle in / etc / vimrc oder / usr / share / vim / vimrc.

Vielen Dank! Seltsamerweise macht es nicht die ganze Datei; es stoppt 70% des Durchgangs und sagt "6 weitere Zeilen" (obwohl noch weit mehr als 6 Zeilen übrig sind). Durch Wiederholen des Befehls wird der Wert auf 95% gesetzt und "5 weitere Zeilen" angegeben. Anschließend wird die Datei erneut abgeschlossen. Es gibt keinen Hinweis darauf, dass ein Fehler aufgetreten ist, der zum Anhalten geführt hat. Miles vor 13 Jahren 0
Versuchen Sie es stattdessen: `: g /./ normal gqq`. Ich denke, dass "%" den Befehl auf jede Zeile anwendet, während "g / pattern /" zuerst jede übereinstimmende Zeile markiert, dann zurückgeht und den Befehl auf jede markierte Zeile anwendet. Da Ihr Befehl die Anzahl der Zeilen in der Datei ändert, funktioniert das `g / pattern /` möglicherweise besser. garyjohn vor 13 Jahren 0
Ich konnte das "unterschiedliche Verpackungsverhalten", das ich in meiner Frage erwähnte, nicht reproduzieren - Benutzerfehler, schätze ich. Und der g /./-Ansatz funktionierte für die gesamte Datei, diesmal mit der Meldung "84 weitere Zeilen" - was ich denke, ist die Anzahl der Zeilen, die der Datei hinzugefügt werden, nicht die Anzahl der verbleibenden Zeilen oder irgendetwas. Vielen Dank! Miles vor 13 Jahren 0