2009-10-16 5 views

Antwort

28

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

+0

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

+3

Dann die Antwort auf Ihre Frage ist einfach, um die Joinspaces zu deaktivieren: ': set nojoinspaces' – Cascabel

+0

Auf jeden Fall, danke! Ich war mit diesen 2 Räumen nach einer Satzsache noch nicht vertraut. – binOr

54

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.

+4

Dies ist die richtige Antwort. Die angenommene Antwort hat bei mir nicht funktioniert. – Jonah

+1

Selben. Nojoinspaces hatte keine Wirkung. Ich musste Makro Jx, um jeden Raum zu löschen. –

6

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.

4

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.

1

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!

Verwandte Themen