CONTEXT : Teil eines Jobs, den ich gerade mache, besteht darin, Textabschnitte aus einem Word-Dokument in eine Ruby-Datei einzufügen.
PROBLEM : Diese Absätze werden als einzelne sehr lange Textzeile eingefügt und ich muss manuell Zeilenumbrüche einfügen, um die Zeilen von angemessener Länge zu erstellen.
LÖSUNG Gibt es eine Möglichkeit, die Pasting-Funktion vernünftiger Randbereiche bewusst zu machen und den Text beim Einfügen einzufügen?
Setze zuerst eine festgelegte Textbreite
%Vor% dann gqq
- für eine einzelne Zeile
für die gesamte Datei
%Vor%Sicher kannst du das mit:
:set wrap
Dadurch wird der Text als umgebrochen dargestellt, ohne die zugrunde liegende Struktur zu verändern oder Zeilenumbrüche einzufügen. Manchmal ist es auch hilfreich:
:set linebreak
Dies bewirkt, dass vim umbrochen wird, ohne Wörter zu unterbrechen.
Es ist auch möglich:
:set wrapmargin
Legt fest, wie weit der richtige Umbruch beginnen soll.
vi, vim und gvim unterstützen die Befehle der 'ex' Ebene:
%Vor%legt einen Zeilenumbruch von 10 Zeichen vom rechten Rand fest und erzwingt einen "Zeilenumbruch" - automatisches Umbrechen während der Eingabe. Dies funktioniert jedoch nicht beim Einfügen von Text. Dafür gibt es den Befehl 'fmt', der nativ für Unix / Linux ist und auf Cygwin und GnuWin32 bereitgestellt wird (siehe Wie bekomme ich fmt-ähnliche Funktionalität für Vim in Windows? ).
Der Befehl "fmt" bietet einen Filter zum Neuformatieren von vorhandenem Text mit Wortumbrüchen und akzeptiert ein numerisches Flag (z. B. "-80"), um die Zeilenbreite anzugeben. Sie können dies im vim-Editor nach dem Einfügen in die langen Zeilen aufrufen.
Sie tun:
%Vor%um eine lange Zeile neu zu formatieren (Tastaturkürzel für ex-Befehl ":.! fmt")
Oder um einen ganzen Absatz umzuschreiben:
%Vor%aus der ersten Zeile des Absatzes.
Dies sollte Ihnen etwas Zeit sparen.
Normalerweise muss ich Text importieren und dann das gesamte Dokument umbrechen: Ich benutze:
:g/./normal gqq
Ich hoffe, das hilft.