Ich möchte Text in Vim auspacken. Wenn ich Linien verbinde, bekomme ich einen zusätzlichen Abstand zwischen den Sätzen.Warum fügt Vim beim Verbinden von Zeilen Leerzeichen hinzu?
Warum ist das?
Ich möchte Text in Vim auspacken. Wenn ich Linien verbinde, bekomme ich einen zusätzlichen Abstand zwischen den Sätzen.Warum fügt Vim beim Verbinden von Zeilen Leerzeichen hinzu?
Warum ist das?
Formatieren zerstört Informationen. Es gibt viele verschiedene Textblöcke, die nach dem Formatieren denselben Text ergeben. Daher gibt es keine Möglichkeit, den Vorgang ohne vorherige Kenntnis rückgängig zu machen (d. H. Rückgängig zu machen).
Unformatted:
Unformatted text could start out as either all one line, or several, yet look the same when formatted.
Unformatted text could start out as either all one line, or several,
yet look the same when formatted.
Formatiert:
Unformatted text could start out as
either all one line, or several,
yet look the same when formatted.
Wenn Sie Ihren Absatz wollen alle auf einer Linie, oder wenn Sie mit einem kleinen manuellen Hantieren in Ordnung sind, können Sie J
verwenden beitreten Linien wieder zusammen. Sie können den visuellen Modus verwenden, um den Befehl J
auf mehrere Zeilen gleichzeitig anzuwenden, möglicherweise kombiniert mit ap
oder ip
, um einen Absatz auszuwählen, z. . Auch hier verlieren Sie immer noch einige Informationen - mehrere Leerzeichen bei Zeilenumbrüchen, bevor die Formatierung auf einzelne Leerzeichen reduziert wird. (Sie können tatsächlich beitreten, ohne Leerzeichen zu ändern, indem Sie gJ
anstelle von J
verwenden, aber Sie haben sie bereits verloren, wenn Sie formatierten)
Wenn Sie durch die zusätzlichen Leerzeichen nach Sätzen gestört werden . oder), schalten Sie joinspaces: set nojoinspaces
Vielen Dank. Ich habe bereits versucht, Linien zu verbinden, aber was mich nervt ist, dass plötzlich mehrere Leerzeichen zwischen den Sätzen nach dem Verbinden der Linien auftreten. – binOr
Dann die Antwort auf Ihre Frage ist einfach, um die Joinspaces zu deaktivieren: ': set nojoinspaces' – Cascabel
Auf jeden Fall, danke! Ich war mit diesen 2 Räumen nach einer Satzsache noch nicht vertraut. – binOr
ich habe das Gefühl, das ist, was Sie wirklich wollen: gJ
Von :h gJ
:
gJ Join [count] lines, with a minimum of two lines.
Don't insert or remove any spaces. {not in Vi}
Dies ist praktisch, wenn Sie etwas von einem Terminal kopiert haben und es als großen rechteckigen Block in vim einfügen, anstatt in eine einzelne Zeile.
Ich verwende es normalerweise im visuellen Modus. Hilight Zeug, gJ.
Dies ist die richtige Antwort. Die angenommene Antwort hat bei mir nicht funktioniert. – Jonah
Selben. Nojoinspaces hatte keine Wirkung. Ich musste Makro Jx, um jeden Raum zu löschen. –
This ist die Antwort, die am Ende für mich funktionierte, keine der oben genannten funktionierte in meinem Anwendungsfall.
Im Wesentlichen verwenden Sie gJ wie mehrere andere haben gesagt, aber markieren Sie alle Datei, so dass im Befehlsmodus ggVGgJ eingeben.
Ich denke, die einfache Lösung, die die Linien ohne Leerzeichen zu verbinden zwischen ist:
:j!
Mit !
der Join keine Leerzeichen einfügen oder löschen. Verwenden Sie für die gesamte Datei :%j!
.
Siehe: :help :join
.
Ich habe immer noch das zusätzliche Leerzeichen nach Join, wenn die Zeile, an der wir arbeiten, nicht mit Leerzeichen endet. Normalerweise ist dies das gewünschte Verhalten.Beispiel
first line without space
second line
nach mit J
Beitritt werden
first line without space second line
Obwohl in einigen Fällen wir es nicht wollen,
myInstance->methodA()
->methodB()
anzuwenden Und wir wollen die Verbindung myInstance->methodA()->methodB()
werden ohne Platz dazwischen!
Hier ist die Abbildung i Helfer verwenden
nmap <leader>jj Jx
< Führer > Schlüssel mit :let mapleader
geprüft werden kann, default \
ich glaube einzugeben.
so im normalen Modus, nur \jj
zu führen, ohne zusätzlichen Platz zu tun!
kein Witz. habe Hilfe bekommen. Vielen Dank. – binOr