VIM how do you merge four lines into two rows with two columns?

VIM how do you merge four lines into two rows with two columns?

Nehmen wir an, Sie haben den folgenden Datensatz mit zwei Zeilen

a
b

Und Sie möchten eine weitere Spalte einfügen,

c
d

Wie fügen Sie diesen Datensatz ein, um Folgendes zu erstellen?

a c
b d

Oder fügen Sie sie nacheinander ein (wie unten) und fügen Sie sie zusammen, um das obige zu erhalten

a
b
c
d

Diese Frage ergibt sich aus der Kopie einer PDF-Datei, die als zwei Spalten angezeigt wird, aber als eine Spalte kopiert wird (die rechte Spalte wird lediglich an die linke Spalte angehängt).

Antwort1

Vim hat einen Spaltenbearbeitungsmodus. Dies wurde auf Stack Overflow beantwortet:https://stackoverflow.com/questions/6971903/how-to-do-column-editing-in-vim

Von einemBlogeintragsind die Schritte im Allgemeinen:

  1. Strg + V, um in den Spaltenmodus zu wechseln
  2. Wählen Sie die Spalten und Zeilen aus, in die Sie Ihren Text eingeben möchten
  3. Umschalt + i, um im Spaltenmodus in den Einfügemodus zu wechseln
  4. Geben Sie den gewünschten Text ein. Lassen Sie sich nicht davon entmutigen, dass nur die erste Zeile geändert wird.
  5. Esc, um Ihre Änderung anzuwenden (oder alternativ Strg+C)

Wie angegebenin der Dokumentation, wenn Sie unter Windows arbeiten oder Strg-V einer anderen Taste zugeordnet haben, können Sie möglicherweiseStrg-Qstattdessen

Antwort2

Dieser erste Schritt ist nicht immer notwendig, aber da Sie Leerzeichen zwischen den Spalten einfügen möchten und im Text keine entsprechenden Leerzeichen vorhanden sind, setzen Sie „virtualedit“ auf „all“:

:set ve=all

Bewegen Sie anschließend den Cursor in die obere linke Spalte des Textes, den Sie verschieben möchten, und geben Sie

Ctrl-V$

wobei Strg-V bedeutet CtrlV, bewegen Sie den Cursor dann nach unten zur letzten Zeile des zu kopierenden Textes und geben Sie ein, yum ihn herauszuziehen oder dzu löschen.

Bewegen Sie nun den Cursor (in Ihrem Fall) nach rechts daneben aund geben Sie ein p.

verwandte Informationen